#include #include #define MOD 1000000007 long long int power(long long int a, long long int b, int M) { long long int ans = 1; long long int k = a; while(b) { if(b%2==1) ans *= k, ans %= M; b/=2; k *= k, k %= MOD; } return ans; } long long int inv(long long int k, int M) { return power(k,M-2,M); } int gcd(int a, int b) { return a?gcd(b%a,a):b; } int c[110]; std::vector V; int main() { int a; scanf("%d",&a); for(int i=1;i<=9;i++) scanf("%d",&c[i]); int count = 0; for(int i=1;i<=9;i++) if(c[i]>0) count++; if(count==1) { for(int i=1;i<=9;i++) { if(c[i]>0) { long long int t = power(10,c[i],MOD); t += (MOD-1), t %= MOD; t *= inv(9,MOD), t %= MOD; t *= i, t %= MOD; printf("%lld",t); return 0; } } } for(int i=1;i<=9;i++) if(c[i]>0) V.push_back(i); int g = 0; for(int i=0;i0) control = 0; if(control) L *= 2; // 4 control = 1; for(int i=1;i<=9;i++) { if(i==4) continue; if(i==8) continue; if(c[i]>0) control = 0; } if(control) L *= 2; // 3 int sum = 0; for(int i=1;i<=9;i++) sum += i*c[i], sum %= 9; if(sum%3==0) L *= 3; if(sum%9==0) L *= 3; //27 if(g%27==0) { long long int S = 0; for(int i=1;i<=9;i++) { if(c[i]>0) { S *= power(10,c[i],27), S %= 27; S += ((c[i]-1)/3+1)*i, S %= 27; S += ((c[i]-2)/3+1)*10*i, S %= 27; S += ((c[i]-3)/3+1)*19*i, S %= 27; } } if(S%27==0) L *= 3; } //7 if(count==2) { if(c[1]>0 && c[8]>0) { sum = 0; for(int i=1;i<=c[1]%6;i++) sum *= 10, sum += 1, sum %= 7; for(int i=1;i<=c[8]%6;i++) sum *= 10, sum += 8, sum %= 7; if(sum==0) L *= 7; } else if(c[2]>0&&c[9]>0) { sum = 0; for(int i=1;i<=c[2]%6;i++) sum *= 10, sum += 2, sum %= 7; for(int i=1;i<=c[9]%6;i++) sum *= 10, sum += 9, sum %= 7; if(sum==0) L *= 7; } } printf("%d",gcd(L,g)); }