#include <stdio.h>

int main(void) {
	int tam, i, j, k, soma;
	scanf("%i", &tam);
	int mA[tam][tam], mB[tam][tam], mT[tam][tam], mR[tam][tam];
	
	//ler matriz A e depois matriz B
	for (i=0; i<tam; i++) {
		for (j=0; j<tam; j++) {
			scanf("%i", &mA[i][j]);
		}
	}
	
	for (i=0; i<tam; i++) {
		for (j=0; j<tam; j++) {
			scanf("%i", &mB[i][j]);
		}
	}
	
	//transposta
	for (i=0; i<tam; i++) {
		for (j=0; j<tam; j++) {
			mT[i][j] = mA[j][i];
		}
	}
	
	//multiplica
	for (i=0; i<tam; i++) {
		for (k=0; k<tam; k++) {
			soma = 0;
			for (j=0; j<tam; j++) {
				soma = soma + mA[i][j] * mT[j][k];
			}
			mR[i][k] = soma;
		}
	}

	//compara matrizes
	int iguais = 1;
	for (i=0; i<tam; i++) {
		for (j=0; j<tam; j++) {
			if (mR[i][j] != mB[i][j]) {
				iguais = 0;
				printf("diferentes na posicao %i e %i\n", i, j);
				break; //faz para os FOR quando achar
			}
		}
	}
	if (iguais) {
		printf("correto\n");
	} else {
		printf("incorreto\n");
	}
	
	//apenas para mostrar os valores das matrizes
	printf("Matriz A\n");
	for (i=0; i<tam; i++) {
		for (j=0; j<tam; j++) {
			printf("%i ", mA[i][j]);
		}
		printf("\n");
	}
	printf("\nMatriz A'\n");
	for (i=0; i<tam; i++) {
		for (j=0; j<tam; j++) {
			printf("%i ", mT[i][j]);
		}
		printf("\n");
	}
	printf("\nMatriz B\n");
	for (i=0; i<tam; i++) {
		for (j=0; j<tam; j++) {
			printf("%i ", mB[i][j]);
		}
		printf("\n");
	}
	printf("\nMatrizA * MatrizA'\n");
	for (i=0; i<tam; i++) {
		for (j=0; j<tam; j++) {
			printf("%i ", mR[i][j]);
		}
		printf("\n");
	}
}