Problem: Gerald has n younger brothers and their number happens to be even. One day he bought n2 candy bags. One bag has one candy, one bag has two candies, one bag has three candies and so on. In fact, for each integer k from 1 to n2 he has exactly one bag with k candies. 

Help him give n bags of candies to each brother so that all brothers got the same number of candies.

Input

The single line contains a single integer n (n is even, 2 ≤ n ≤ 100) — the number of Gerald's brothers.

Output

Let's assume that Gerald indexes his brothers with numbers from 1 to n. You need to print n lines, on the i-th line print n integers — the numbers of candies in the bags for the i-th brother. Naturally, all these numbers should be distinct and be within limits from 1 to n2. You can print the numbers in the lines in any order. 

It is guaranteed that the solution exists at the given limits.

Examples

Input

2


Output

1 4
2 3

Note

The sample shows Gerald's actions if he has two brothers. In this case, his bags contain 1, 2, 3 and 4 candies. He can give the bags with 1 and 4 candies to one brother and the bags with 2 and 3 to the other brother.

Solution (in JAVA):

Solution:
import java.util.*;
import java.lang.*;
import java.io.*;
import java.math.*;

public class Main {
	public String fileIn;
	public String fileOut;

	public Main() {
		this.fileIn = "in";
		this.fileOut = "out";
	};
		
	public static void main(String[] args) throws IOException {
		Main input = new Main();
		input.inputOne(); // standart input, output
		//input.inputTwo(); // input from file, writer into file
		//input.inputThree(); // input from file, writer into terminal
	};
	
	public void inputOne() {
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;
		InputReader in = new InputReader(inputStream);
		PrintWriter out = new PrintWriter(outputStream);
		Task solver = new Task();
		solver.solve(in, out);
		out.close();
	};

	public void inputTwo() throws IOException {
		FileReader fileReader = new FileReader(fileIn);
		FileWriter fileWriter = new FileWriter(fileOut);
		FInputReader in = new FInputReader(fileReader);
		PrintWriter out = new PrintWriter(fileWriter);
		Task solver = new Task();
		solver.solve2_3(in, out);
		out.close();
	};

	public void inputThree() throws IOException {
		FileReader fileReader = new FileReader(fileIn);
		OutputStream outputStream = System.out;
		FInputReader in = new FInputReader(fileReader);
		PrintWriter out = new PrintWriter(outputStream);
		Task solver = new Task();
		solver.solve2_3(in, out);
		out.close();
	};
	
	static class Task {
		public void solve(InputReader in, PrintWriter out) {
		  int n = in.nextInt();
		  int on = n * n;
		  int i = 1;
		  int temp = 1;
			for(int t = 0; t < n; t++) {
				for(; i < on; i++) {
					out.print(i + " " + on + " ");
					on--;
					if(temp > n / 2 - 1) {
						temp = 1;
						break;
					}
					temp++;
				}
				i++;
				out.println();
			}  
		};

		public void solve2_3(FInputReader in, PrintWriter out) {
		
		};
	}

	static class InputReader {
		public BufferedReader reader;
		public StringTokenizer tokenizer;

		public InputReader(InputStream stream) {
			reader = new BufferedReader(new InputStreamReader(stream));
			tokenizer = null;
		};

		public String next() {
		 	while(tokenizer == null || !tokenizer.hasMoreTokens()) {
		 		try {
		 			tokenizer = new StringTokenizer(reader.readLine());	
		 		} catch(IOException ex) {
		 			throw new RuntimeException(ex);
		 		}
		 	}
		 	return tokenizer.nextToken();
		};

		public String nextLine() {
			String str;
			try {
				str = reader.readLine();
			} catch(IOException ex) {
				throw new RuntimeException(ex);
			}
			return str;
		};

		public int nextInt() {
			return Integer.parseInt(next());
		};

		public double nextDouble() {
			return Double.parseDouble(next());
		};
	}
	
	static class FInputReader {
		public BufferedReader reader;
		public StringTokenizer tokenizer;

		public FInputReader(FileReader fileReader) {
		 	reader = new BufferedReader(fileReader);
		 	tokenizer = null;
		};

		public String next() {
			while(tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
				  tokenizer = new StringTokenizer(reader.readLine());
				} catch(IOException ex) {
					throw new RuntimeException(ex);
				}
			}
			return tokenizer.nextToken();
		};

		public String nextLine() {
			String str;
			try {
				str = reader.readLine();
			} catch(IOException ex) {
				throw new RuntimeException(ex);
			}
			return str;
		};

		public int nextInt() {
			return Integer.parseInt(next());
		};

		public double nextDouble() {
			return Double.parseDouble(next());
		};
	}
}