정수 상수 0부터 9까지, 변수 a부터 z까지, 그리고 덧셈, 곱셈, 상수 지수를 사용한 거듭제곱 연산으로 이루어진 식 E가 있다. 놀랍게도 각 변수 a,b,…,z는 식 E 안에 최대 한 번만 나타난다.
소수 p가 주어질 때, 이 식이 나타내는 다항식이 p를 법으로 하여 갖는 근의 개수를 구하려고 한다. 다시 말해, 식 E에 등장하는 각 변수에 0부터 p−1까지의 정수를 대입하는 방법 중에서 E의 값이 p로 나누어떨어지는 경우의 수를 센다. 이 개수가 매우 커질 수 있으므로, 30011로 나눈 나머지를 출력하면 된다.
예를 들어 식 E=((a+y)⋅(z+8))2은 p=3일 때 근을 15개 가지며, 그중에는 다음과 같은 근들이 있다.
(a=0, y=0, z=0),(a=1, y=2, z=0),(a=2, y=0, z=1)
식은 다음과 같이 정의된다.
(A+B)와 (A*B)도 식이다. 앞은 A와 B의 합을, 뒤는 곱을 나타낸다.(A^B)도 식이다. 이는 A를 B제곱한 것을 나타낸다.첫째 줄에 소수 p가 주어진다. (2≤p<15000)
둘째 줄에 위에서 정의한 식 E가 주어진다. 식은 공백 없이 문자 0–9, a–z, +, *, ^, (, )로만 이루어지며, 길이는 최대 300자이다.
식 E가 나타내는 다항식이 p를 법으로 하여 갖는 근의 개수를 k라 하자. 음이 아닌 정수 kmod30011을 하나 출력한다.