package yukicoder_3565; import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { new Main(); } public Main() { try (Scanner sc = new Scanner(System.in)) { /* * author: 31536000 * 考察メモ * D=1の時、全ての距離が1でないといけないので、自己ループ付き完全グラフである必要がある * そうでない時、頂点1に自己ループ、それ以外の頂点は頂点1に繋ぐとこれは成立 * 木は二部グラフであるから、自分と距離の偶奇及びDとの偶奇のxorが一致しない点に行けないことを考えると、 * 木(E=V-1)では不成立で、E=Vの時は上で成立するのでこれが条件を満たすことは分かる */ int V = sc.nextInt(), D = sc.nextInt(); assert 1 <= V && V <= 1000; assert 1 <= D && D <= 640000; int[][] E = new int[V][V]; if (D == 1) for (int i = 0;i < V;++ i) Arrays.fill(E[i], 1); else for (int i = 0;i < V;++ i) E[0][i] = E[i][0] = 1; for (int[] i : E) { for (int j : i) System.out.print(j); System.out.println(); } } } }