import java.util.InputMismatchException;
import java.util.Scanner;

public class Alphabet2DArray{

	public static void main(String args[])
	{
	int ROW = 5;
	int COL = 5;
	char[][] charArr = new char[ROW][COL];
    try (Scanner input = new Scanner(System.in)) {
	char alpha;
	System.out.println("Enter alphabets for "+ ROW + " X " + COL +" matrix: ");
	for (int i=0; i< ROW ; i++)
	{
		for (int j=0; j < COL; j++)
		{
		    System.out.print("Enter the ["+ i +"] ["+j+"] valid alphabet: ");
		    alpha = input.next().charAt(0);
	
		    if (Character.isAlphabetic(alpha))
		    {
		    	charArr[i][j] = alpha;
		    }
		    else
		    {
		    	System.out.println("You must enter valid alphabet only!");
		    	j--;
		    }
		}
	}
		
		System.out.println("Alphabets in the matrix are: ");
	
		for (int k=0; k < ROW; k++)
		{
			for (int j=0; j < COL; j++)
			{
				System.out.print(charArr[k][j]+ " ");
			}
			System.out.println();
		}
		

		
		System.out.println("Rowwise frequency of alphabets is: ");
		for (int k=0; k < ROW; k++)
		{
			int countA=0;
			int countE=0;
			int countI=0;
			int countO=0;
			int countU=0;
			
			for (int j=0; j < COL; j++)
			{
					if (Character.toUpperCase(charArr[k][j]) == 'A') countA++;
					if (Character.toUpperCase(charArr[k][j]) == 'E') countE++;
					if (Character.toUpperCase(charArr[k][j]) == 'I') countI++;
					if (Character.toUpperCase(charArr[k][j]) == 'O') countO++;
					if (Character.toUpperCase(charArr[k][j]) == 'U') countU++;
			}
			System.out.println("Row "+k+":"+" a:"+countA+" e:"+countE+" i:"+countI+" o:"+countO+" u:"+countU);
		}
     
 
	System.out.println("Colwise frequency of alphabets is: ");
	for (int k=0; k < ROW; k++)
	{
		int countA=0;
		int countE=0;
		int countI=0;
		int countO=0;
		int countU=0;
		
		for (int j=0; j < COL; j++)
		{
				if (Character.toUpperCase(charArr[j][k]) == 'A') countA++;
				if (Character.toUpperCase(charArr[j][k]) == 'E') countE++;
				if (Character.toUpperCase(charArr[j][k]) == 'I') countI++;
				if (Character.toUpperCase(charArr[j][k]) == 'O') countO++;
				if (Character.toUpperCase(charArr[j][k]) == 'U') countU++;
		}
		System.out.println("Row "+k+":"+" a:"+countA+" e:"+countE+" i:"+countI+" o:"+countO+" u:"+countU);
	}
 
	} catch (InputMismatchException  e)
	 {
	 	System.out.println("Error reading input");
	 }
	}// end of main

}
