Problem:
MathJax.Hub.Config({ tex2jax: { inlineMath: [["$","$"], ["\\(","\\)"]], processEscapes: true }});

Matrix Multiplication

Write a program which reads a $n \times m$ matrix $A$ and a $m \times l$ matrix $B$, and prints their product, a $n \times l$ matrix $C$. An element of matrix $C$ is obtained by the following formula:

\[
c_{ij} = \sum_{k=1}^m a_{ik}b_{kj}
\]

where $a_{ij}$, $b_{ij}$ and $c_{ij}$ are elements of $A$, $B$ and $C$ respectively.

Input

In the first line, three integers $n$, $m$ and $l$ are given separated by space characters

In the following lines, the $n \times m$ matrix $A$ and the $m \times l$ matrix $B$ are given.

Output

Print elements of the $n \times l$ matrix $C$ ($c_{ij}$). Print a single space character between adjacent elements.

Constraints

$1 \leq n, m, l \leq 100$

$0 \leq a_{ij}, b_{ij} \leq 10000$

Sample Input

3 2 3
1 2
0 3
4 5
1 2 1
0 3 2

Sample Output

1 8 5
0 9 6
4 23 14

Note

      解説

Solution in JAVA (judge verdict: Wrong Answer)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class Main{

	public static void main(String[] args) throws IOException
	{
		int n,m,l;
		int i,j,k;

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in) );

		String[] nml = br.readLine().split(" ");

		n = Integer.parseInt(nml[0]);
		m = Integer.parseInt(nml[1]);
		l = Integer.parseInt(nml[2]);

		int[][] a = new int[n][m];
		int[][] b = new int[m][l];
		int[][] out = new int[n][l];

		for(i=0; i<n; i++)//get a
		{
			String[] str = br.readLine().split(" ");
			for(j=0; j<m; j++) a[i][j] = Integer.parseInt(str[j]);
		}

		for(i=0; i<m; i++)//get b
		{
			String[] str = br.readLine().split(" ");
			for(j=0; j<l; j++) b[i][j] = Integer.parseInt(str[j]);
		}


		for(i=0; i<n; i++)//calc
		{
			for(j=0; j<l; j++)
			{
				for(k=0; k<m; k++)
				{
					out[i][j] = out[i][j] + a[i][k]*b[k][j];
					
				}
				
				System.out.print(out[i][j] + ( (j==l-1) ? "" : " ") );
			}

			System.out.println();
		}
		

	}
	
	/*
	static void ShowMatrix(int[][] matrix, int n, int m)
	{
		for(int i=0; i<n; i++)
		{
			for(int j=0; j<m; j++)
			{
				System.out.print(matrix[i][j]);
			}
			
			System.out.println();
		}
		
	}*/
	
}