#include using namespace std; #define rep(i, l, r) for (ll i = (l); i < (r); ++i) #define all(x) (x).begin(), (x).end() using ll = long long; using pl = pair; using vl = vector; using vvl = vector>; using vi = vector; using vvi = vector>; #pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") vector> hbtoid={ {0,1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14}, {15,16,17}, {18}, {19} }; vector idtoh={0,0,0,0,0,0,1,1,1,1,1,2,2,2,2,3,3,3,4,5}; vector idtob={0,1,2,3,4,5,0,1,2,3,4,0,1,2,3,0,1,2,0,0}; int hbsim(string a,string b){ int ih=0; rep(i,0,a.size())if(a[i]==b[i])ih++; sort(all(a)); sort(all(b)); int ib=-ih; rep(i,0,a.size())if(a[i]==b[i])ib++; return hbtoid[ih][ib]; } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); vector slis; string s="00000"; for(s[0]='0';s[0]<='9';s[0]++){ for(s[1]='0';s[1]<='9';s[1]++){ for(s[2]='0';s[2]<='9';s[2]++){ for(s[3]='0';s[3]<='9';s[3]++){ for(s[4]='0';s[4]<='9';s[4]++){ int a=0; rep(i,0,5){ rep(j,i+1,5)if(s[i]==s[j])a=1; } if(a==0)slis.push_back(s); } } } } } vector u(30240,true); while(true){ int a=0; rep(i,0,u.size()){ if(u[i]){ a=i; break; } } cout< d(20); rep(i,0,30){ int a,b; cin>>a>>b; d[hbtoid[a][b]]++; } if(d[19]==30)break; rep(i,0,u.size()){ if(d[hbsim(slis[i],slis[a])]==0)u[i]=false; } } }