아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

장엄한 퍼레이드

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

요약
서로 다른 소수를 정확히 k개 사용해 n x n 행렬을 채우되, 모든 행의 곱과 모든 열의 곱이 같은 수의 약수를 갖도록 만든다.
난이도

보통10점 중 6점

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

문제

그루는 장엄한 퍼레이드를 열기로 했다. 퍼레이드의 빠질 수 없는 부분은 막강한 미니언 군단의 대형이다.

퍼레이드는 정사각형 모양의 중앙 광장에서 열린다. 광장의 가로와 세로 길이는 n미터이다. 광장은 가로와 세로가 1미터인 칸으로 나뉘어 있어, 그 위에 n2개의 칸이 있다. 다시 말해 중앙 광장은 n × n 행렬이다.

그루는 자기 군단의 미니언들에게 소수가 적힌 색깔 티셔츠를 하나씩 나눠 주었다. 일부 티셔츠에는 같은 수가 적혀 있을 수도 있다. 이제 미니언들이 그루가 원하는 대로 대형을 갖추면 된다. 대형을 갖출 때 광장의 각 칸은 미니언 한 명이 차지한다. 대형에는 추가 조건도 있다. 첫 번째 조건은 퍼레이드에 티셔츠에 적힌 소수가 정확히 k가지인 미니언들이 참여해야 한다는 것이다. 두 번째 조건은 각 행과 각 열에서 티셔츠에 적힌 수들의 곱이 같은 개수의 약수를 가져야 한다는 것이다. 또한 그루에게는 107을 넘지 않는 소수가 적힌 티셔츠만 있다는 점을 기억하자.

모든 조건을 만족하는 대형을 짜도록 도와주거나, 그것이 불가능하다는 것을 알아내라.

입력

입력은 두 정수 k와 n (1 ≤ k ≤ 109, 1 ≤ n ≤ 1000)이 들어 있는 한 줄로 주어진다. k는 필요한 서로 다른 소수의 개수이고 n은 광장의 크기이다.

출력

모든 조건을 만족하는, 107을 넘지 않는 소수로 이루어진 n × n 행렬을 출력하거나, 대형을 짤 수 없다면 −1을 출력한다.

예제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