#pragma TASS input 
int N_BOUND;
#pragma TASS input  {N>=0 && N<=N_BOUND}
int N;
#pragma TASS input 
double A[N][N];
#pragma TASS input 
double B[N][N];
#pragma TASS output 
double C[N][N];

void main() {
	int i; 
	int j;
	int k;
	double D[N][N];
	
	i = 0;
	while (i < N) {
		j = 0;
		while (j < N) {
			D[i][j] = 0.0;
			j = j + 1;
		}
		i = i + 1;
	}
	
	i = 0;
	j = 0;
	
	while (i < N) {
		j = 0;
		while (j < N) {
			k = 0;
			while (k < N) {
				D[i][j] = D[i][j] + A[i][k] * B[k][j]; 
				k = k + 1;
			}
			j  = j + 1;
		}
		i = i + 1;
	}
	
	i = 0;
	while (i < N) {
		j = 0;
		while (j < N) {
			C[i][j] = D[i][j];
			j = j + 1;
		}
		i = i + 1;
	}
}
