Z = Array.new(128) ('0' .. '9').each_with_index{|c,i| Z[c.ord] = 1 + i } ('A' .. 'Z').each_with_index{|c,i| Z[c.ord] = 11 + i } ('a' .. 'z').each_with_index{|c,i| Z[c.ord] = 11 + i } def max(a,b); a > b ? a : b; end def min_base(str) max(2,Z[str.chars.max_by{|c| Z[c.ord] }.ord]) end N = gets.to_i puts N.times.map{ s = gets.chomp; s.to_i(min_base(s)) }.min