#include<stdio.h>
#include<math.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;

#define NMAX 105

int a[NMAX][NMAX], pattern[NMAX];

/*int change(int val) {
    val %= 4;
    return (!val ? 4 : val);
}*/

int main () {
  //  freopen("a.in","r",stdin);

    pattern[1] = 1;
    pattern[2] = 2;
    pattern[3] = 3;
    pattern[0] = 4;
    for(int i = 1; i <= 16; i += 4) {
        for(int j = 1; j <= 16; j++)
            a[i][j] = pattern[j % 4];
    }

    pattern[1] = 3;
    pattern[2] = 4;
    pattern[3] = 1;
    pattern[0] = 2;
    for(int i = 2; i <= 16; i += 4) {
        for(int j = 1; j <= 16; j++)
            a[i][j] = pattern[j % 4];
    }

    pattern[1] = 2;
    pattern[2] = 1;
    pattern[3] = 4;
    pattern[0] = 3;
    for(int i = 3; i <= 16; i += 4) {
        for(int j = 1; j <= 16; j++)
            a[i][j] = pattern[j % 4];
    }
    pattern[1] = 4;
    pattern[2] = 3;
    pattern[3] = 2;
    pattern[0] = 1;
    for(int i = 4; i <= 16; i += 4) {
        for(int j = 1; j <= 16; j++)
            a[i][j] = pattern[j % 4];
    }
    for(int i = 1; i <= 16; i++, printf("\n"))
        for(int j = 1; j <= 16; j++)
            printf("%d ", a[i][j]);
    return 0;
}