#include <bits/stdc++.h>
#define pb push_back
#define NMAX (1<<13)
#define ll long long
#define x first
#define y second
//#define cout fout

using namespace std;

int viz[NMAX],n,ramase,v[NMAX];

ofstream fout("fisier.out");

int main() {
	int i,j,last=0,dir=1;

	for(i=0;i<16;++i) {
		if(i%2==0) last=1;
		if(i%2==1) last=2;
		/*if(i%12==2) last=3;
		if(i%12==3) last=4;
		if(i%12==4) last=3;
		if(i%12==5) last=2;
		if(i%12==6) last=1;
		if(i%12==7) last=2;
		if(i%12==8) last=3;
		if(i%12==9) last=4;
		if(i%12==10) last=3;
		if(i%12==11) last=2;*/

		for(j=0;j<16;++j) {
			cout<<last<<' ';
			if(j && (last==2 || last==1)) dir*=-1;
			last+=dir;
		}
		cout<<'\n';
	}

	return 0;
}