import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int i = in.nextInt();

            int max = 0;
            for (int x = 1; x <= i; x ++) {
                max += x;
            }

            List<List<String>> list = new ArrayList<>();
            outer:
            for (int x = 1; x <= max;) {

                int n = list.size() + 1;
                for (int m = 1; m <= n; m ++) {
                    if (m == 1) {
                        List<String> yList = new ArrayList<>();
                        yList.add(x + "");
                        list.add(yList);
                        x ++;
                    } else {
                        list.get(n - m).add(x + "");
                        x ++;
                    }
                }
            }

            for (List<String> yList : list) {
                System.out.println(String.join(" ", yList.toArray(new String[yList.size()])));
            }
        }
    }
}