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

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

Награды

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

요약
일렬로 선 n명 중 이웃하지 않게 k명을 뽑는 경우의 수를 소수 m으로 나눈 나머지를 구한다.
난이도

보통10점 중 5점

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

문제

На одном Очень Важном Предприятии решили наградить некоторых kk его работников. Конечно же, решили сделать это в соответствии со следующей Очень Важной Процедурой.

Всех nn работников выстроили в один ряд. Причем, получилось так, что каждый работник видит только своих непосредственных соседей в этом ряду. Для повышения уровня производства на Очень Важном Предприятии начальство решило сделать так, чтобы каждый награжденный считал, что наградили именно его и только его. Для этого необходимо, чтобы в ряду не было двух рядом стоящих награжденных работников.

Вам необходимо написать программу, которая будет считать количество способов раздать таким образом kk наград среди nn стоящих в ряд работников. Так как это число может быть весьма большим, необходимо найти его остаток от деления на простое число mm.

입력

В первой и единственной строке входного файла заданы три целых неотрицательных числа nn, kk и mm --- количество работников на Очень Важном Предприятии, количество наград и простой модуль (1≤k≤n≤100000,1≤m≤1091 \le k \le n \le 100000, 1 \le m \le 10^9).

출력

В выходной файл выведите единственное целое число --- ответ на задачу, взятый по модулю простого числа mm.

예제2

  1. 예제 1

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

    입력
    5 2 673
    
    예상 출력
    6