//해시 연습
//#include<stdio.h>
//
//typedef struct m
//{
// char name[20];
// int comp;
//}M;
//
//int main()
//{
// int n;
// M p[10005] = { 0 };
// char comple[20] = { 0 };
// scanf_s("%d", &n);
//
// for (int i = 0; i < n; i++)
// {
// scanf_s(" %s", &p[i].name,20);
// }
//
//
// for (int i = 0; i < n - 1; i++)
// {
// scanf_s(" %s", &comple, 20);
// for (int j = 0; j < n; j++)
// {
// if (strcmp(p[j].name, comple)==0)
// {
// p[j].comp = 1;
// break;
// }
// }
// }
//
// for (int i = 0; i < n; i++)
// {
// if (p[i].comp == 0)
// {
// printf("%s", p[i].name);
// break;
// }
// }
//
// //for (int i = 0; i < n; i++)
// //{
// // printf("%s ", p[i].name);
// //}
//
//
// return 0;
//}
//프로그래머스 삼각달팽이
/*
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int trg[105][105] = { 0 };
int* solution(int n)
{
int* answer = (int*)calloc((n * (n + 1)) / 2, sizeof(int));
int answer_num =0;
int num = 1;
int vec = 1;
int move = 0;
int move_comp = n;
int x = 0;
int y = 0;
for (int i = 0; i < (n * (n + 1)) / 2; i++)
{
if (vec == 1)
{
trg[x++][y] = num++;
move++;
if (move == move_comp)
{
vec = 2;
move = 0;
move_comp--;
x--;
}
}
else if (vec == 2)
{
trg[x][++y] = num++;
move++;
if (move == move_comp)
{
vec = 3;
move = 0;
move_comp--;
}
}
else
{
trg[--x][--y] = num++;
move++;
if (move == move_comp)
{
vec = 1;
move = 0;
move_comp--;
x++;
}
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (trg[i][j] != 0)
{
answer[answer_num] = trg[i][j];
answer_num++;
}
}
}
return answer;
}
int main()
{
int n;
scanf_s("%d", &n);
int* res;
res = solution(n);
for (int i = 0; i < (n * (n + 1)) / 2; i++)
{
printf("%d ", res[i]);
}
return 0;
}*/
#include<stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int* solution(int** arr, size_t arr_rows, size_t arr_cols) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
int* answer = (int*)malloc(sizeof(int) * 2);
answer[0] = 0;
answer[1] = 0;
for (int i = 0; i < (int)arr_rows; i++)
{
for (int j = 0; j < (int)arr_cols; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return answer;
}
int main()
{
int n;
scanf_s("%d", &n);
int a[105][105] = { 0 };
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
scanf_s("%d", &a[i][j]);
}
}
int* res;
res = solution(a, n, n);
//printf("%d %d", res[0], res[1]);
return 0;
}