N, K = map(int, input().split()) if K == 0: exit(print(-1)) ans = [[0] * N for _ in range(N)] order = [*range(1, N * N + 1)][-K:][::-1] step = 0 while order: i = min(step, N - 1) j = 0 while i >= 0 and j <= step and order: ans[i][j] = order.pop() i -= 1 j += 1 step += 1 order = [*range(1, N * N + 1)][: N * N - K][::-1] for i in range(N): for j in range(N): if ans[i][j] > 0: continue if not order: i = N break ans[i][j] = order.pop() for a in ans: print(*a)