#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define FOR(i,a,b) for(int i=(a);i<(b);++i) #define REP(i,n) FOR(i,0,n) #define CLR(a) memset((a), 0 ,sizeof(a)) #define MCLR(a) memset((a), -1 ,sizeof(a)) #define SZ(a) (sizeof(a)) #define FILL(a,v) fill((int*)a,(int*)(a+(SZ(a)/SZ(*(a)))),v) bool cheak(int x,int y,int xMax,int yMax) {return x >= 0 && y >= 0 && xMax > x && yMax > y;} const int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1}; typedef pair P; typedef long long ll; typedef unsigned long long ull; const ull INF = 18446744073709551615; ull cast(string s) { int len = s.length(); int Max = 0; REP(i,len) { if(s[i] >= '0' && s[i] <= '9') { Max = max(Max,s[i]-'0'+1); }else { Max = max(Max,s[i]-'A'+11); } } ull sum = 0; REP(i,len) { ull tmp; if(i == len-1) tmp = 1; else tmp = Max; if(s[i] >= '0' && s[i] <= '9') sum = tmp*(sum+(s[i]-'0')); else sum = tmp*(sum+(s[i]-'A'+10)); } return sum; } int main() { int n; cin >> n; ull Min = INF; REP(i,n) { string v; cin >> v; Min = min(cast(v),Min); } cout << Min << endl; return 0; }