func main() if(dbg) var ss: [][]char :: |["ABCDEFGHIJKLMNOPQRSTUVWXZABCDEFGHIJKLMNPQRSTVWXYZ"] ~ |["BCDEFGHIJKLMNOPQSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZ"] ~ |["ABCDEFHJKLMNOPQRSTUWXYZABCDFGHIJKLMOPQRSTUVWXYZ"] ~ |["ABCDEFGHIJKLMNOPQRSUVXYZABCDEFGHIJKLMNPQRSTUVWXYZ"] ~ |["ABCDEFGHJKLMOPQRSUVWXYZABCDFHIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQTUVWXYZ"] ~ |["ABCDEFGHIJKLMOPQRSTUVWXYZ"] ~ |["BCDEFGHIJKLMOPQRSTUVWXYZABCEFGHIJKLMNOPQRSTUVWXYZ"] ~ |["ABCDEFGHIJKLNOPQRSTUVWXYZ."] ~ |["ABCDEFGHIJKLMNOPQRSTUVWXZABCDEFGHIJKLMNPQRSTVWXYZABCDEFGHIJKLMNOPQSTUVWXYZ"] ~ |["ABCDEFGHIJKLMNOPQRSUVWXYZBCDEFGHIJKLMNOPQRTUVWXYZABCDEFGHIJLMNOPQRSTUVWXYZ"] ~ |["ABCDEFGHJKLMNOPQRTUVWXYZ"] ~ |["ABCDEFGHIJKLMNOPQRSUVWXYZABCDEFGHIJKLMNPQRSTUVWXYZ"] ~ |["ABCDEGHJKLMOPQRSTUVWXYZABCEFGHIJKLMNOPQRSTUVWXYZ"] ~ |["ABCDEFGHIJKLMNOPQRSUVWXYZABCDEFGIJKLMNOPQRSTUVWXYZABCDFGHIJKLMNOPQRSTUVWXYZ"] ~ |["ABCDEGHIJKLMNOPQRSTUVWXYZBDEFGHIJKLMNOPQRSUVWXYZABCDEFGHIJKLMNPQSTUVWXYZABCDEFGHJKLMNOPQRSTUVWXYZBCDEFGHIJKMNOPQRSTUVWXYZ"] ~ |["ABCDEFGHIJKLMNPQRSTUVWXYZABCDEGHIJKLMNOPQRSTUVWXYZ"] ~ |["ABCDEFGHIJKLMOPQRSTUVWXYZ,"] ~ |["ABCDEFGHIJKLNPQRSTUVWXYZABCEFGHIJKLMNOPQRSTVWXYZABCDEFGHIJKMNPQRSTUVWXYZ"] ~ |["ABCDEFGHIJKLNOPQRSTUVWXYZ."] for _(0, ^ss - 1) var s: []char :: ss[_] var offset: int :: 0 for i(0, ^s - 1) switch c(s[i]) case 'A' to 'Z' while('A'.offset(offset % 26) <> c) do cui@print(['A'.offset(offset % 26)]) do offset :+ 1 end while do offset :+ 1 default do cui@print([s[i]]) end switch end for do cui@print(" ") end for end if var _: [][]char :: cui@input().split(" ") var N: int :: _[0].toInt(&) var M: int :: _[1].toInt(&) var ans: int :: 1 if(N >= M) do ans :: 0 else for n(1, N) do ans :* n do ans :% M end for end if do cui@print("\{ans}\n") end func