Торжественный парад

시간 제한2초메모리 제한1024 MB

요약
10^7 이하의 소수로 n x n 격자를 채우되 정확히 k개의 서로 다른 소수를 사용하고 모든 행과 열의 곱이 같은 수의 약수를 갖도록 만든다.
난이도

보통10점 중 6점

유형
수학, 정수론, 조합론, 구현
정답자
아직 제출이 없습니다

문제

Грю решил устроить торжественный парад. Неотъемлемая часть парада --- построение его могучей армии миньонов.

Парад будет проходить на Центральной площади, которая имеет форму квадрата. Длина и ширина площади --- nn метров. Она разбита на ячейки по одному метру в длину и ширину, таким образом, на ней находится n2n^2 ячеек. Иначе говоря, Центральная площадь представляет собой матрицу n×nn \times n.

Грю раздал каждому миньону из своей армии по цветной маеечке, на которой написано простое число. На некоторых маечках могут быть написаны одинаковые числа. Теперь дело за миньонами --- они должны построиться так, как хочет Грю. При построении каждую ячейку площади занимает ровно один миньон. Также есть дополнительные требования к построению. Первое из них заключается в том, что в параде должны участвовать миньоны с ровно kk различными простыми числами на маечках. Второе требование состоит в том, что произведение чисел на маечках в каждой строке и в каждом столбце должно иметь одинаковое колиство делителей. Также учтите, что в распоряжении Грю имеются только маечки с простыми числами, не превосходящими 10710^7.

Помогите провести построение, удовлетворяющее всем требованиям или выясните, что это сделать невозможно.

입력

В единственной строке входного файла даны два числа kk, nn (1≤k≤1091 \le k \le 10^9, 1≤n≤10001 \le n \le 1000) --- количество требуемых различных простых чисел и размер площади.

출력

Выведите матрицу n×nn \times n состоящую из простых чисел, не превосходящих 10710^7, для которой выполняются все требования, либо -1, если построение выполнить невозможно.

힌트

В первом примере произведение чисел в первой строке --- 6, во второй --- 35, в первом столбце --- 10, во втором --- 21, каждое из этих чисел имеет 4 делителя.

Во втором примере произведение чисел в перой и третьей строке, а также в первом и третьем столбце --- 12, а во второй строке и втором столбце --- 18, оба этих числа имеют по 6 делителей.

В третьем примере построение выполнить невозможно.

예제3

  1. 예제 1

    입력
    4 2
    
    예상 출력
    2 3
    7 5
    
  2. 예제 2

    입력
    2 3
    
    예상 출력
    2 3 2
    3 2 3
    2 3 2
    
  3. 예제 3

    입력
    10 3
    
    예상 출력
    -1