object main{ object Solver extends InputReader{ def mapChar(c: Char): Int = { if('0' <= c && c <= '9') return c - '0' return c - 'A' + 10 } def mapToInt(v: String): Long = { val vi = v.map(mapChar) val mx = vi.max (0L /: vi)(_ * (mx + 1) + _) } def solve(){ val n = getInt() val a = Array.fill(n)(getStr()) println(a.map(mapToInt).min) } } // TEMPLATE ------------------------ def main(args: Array[String]){ Solver.solve() } trait InputReader{ import java.io._ import java.util._ protected val stream = System.in private val reader = new BufferedReader(new InputStreamReader(stream)) private var tokenizer = new StringTokenizer(reader.readLine()) def getStr(): String = { while(!tokenizer.hasMoreTokens()) tokenizer = new StringTokenizer(reader.readLine()) tokenizer.nextToken() } def getInt(): Int = getStr().toInt def getLong(): Long = getStr().toLong def getDouble(): Double = getStr().toDouble } }