int main()
{
int a;
scanf("%d", &a);
int max = ((a) * (a + 1)) / 2;
int i = 1;
int x = 0;
int y = 0;
int layer = 1;
int flag = 1;
int arr[10][10];
for (i = 1; i <= max; i++)
{
arr[x][y] = i;
if (x == 0 && flag==1)
{
x = layer;
y = 0;
flag = 2;
}
else if (flag == 2)
{
x--;
y++;
if (x == 0)
{
flag = 1;
layer++;
}
}
}
for (i = 0; i < a; i++)
{
for (int j = 0; j < a-i; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}