import std.stdio; import std.string; import std.conv; import std.algorithm; import std.range; import std.array; /// base2num ============== auto base2num(string numberString, int base){ string base36 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; long res; foreach(i, c; numberString.dup.reverse){ res += base36.indexOf(c) * base.to!long^^i; } return res; } /// detectBase ======================= int detectBase(string s){ string base36 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int base; foreach(i; s){ base = max(base, base36.indexOf(i).to!int + 1); } return base; } /// main ======= void main(){ auto N = readln.strip.to!int; long res = long.max; foreach(i; 0..N){ auto buf = readln.strip; auto base = detectBase(buf); res = min(res, base2num(buf, base)); } writeln(res); }