만드는 중입니다

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

꼬리별

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

요약
소수인 날마다 날짜의 Q제곱을 더한 뒤, 그 합을 P로 나눈 나머지를 구합니다.
난이도

어려움10점 중 8점

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

문제

긴 꼬리를 남기며 밤하늘을 지나가는 꼬리별을 본 적이 있는가? 사실 이 꼬리는 먼지나 기체가 아니라, 별의 주민들이 일부러 만들어 뿌리는 마법 가루이다. 이 별의 주민들은 족제비처럼 생겼으며, 정성을 다해 꼬리를 만든다는 뜻으로 스스로를 '다꼬리'라고 부른다.

꼬리별의 1년은 PP일로 나뉘어 있고, 별에는 1번부터 PP번까지 번호가 붙은 PP마리의 다꼬리가 살고 있다. 마법 가루의 양에 비해 다꼬리의 수가 부족해서, 다꼬리들은 다음 규칙에 따라 야근을 한다.

  • 1번 다꼬리는 연봉 지급을 담당하므로, 매년 첫 날에만 야근을 한다.
  • 그 외의 ii번(2≤i≤P2 \le i \le P) 다꼬리는 매년 ii의 배수 번째 날에 야근을 하되, ii번째 날은 제외한다.

위 규칙에 따르면 1년 중 몇몇 날은 모든 다꼬리가 정시에 퇴근한다. 그런 날마다 그 날짜를 그 해의 연도만큼 거듭제곱한 값이 다꼬리들의 연봉에 누적된다. 이 값은 천문학적으로 큰 수이지만, 아쉽게도 다꼬리들이 받는 연봉은 이 값을 PP로 나눈 나머지이다.

다꼬리들이 규칙에 따라 한 해 동안 열심히 일했을 때 받게 되는 연봉을 구하여라.

입력

첫 줄에 꼬리별의 한 해를 이루는 날의 수이자 별에 살고 있는 다꼬리의 수인 정수 PP(2≤P≤1092 \le P \le 10^9, PP는 소수)와 올해 연도를 나타내는 정수 QQ(0≤Q≤1,0000 \le Q \le 1{,}000)가 공백을 사이에 두고 주어진다.

출력

첫 줄에 올해 한 해 동안 일한 다꼬리들이 받게 되는 연봉을 출력한다.

예제3

  1. 예제 1

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

    입력
    997 3
    예상 출력
    729
  3. 예제 3

    입력
    998244353 1000
    예상 출력
    289138469