import java.util.Scanner;

class StuRes {

    int[][] marks = new int[3][3];
    int[] totalMarks = new int[3];
    int[] rollNumbers = new int[3];

    void storeMarks(int[][] studentMarks) {
        for (int i = 0; i < 3; i++) {
            System.arraycopy(studentMarks[i], 0, marks[i], 0, 3);
        }
    }

    void calculateTotalMarks() {
        for (int i = 0; i < 3; i++) {
            totalMarks[i] = 0;
            for (int j = 0; j < 3; j++) {
                totalMarks[i] += marks[i][j];
            }
        }
    }

    void findHighestMarksInSubjects() {
        for (int subject = 0; subject < 3; subject++) {
            int highestMark = marks[0][subject];
            int highestRollNo = rollNumbers[0];
            for (int student = 1; student < 3; student++) {
                if (marks[student][subject] > highestMark) {
                    highestMark = marks[student][subject];
                    highestRollNo = rollNumbers[student];
                }
            }
            System.out.println(
                "Highest mark in Subject " +
                (subject + 1) +
                ": " +
                highestMark +
                " (Roll No: " +
                highestRollNo +
                ")"
            );
        }
    }

    void findHighestTotalMarks() {
        int highestTotal = totalMarks[0];
        int highestRollNo = rollNumbers[0];
        for (int i = 1; i < 3; i++) {
            if (totalMarks[i] > highestTotal) {
                highestTotal = totalMarks[i];
                highestRollNo = rollNumbers[i];
            }
        }
        System.out.println(
            "Highest total marks: " +
            highestTotal +
            " (Roll No: " +
            highestRollNo +
            ")"
        );
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        StuRes studentResults = new StuRes();
        int[][] studentMarks = new int[3][3];

        System.out.println("Enter details for 3 students:");
        for (int i = 0; i < 3; i++) {
            System.out.print("Enter Roll Number for Student " + (i + 1) + ": ");
            studentResults.rollNumbers[i] = scanner.nextInt();
            System.out.println(
                "Enter marks for Student with Roll No " +
                studentResults.rollNumbers[i] +
                ":"
            );
            for (int j = 0; j < 3; j++) {
                System.out.print("Subject " + (j + 1) + ": ");
                studentMarks[i][j] = scanner.nextInt();
            }
        }

        studentResults.storeMarks(studentMarks);
        studentResults.calculateTotalMarks();

        System.out.println("\nResults:");
        studentResults.findHighestMarksInSubjects();
        studentResults.findHighestTotalMarks();

        scanner.close();
    }
}
