Lutrija

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

요약
1e14 이하의 두 소수 A와 B가 주어질 때, 이웃한 원소의 차가 모두 소수가 되도록 A에서 B로 이어지는 소수 배열을 만들고, 불가능하면 -1을 출력한다.
난이도

보통10점 중 7점

유형
수학, 정수론, 그리디, 완전 탐색
정답자
아직 제출이 없습니다

문제

Vedran 할아버지는 하룻밤에 백만장자가 되겠다는 꿈을 안고 TV에서 자신이 가장 좋아하는 복권 방송을 보고 있다. 복권 공들이 요란하게 돌아가고 튀어 오르더니 다음과 같은 추첨 결과가 나왔다: 2, 5, 7, 11, 19, 23, 31.

Vedran은 그중 단 하나도 맞히지 못했다는 사실에 한숨을 내쉰다. "내 전성기는 지난 모양이군..."이라고 중얼거리며 낡은 TV를 껐다. 시력도 나빠져서 리모컨의 잘못된 버튼을 눌러 COCI 채널로 돌려 버렸다.

진행자 Malnar 씨가 차분히 말한다. "시청자 여러분, 화면 왼쪽에 소수 A를, 오른쪽에 소수 B를 보여 드리겠습니다. A로 시작하고 B로 끝나며, 이웃한 두 원소의 차의 절댓값이 소수인 소수 배열을 가장 먼저 전화로 알려 주시는 분께 싱가포르에서 열리는 IOI 2020 참가 여행을 드립니다."

나이 든 Vedran은 경쟁 프로그래머였던 전성기를 떠올린다. 아쉽게도 그는 실력이 녹슬어 이 문제를 풀 수 없다. 마음씨 고운 당신은 Vedran이 싱가포르 여행을 따낼 수 있도록 돕기로 했다.

참고: 소수는 1보다 큰 양의 정수 중 1과 자기 자신으로만 나누어떨어지는 수이다.

입력

첫째 줄에 문제 설명에 나오는 두 소수 A와 B가 주어진다. (2 ≤ A, B ≤ 1014, A ≠ B)

출력

문제가 불가능해서, 즉 문제 설명의 조건을 만족하는 배열이 없으면 -1을 한 줄에 출력한다.

그렇지 않으면 첫째 줄에 배열의 원소 개수를, 둘째 줄에 배열의 원소를 공백으로 구분해 출력한다. 배열의 크기는 30 이하여야 하고 원소는 1015 이하여야 한다. 답이 존재하면 이 범위를 만족하는 답이 적어도 하나 있음이 보장된다.

정답이 여러 개라면 아무거나 출력해도 된다.

예제3

  1. 예제 1

    입력
    13 11
    
    예상 출력
    2
    13 11
    
  2. 예제 2

    입력
    37 11
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    2 17
    
    예상 출력
    3
    2 19 17