Write a program in Java and run it in BlueJ according to the following specifications:The program reads a text file with student records (first name, last name and grade) and prints them on the terminal window.Then it prints three separate lists of excellent students, ok students and failure students according to their grades: excellent (> 89), ok, and failure (< 60).Finally, the program prints the total number of students, their grade average, and the students with highest and lowest grade.For example, if the input text file includes the following data:John Smith 90Barack Obama 95Al Clark 80Sue Taylor 55Ann Miller 75George Bush 58John Miller 65the program prints the following:Students with excellent grades:John Smith 90Barack Obama 95Students with ok grades:Al Clark 80Ann Miller 75John Miller 65Students with failure grades:Sue Taylor 55George Bush 58Total number of students: 7Average grade: 74.0Student with highest grade: Barack Obama 95Student with lowest grade: Sue Taylor 55Requirements and restrictions:Define a class Student to represent the student information (student names and grade).