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

public class Main {
	public static void main(String[] age)throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuffer sb = new StringBuffer();

		String[] input = br.readLine().split(" ");
		int n = Integer.parseInt(input[0]);
		int m = Integer.parseInt(input[1]);
		int l = Integer.parseInt(input[2]);
		int i = 0;
		int j = 0;
		long a = 0;

		int nm[][] = new int[n][m];
		int ml[][] = new int[m][l];

		for( i=0 ; i<n ; i++ ){
			input = br.readLine().split(" ");
			for( j=0 ; j<m ; j++ ){
				nm[i][j]=Integer.parseInt(input[j]);
			}
		}

		for ( i=0 ; i<m ; i++ ){
			input = br.readLine().split(" ");
			for( j=0 ; j<l ; j++ ){
				ml[i][j]=Integer.parseInt(input[j]);
			}
		}

		for ( i=0 ; i<n ; i++ ){
			for( j=0 ; j<l ; j++ ){
				for( int k=0 ; k<m ; k++ ){
					 a = a + (nm[i][k] * ml[k][j]);
				}
				sb.append(String.valueOf(a));
				a = 0;
				if( j==l-1 ) break;
				sb.append(" ");
			}
			sb.append("\n");
		}

		System.out.print(sb);

	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io public class Main {
	public static void main(String[] age)throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuffer sb = new StringBuffer();

		String[] input = br.readLine().split(" ");
		int n = Integer.parseInt(input[0]);
		int m = Integer.parseInt(input[1]);
		int l = Integer.parseInt(input[2]);
		int i = 0;
		int j = 0;
		long a = 0;

		int nm[][] = new int[n][m];
		int ml[][] = new int[m][l];

		for( i=0 ; i<n ; i++ ){
			input = br.readLine().split(" ");
			for( j=0 ; j<m ; j++ ){
				nm[i][j]=Integer.parseInt(input[j]);
			}
		}

		for ( i=0 ; i<m ; i++ ){
			input = br.readLine().split(" ");
			for( j=0 ; j<l ; j++ ){
				ml[i][j]=Integer.parseInt(input[j]);
			}
		}

		for ( i=0 ; i<n ; i++ ){
			for( j=0 ; j<l ; j++ ){
				for( int k=0 ; k<m ; k++ ){
					 a = a + (nm[i][k] * ml[k][j]);
				}
				sb.append(String.valueOf(a));
				a = 0;
				if( j==l-1 ) break;
				sb.append(" ");
			}
			sb.append("\n");
		}

		System.out.print(sb);

	}
} Main public static void main(String[] age)throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuffer sb = new StringBuffer();

		String[] input = br.readLine().split(" ");
		int n = Integer.parseInt(input[0]);
		int m = Integer.parseInt(input[1]);
		int l = Integer.parseInt(input[2]);
		int i = 0;
		int j = 0;
		long a = 0;

		int nm[][] = new int[n][m];
		int ml[][] = new int[m][l];

		for( i=0 ; i<n ; i++ ){
			input = br.readLine().split(" ");
			for( j=0 ; j<m ; j++ ){
				nm[i][j]=Integer.parseInt(input[j]);
			}
		}

		for ( i=0 ; i<m ; i++ ){
			input = br.readLine().split(" ");
			for( j=0 ; j<l ; j++ ){
				ml[i][j]=Integer.parseInt(input[j]);
			}
		}

		for ( i=0 ; i<n ; i++ ){
			for( j=0 ; j<l ; j++ ){
				for( int k=0 ; k<m ; k++ ){
					 a = a + (nm[i][k] * ml[k][j]);
				}
				sb.append(String.valueOf(a));
				a = 0;
				if( j==l-1 ) break;
				sb.append(" ");
			}
			sb.append("\n");
		}

		System.out.print(sb);

	} main {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuffer sb = new StringBuffer();

		String[] input = br.readLine().split(" ");
		int n = Integer.parseInt(input[0]);
		int m = Integer.parseInt(input[1]);
		int l = Integer.parseInt(input[2]);
		int i = 0;
		int j = 0;
		long a = 0;

		int nm[][] = new int[n][m];
		int ml[][] = new int[m][l];

		for( i=0 ; i<n ; i++ ){
			input = br.readLine().split(" ");
			for( j=0 ; j<m ; j++ ){
				nm[i][j]=Integer.parseInt(input[j]);
			}
		}

		for ( i=0 ; i<m ; i++ ){
			input = br.readLine().split(" ");
			for( j=0 ; j<l ; j++ ){
				ml[i][j]=Integer.parseInt(input[j]);
			}
		}

		for ( i=0 ; i<n ; i++ ){
			for( j=0 ; j<l ; j++ ){
				for( int k=0 ; k<m ; k++ ){
					 a = a + (nm[i][k] * ml[k][j]);
				}
				sb.append(String.valueOf(a));
				a = 0;
				if( j==l-1 ) break;
				sb.append(" ");
			}
			sb.append("\n");
		}

		System.out.print(sb);

	} BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) StringBuffer sb = new StringBuffer(); sb new StringBuffer() String[] input = br.readLine().split(" "); input br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " int n = Integer.parseInt(input[0]); n Integer.parseInt(input[0]) Integer.parseInt Integer input[0] input 0 int m = Integer.parseInt(input[1]); m Integer.parseInt(input[1]) Integer.parseInt Integer input[1] input 1 int l = Integer.parseInt(input[2]); l Integer.parseInt(input[2]) Integer.parseInt Integer input[2] input 2 int i = 0; i 0 int j = 0; j 0 long a = 0; a 0 int nm[][] = new int[n][m]; nm new int[n][m] n m int ml[][] = new int[m][l]; ml new int[m][l] m l for( i=0 ; i<n ; i++ ){
			input = br.readLine().split(" ");
			for( j=0 ; j<m ; j++ ){
				nm[i][j]=Integer.parseInt(input[j]);
			}
		} i=0 ; i=0 i 0 i<n i n i++ i++ i {
			input = br.readLine().split(" ");
			for( j=0 ; j<m ; j++ ){
				nm[i][j]=Integer.parseInt(input[j]);
			}
		} {
			input = br.readLine().split(" ");
			for( j=0 ; j<m ; j++ ){
				nm[i][j]=Integer.parseInt(input[j]);
			}
		} input = br.readLine().split(" ") input br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " for( j=0 ; j<m ; j++ ){
				nm[i][j]=Integer.parseInt(input[j]);
			} j=0 ; j=0 j 0 j<m j m j++ j++ j {
				nm[i][j]=Integer.parseInt(input[j]);
			} {
				nm[i][j]=Integer.parseInt(input[j]);
			} nm[i][j]=Integer.parseInt(input[j]) nm[i][j] nm[i] nm i j Integer.parseInt(input[j]) Integer.parseInt Integer input[j] input j for ( i=0 ; i<m ; i++ ){
			input = br.readLine().split(" ");
			for( j=0 ; j<l ; j++ ){
				ml[i][j]=Integer.parseInt(input[j]);
			}
		} i=0 ; i=0 i 0 i<m i m i++ i++ i {
			input = br.readLine().split(" ");
			for( j=0 ; j<l ; j++ ){
				ml[i][j]=Integer.parseInt(input[j]);
			}
		} {
			input = br.readLine().split(" ");
			for( j=0 ; j<l ; j++ ){
				ml[i][j]=Integer.parseInt(input[j]);
			}
		} input = br.readLine().split(" ") input br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " for( j=0 ; j<l ; j++ ){
				ml[i][j]=Integer.parseInt(input[j]);
			} j=0 ; j=0 j 0 j<l j l j++ j++ j {
				ml[i][j]=Integer.parseInt(input[j]);
			} {
				ml[i][j]=Integer.parseInt(input[j]);
			} ml[i][j]=Integer.parseInt(input[j]) ml[i][j] ml[i] ml i j Integer.parseInt(input[j]) Integer.parseInt Integer input[j] input j for ( i=0 ; i<n ; i++ ){
			for( j=0 ; j<l ; j++ ){
				for( int k=0 ; k<m ; k++ ){
					 a = a + (nm[i][k] * ml[k][j]);
				}
				sb.append(String.valueOf(a));
				a = 0;
				if( j==l-1 ) break;
				sb.append(" ");
			}
			sb.append("\n");
		} i=0 ; i=0 i 0 i<n i n i++ i++ i {
			for( j=0 ; j<l ; j++ ){
				for( int k=0 ; k<m ; k++ ){
					 a = a + (nm[i][k] * ml[k][j]);
				}
				sb.append(String.valueOf(a));
				a = 0;
				if( j==l-1 ) break;
				sb.append(" ");
			}
			sb.append("\n");
		} {
			for( j=0 ; j<l ; j++ ){
				for( int k=0 ; k<m ; k++ ){
					 a = a + (nm[i][k] * ml[k][j]);
				}
				sb.append(String.valueOf(a));
				a = 0;
				if( j==l-1 ) break;
				sb.append(" ");
			}
			sb.append("\n");
		} for( j=0 ; j<l ; j++ ){
				for( int k=0 ; k<m ; k++ ){
					 a = a + (nm[i][k] * ml[k][j]);
				}
				sb.append(String.valueOf(a));
				a = 0;
				if( j==l-1 ) break;
				sb.append(" ");
			} j=0 ; j=0 j 0 j<l j l j++ j++ j {
				for( int k=0 ; k<m ; k++ ){
					 a = a + (nm[i][k] * ml[k][j]);
				}
				sb.append(String.valueOf(a));
				a = 0;
				if( j==l-1 ) break;
				sb.append(" ");
			} {
				for( int k=0 ; k<m ; k++ ){
					 a = a + (nm[i][k] * ml[k][j]);
				}
				sb.append(String.valueOf(a));
				a = 0;
				if( j==l-1 ) break;
				sb.append(" ");
			} for( int k=0 ; k<m ; k++ ){
					 a = a + (nm[i][k] * ml[k][j]);
				} int k=0 ; int k=0 ; k 0 k<m k m k++ k++ k {
					 a = a + (nm[i][k] * ml[k][j]);
				} {
					 a = a + (nm[i][k] * ml[k][j]);
				} a = a + (nm[i][k] * ml[k][j]) a a + (nm[i][k] * ml[k][j]) a (nm[i][k] * ml[k][j]) nm[i][k] nm[i] nm i k ml[k][j] ml[k] ml k j sb.append(String.valueOf(a)) sb.append sb String.valueOf(a) String.valueOf String a a = 0 a 0 if( j==l-1 ) break; j==l-1 j l-1 l 1 break; sb.append(" ") sb.append sb " " sb.append("\n") sb.append sb "\n" System.out.print(sb) System.out.print System.out System System.out sb String[] age age public class Main {
	public static void main(String[] age)throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuffer sb = new StringBuffer();

		String[] input = br.readLine().split(" ");
		int n = Integer.parseInt(input[0]);
		int m = Integer.parseInt(input[1]);
		int l = Integer.parseInt(input[2]);
		int i = 0;
		int j = 0;
		long a = 0;

		int nm[][] = new int[n][m];
		int ml[][] = new int[m][l];

		for( i=0 ; i<n ; i++ ){
			input = br.readLine().split(" ");
			for( j=0 ; j<m ; j++ ){
				nm[i][j]=Integer.parseInt(input[j]);
			}
		}

		for ( i=0 ; i<m ; i++ ){
			input = br.readLine().split(" ");
			for( j=0 ; j<l ; j++ ){
				ml[i][j]=Integer.parseInt(input[j]);
			}
		}

		for ( i=0 ; i<n ; i++ ){
			for( j=0 ; j<l ; j++ ){
				for( int k=0 ; k<m ; k++ ){
					 a = a + (nm[i][k] * ml[k][j]);
				}
				sb.append(String.valueOf(a));
				a = 0;
				if( j==l-1 ) break;
				sb.append(" ");
			}
			sb.append("\n");
		}

		System.out.print(sb);

	}
} public class Main {
	public static void main(String[] age)throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuffer sb = new StringBuffer();

		String[] input = br.readLine().split(" ");
		int n = Integer.parseInt(input[0]);
		int m = Integer.parseInt(input[1]);
		int l = Integer.parseInt(input[2]);
		int i = 0;
		int j = 0;
		long a = 0;

		int nm[][] = new int[n][m];
		int ml[][] = new int[m][l];

		for( i=0 ; i<n ; i++ ){
			input = br.readLine().split(" ");
			for( j=0 ; j<m ; j++ ){
				nm[i][j]=Integer.parseInt(input[j]);
			}
		}

		for ( i=0 ; i<m ; i++ ){
			input = br.readLine().split(" ");
			for( j=0 ; j<l ; j++ ){
				ml[i][j]=Integer.parseInt(input[j]);
			}
		}

		for ( i=0 ; i<n ; i++ ){
			for( j=0 ; j<l ; j++ ){
				for( int k=0 ; k<m ; k++ ){
					 a = a + (nm[i][k] * ml[k][j]);
				}
				sb.append(String.valueOf(a));
				a = 0;
				if( j==l-1 ) break;
				sb.append(" ");
			}
			sb.append("\n");
		}

		System.out.print(sb);

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

public class Main {
	public static void main(String[] age)throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuffer sb = new StringBuffer();

		String[] input = br.readLine().split(" ");
		int n = Integer.parseInt(input[0]);
		int m = Integer.parseInt(input[1]);
		int l = Integer.parseInt(input[2]);
		int i = 0;
		int j = 0;
		long a = 0;

		int nm[][] = new int[n][m];
		int ml[][] = new int[m][l];

		for( i=0 ; i<n ; i++ ){
			input = br.readLine().split(" ");
			for( j=0 ; j<m ; j++ ){
				nm[i][j]=Integer.parseInt(input[j]);
			}
		}

		for ( i=0 ; i<m ; i++ ){
			input = br.readLine().split(" ");
			for( j=0 ; j<l ; j++ ){
				ml[i][j]=Integer.parseInt(input[j]);
			}
		}

		for ( i=0 ; i<n ; i++ ){
			for( j=0 ; j<l ; j++ ){
				for( int k=0 ; k<m ; k++ ){
					 a = a + (nm[i][k] * ml[k][j]);
				}
				sb.append(String.valueOf(a));
				a = 0;
				if( j==l-1 ) break;
				sb.append(" ");
			}
			sb.append("\n");
		}

		System.out.print(sb);

	}
}