#include <stdio.h>

int board[8];

void solve7()
{
	int bi, j, f;

	for (bi=0; bi<8; bi++) {
		f = 0;
		for (j=0; j<7; j++) {
			if (bi == board[j]) f=1;
			if (7 - j == bi - board[j]) f=1;
			if (7 - j == board[j] - bi) f=1;
		}
		if (f == 1) continue;

		board[7] = bi;

		for (j=0; j<8; j++) {
			printf("%d ", board[j]);
		}
		printf("\n");
	}
}

void solve6()
{
	int bi, j, f;

	for (bi=0; bi<8; bi++) {
		f = 0;
		for (j=0; j<6; j++) {
			if (bi == board[j]) f=1;
			if (6 - j == bi - board[j]) f=1;
			if (6 - j == board[j] - bi) f=1;
		}
		if (f == 1) continue;

		board[6] = bi;

		solve7();
	}
}

void solve5()
{
	int bi, j, f;

	for (bi=0; bi<8; bi++) {
		f = 0;
		for (j=0; j<5; j++) {
			if (bi == board[j]) f=1;
			if (5 - j == bi - board[j]) f=1;
			if (5 - j == board[j] - bi) f=1;
		}
		if (f == 1) continue;

		board[5] = bi;

		solve6();
	}
}

void solve4()
{
	int bi, j, f;

	for (bi=0; bi<8; bi++) {
		f = 0;
		for (j=0; j<4; j++) {
			if (bi == board[j]) f=1;
			if (4 - j == bi - board[j]) f=1;
			if (4 - j == board[j] - bi) f=1;
		}
		if (f == 1) continue;

		board[4] = bi;

		solve5();
	}
}

void solve3()
{
	int bi, j, f;

	for (bi=0; bi<8; bi++) {
		f = 0;
		for (j=0; j<3; j++) {
			if (bi == board[j]) f=1;
			if (3 - j == bi - board[j]) f=1;
			if (3 - j == board[j] - bi) f=1;
		}
		if (f == 1) continue;

		board[3] = bi;

		solve4();
	}
}

void solve2()
{
	int bi, j, f;

	for (bi=0; bi<8; bi++) {
		f = 0;
		for (j=0; j<2; j++) {
			if (bi == board[j]) f=1;
			if (2 - j == bi - board[j]) f=1;
			if (2 - j == board[j] - bi) f=1;
		}
		if (f == 1) continue;

		board[2] = bi;

		solve3();
	}
}

void solve1()
{
	int bi, j, f;

	for (bi=0; bi<8; bi++) {
		f = 0;
		for (j=0; j<1; j++) {
			if (bi == board[j]) f=1;
			if (1 - j == bi - board[j]) f=1;
			if (1 - j == board[j] - bi) f=1;
		}
		if (f == 1) continue;

		board[1] = bi;

		solve2();
	}
}

void solve0()
{
	int bi;

	for (bi=0; bi<8; bi++) {
		board[0] = bi;
		solve1();
	}
}

int main(void)
{
	solve0();

	return 0;
}
