0과 1로 이루어진 비어 있지 않은 모든 수열을 이진 단어라고 한다. 단어 방정식은 다음과 같은 형태의 등식이다.
x1x2…xl=y1y2…yr
여기서 각 xi와 각 yj는 이진 숫자(0 또는 1)이거나 변수(영어 소문자)이다.
모든 변수에는 고정된 길이가 정해져 있다. 이는 그 변수에 대입할 수 있는 이진 단어의 자릿수이다. 단어 방정식을 푼다는 것은, 각 변수마다 그 변수의 길이와 정확히 같은 길이의 이진 단어를 하나씩 배정하여, 모든 변수를 배정한 단어로 치환했을 때 좌변과 우변이 같은 이진 단어가 되도록 만드는 것이다.
예를 들어 변수 a,b,c,d,e의 길이가 각각 4,2,4,4,2이고 방정식이
1bad1=acbe
라면, 이 방정식의 서로 다른 해는 정확히 16개이다.
주어진 방정식에 대해 서로 다른 해가 몇 개인지 구하여라. 프로그램은 다음을 수행해야 한다.
첫째 줄에 방정식의 개수 x (1≤x≤5)가 주어진다. 이어서 x개의 방정식 설명이 사이에 빈 줄 없이 주어진다. 각 방정식의 설명은 정확히 여섯 줄로 이루어진다.
각 변에서 숫자의 개수와 (모든 등장을 세어 더한) 변수 길이의 합을 합한 값은 10000 이하이다.
각 i (1≤i≤x)에 대해, i번째 줄에 i번째 방정식의 서로 다른 해의 개수를 출력한다.