해밍 타원

길이 n이고 q개 기호로 이루어진 단어 중 두 초점 단어까지의 해밍 거리 합이 정확히 D인 단어의 수를 구한다.

보통5조합론수학문자열구현아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

기하학에서 타원은 두 초점 f1f_1, f2f_2와 길이 DD로 정의된다. 타원은 d(f1,p)+d(f2,p)=Dd(f_1, p) + d(f_2, p) = D를 만족하는 모든 점 pp의 집합이다.

타원이라고 하면 보통 유클리드 거리를 쓰는 2차원 유클리드 평면 위의 도형을 떠올린다.

이 문제는 다른 종류의 타원을 다룬다. 여기서 쓰는 공간은 서로 다른 기호 qq개로 이루어진 알파벳으로 만든 길이 nn의 단어 전체가 이루는 공간이고, Fqn\mathbb{F}_q^n으로 적는다. qqnn이 주어지면 Fqn\mathbb{F}_q^n의 점, 즉 단어는 qnq^n개다.

거리는 해밍 거리를 쓴다. 두 단어 x,yFqnx, y \in \mathbb{F}_q^n 사이의 해밍 거리 dH(x,y)d_H(x, y)는 같은 자리의 기호가 서로 다른 위치의 개수다. 예를 들어 단어 01201과 21210의 해밍 거리는 3이다. 기호가 다른 위치가 세 곳이기 때문이다. Fqn\mathbb{F}_q^n의 두 단어 사이의 해밍 거리는 항상 0 이상 nn 이하의 정수다.

이제 Fqn\mathbb{F}_q^n 안에서 해밍 타원을 dH(f1,p)+dH(f2,p)=Dd_H(f_1, p) + d_H(f_2, p) = D를 만족하는 모든 점 pp의 집합으로 정의한다. qqnn, 두 초점 f1f_1f2f_2, 거리 DD가 주어질 때 이 해밍 타원 위에 놓인 점 pFqnp \in \mathbb{F}_q^n의 개수를 구하라.

입력

첫째 줄에 세 정수 qq (2q102 \le q \le 10), nn (1n1001 \le n \le 100), DD (1D2n1 \le D \le 2n)가 주어진다.

둘째 줄과 셋째 줄에 두 초점 f1f_1f2f_2가 순서대로 주어진다. 두 줄은 모두 숫자 {0,1,,q1}\{0, 1, \dots, q-1\}로 이루어진 길이 nn의 문자열이다.

출력

타원 위에 놓인 점의 개수를 정수 하나로 한 줄에 출력한다. 입력은 답이 2632^{63}보다 작도록 주어진다.