만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

성대한 퍼레이드

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

요약
k개의 서로 다른 소수를 정확히 쓰고, 모든 행과 열의 곱의 약수 개수가 같은 n×n 행렬을 10^7 이하 소수로 만들거나 불가능하면 -1을 출력합니다.
난이도

보통10점 중 6점

유형
행렬, 정수론, 구현
정답자
아직 제출이 없습니다

문제

그루는 성대한 퍼레이드를 열려고 한다. 퍼레이드의 핵심 순서는 미니언 군대를 배치하는 것이다.

퍼레이드는 한 변의 길이가 nn 미터인 정사각형 중앙 광장에서 열린다. 광장은 가로세로 1미터 칸으로 나뉘어 있으므로 칸은 모두 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). kk는 필요한 서로 다른 소수의 개수이고, nn은 광장의 크기이다.

출력

모든 조건을 만족하는 10710^7 이하의 소수로 이루어진 n×nn \times n 행렬을 출력하라. 불가능하면 -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