题目描述
要求构造下面的矩阵:
1. 矩阵的大小为 $S(n) \times S(n)$;
2. $S(n)$ 表示 Fibonacci 数列前 $n$ 项和对 $m$ 取模之后的值,即 $S(n)=(F_1+F_2+\dots+F_n) \bmod m$;
3. 矩阵仅由 $-1,0,1$ 三种值构成;
4. 矩阵每一行每一列的和都不相同。
已知 $F_1 = F_2 = 1$,给定 $n$ 和 $m$,试构造并输出这样的一个矩阵。
输入格式
两个正整数 $n$ 和 $m$,以一个空格隔开。
- $1 \le n \le 1,000,000,000$
- $1 \le m \le 200$
输出格式
若能构造出这样的矩阵,在第一行输出 `Yes`,接下来输出整个矩阵,中间用空格分隔;若不能构造,只输出一行 `No`。
如果有多个矩阵同时满足题意,输出任意一个均可。