소수 회문 깃발
시간 제한1초메모리 제한128 MB
n과 가운데 자리 숫자 c(없을 수도 있음)가 주어질 때, 소수인 회문이 하나라도 있으면 가장 큰 소수 회문을, 없으면 가장 큰 회문을 출력한다.
문제
J 중학교의 운동회에서 각 반은 다음과 같은 반 대항 경기를 한다. 한 반은 남녀 대표 학생 쌍
을 뽑는다. 각 학생은 부터 까지의 숫자가 적힌 깃발을 자유롭게 고르고(각 숫자의 깃발은 충분히 많다) 가로로 한 줄로 선다. 단, 한 쌍을 이루는 남학생과 여학생은 같은 숫자의 깃발을 들어야 하므로 이다. 서는 순서는
과 같이, 여학생들은 남학생들의 순서를 뒤집은 순서로 선다. 가운데 자리에는, 심판장이 미리 지정한 숫자 의 깃발을 담임 선생님이 들고 서는 경우와, 서지 않도록 지정되는 경우가 있다.
이렇게 늘어선 깃발의 숫자들을 왼쪽부터 하나의 정수로 읽으면 자리(선생님이 없을 때) 또는 자리(선생님이 있을 때)의 정수가 된다. 이 정수가 소수인 반이 이긴다. 두 반이 모두 소수이거나 모두 소수가 아니면, 정수가 더 큰 반이 이긴다. 또한 맨 앞에 이 오는 것은 보통의 수 표기가 아니므로
또는
과 같은 배열은 금지된다. 따라서 이다.
이므로 늘어선 숫자는 회문 이 된다. 당신의 반이 지지 않도록 하는 배열을 구하여라.
최적의 상대에 대해 지지 않는 배열은 유일하다. 소수인 회문이 하나라도 존재하면 그것은 가장 큰 소수 회문이고(소수는 항상 소수가 아닌 수를 이기며, 소수들 중에서는 가장 큰 것만이 지지 않는다), 그렇지 않으면 모든 회문이 소수가 아니므로 가장 큰 회문이다.
입력
첫 줄에 정수 과 한 자리 정수 가 공백 하나로 구분되어 주어진다. 이면 선생님은 가운데에 서지 않으며(이때 정수는 자리), 그렇지 않으면 선생님이 숫자 의 깃발을 들고 선다(정수는 자리).
제약: 이고 이다. 대부분의 경우 이다.
출력
지지 않는 배열, 즉 늘어선 숫자를 하나의 정수로 읽은 값을 한 줄에 출력한다.