import java.util.*;

public class Main {

    static ArrayList<String> list = new ArrayList<>(); // 存储所有92个解

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        boolean[][] array = new boolean[8][8];
        // 初始化棋盘全为false
        for (int i = 0; i < 8; i++) {
            for (int j = 0; j < 8; j++) {
                array[i][j] = false;
            }
        }

        // 从第0行开始回溯
        traceBack(array, 0, new StringBuilder());

        // 根据输入输出对应的解
        while (in.hasNextInt()) {
            int b = in.nextInt();
            System.out.println(list.get(b - 1)); // b从1开始
        }
    }

    // 回溯放置第row行
    public static void traceBack(boolean[][] array, int row, StringBuilder choiceStr) {
        if (row == 8) {
            // 找到一个解,存入list
            list.add(choiceStr.toString());
            return;
        }

        for (int col = 0; col < 8; col++) {
            // 检查位置(row, col)是否安全
            if (isSafe(array, row, col)) {
                // 放置皇后
                array[row][col] = true;
                choiceStr.append(col + 1); // 题目要求输出1-based列号

                // 递归下一行
                traceBack(array, row + 1, choiceStr);

                // 回溯,撤销皇后
                array[row][col] = false;
                choiceStr.deleteCharAt(choiceStr.length() - 1);
            }
        }
    }

    // 判断在(row, col)放置皇后是否与已有皇后冲突
    public static boolean isSafe(boolean[][] array, int row, int col) {
        // 检查同一列
        for (int i = 0; i < row; i++) {
            if (array[i][col]) {
                return false;
            }
        }
        // 检查左上对角线
        for (int i = row - 1, j = col - 1; i >= 0 && j >= 0; i--, j--) {
            if (array[i][j]) {
                return false;
            }
        }
        // 检查右上对角线
        for (int i = row - 1, j = col + 1; i >= 0 && j < 8; i--, j++) {
            if (array[i][j]) {
                return false;
            }
        }
        return true;
    }
}