숫자열 분할

숫자 문자열을 각 블록이 m으로 나누어떨어지도록 나누는 방법 수를 10^9+7로 나눈 나머지를 구합니다.

보통7동적 계획법수학해시맵아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

길이가 nn인 십진수 숫자열이 주어진다. 이 숫자열을 연속한 부분 숫자열 하나 이상으로 나누되, 각 부분 숫자열을 십진수로 읽은 값이 모두 정수 mm으로 나누어떨어지게 해야 한다.

이런 분할이 몇 가지인지 세어 109+710^9 + 7로 나눈 나머지를 구하라. 두 분할이 서로 다른지는 숫자가 아니라 경계 위치로만 판단한다. 예를 들어 2|2222|2는 서로 다른 분할이다.

입력

첫째 줄에 숫자열의 길이 nn과 나누는 수 mm이 주어진다 (1n3000001 \le n \le 300000, 1m10000001 \le m \le 1000000).

둘째 줄에 숫자 nn개로 이루어진 문자열이 주어진다. 맨 앞자리가 0일 수도 있다.

출력

분할의 개수를 109+710^9 + 7로 나눈 나머지를 한 줄에 출력한다.