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()])));
}
}
}
}