一個大小為 $N$ 嘅「好矩陣」係一個由正整數組成嘅 $N \times N$ 矩陣,令到每一行、每一列同埋兩條對角線嘅總異或(XOR)和都係 $0$。
更準確咁講,如果一個 $N \times N$ 矩陣 $A$ 滿足以下所有條件,就稱佢為大小為 $N$ 嘅好矩陣。呢度,$x \oplus y$ 代表 $x$ 同 $y$ 嘅按位異或,而且 $\bigoplus_{i=1}^N a_i = a_1 \oplus \dots \oplus a_N$。
- $A_{i,j}$($1 \le i, j \le N$)係正整數。
- 對於每個 $i = 1, 2, \dots, N$,$\bigoplus_{j=1}^N A_{i,j} = 0$。
- 對於每個 $j = 1, 2, \dots, N$,$\bigoplus_{i=1}^N A_{i,j} = 0$。
- $\bigoplus_{i=1}^N A_{i,i} = 0$。
- $\bigoplus_{i=1}^N A_{i,N-i+1} = 0$。
俾你一個正整數 $N$。
喺所有大小為 $N$ 嘅好矩陣入面,請輸出一個令到所有元素嘅總和 $\sum_{1 \le i, j \le N} A_{i,j}$ 最小嘅矩陣。
如果唔存在大小為 $N$ 嘅好矩陣,請報告呢個情況。
輸入格式
輸入包含一個整數 $N$。($1 \le N \le 2 \times 10^3$)
輸出格式
如果唔存在大小為 $N$ 嘅好矩陣,請喺單獨一行輸出 $-1$。
如果存在,請喺第一行輸出所有元素嘅最小可能總和。
然後喺接下來嘅 $N$ 行輸出矩陣 $A$,元素之間用空格隔開。即係話,第 $(i+1)$ 行應該包含矩陣 $A$ 嘅第 $i$ 行元素,用空格隔開。
如果有多個解,輸出其中任何一個都可以。
範例
範例輸入 1
2
範例輸出 1
4 1 1 1 1
範例輸入 2
1
範例輸出 2
-1
說明
對於第一個範例,每一行、每一列同埋兩條對角線嘅總異或都係 $0$,所以佢滿足好矩陣嘅條件。另外,喺所有大小為 $2$ 嘅好矩陣入面,所有元素嘅總和唔可以細過 $4$,所以最小值係 $4$。
對於第二個範例,唔存在大小為 $1$ 嘅好矩陣,所以輸出 $-1$。
非負整數 $x, y$ 嘅按位異或 $x \oplus y$ 定義如下:
- 喺 $x \oplus y$ 嘅二進制表示入面,$2^k$($k \ge 0$)位上面嘅數字係 $1$,當且僅當 $x$ 同 $y$ 嘅二進制表示喺 $2^k$ 位上面嘅數字恰好有一個係 $1$;否則係 $0$。
例如,$3 \oplus 5 = 6$(用二進制表示即係 $011 \oplus 101 = 110$)。