Palavras circulares
Uma palavra circular tem posições, cada uma contendo um símbolo de a . Depois da última posição vem a primeira. Para cada par ordenado de símbolos , conhecemos a quantidade de posições cujo símbolo é e cujo próximo símbolo é .
Duas palavras são consideradas iguais se uma pode ser obtida da outra por uma rotação. Inverter a ordem de leitura não é uma equivalência: uma palavra e sua reversa só são iguais quando também diferem por uma rotação.
Determine quantas palavras circulares diferentes têm exatamente as quantidades fornecidas. Como a resposta pode ser grande, imprima seu resto na divisão por .
Símbolos podem não aparecer. Símbolos consecutivos podem ser iguais. Se , a única posição tem a si mesma como próxima posição.
Input
A primeira linha contém ().
As próximas linhas contêm inteiros cada. O -ésimo inteiro da linha é ().
Output
Imprima a quantidade de palavras circulares diferentes, módulo .
Samples
Sample 1
Input
2 2 2 2 0
Output
2
Representantes das duas palavras são 111212 e 112112. A segunda tem período , enquanto a primeira tem período .
Sample 2
Input
2 0 2 1 0
Output
0
Sample 3
Input
1 4
Output
1