fun readInt () = valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn) fun readStr () = let fun scan reader stream = SOME (StringCvt.splitl (not o Char.isSpace) reader (StringCvt.skipWS reader stream)) in valOf (TextIO.scanStream scan TextIO.stdIn) end fun intPow (x, y) = let fun loop n = if n = 0 then 1 else x * loop (n - 1) in loop y end val () = let val l = readInt () val n = readInt () val s_s = List.tabulate (n, fn _ => readStr ()) val ans = List.foldl (fn (s, acc) => acc + intPow(2, l - String.size s)) 0 s_s in print (Int.toString ans ^ "\n") end