fun readLargeInt () = valOf (TextIO.scanStream (LargeInt.scan StringCvt.DEC) TextIO.stdIn) val () = let val a = readLargeInt () val b = readLargeInt () val c = readLargeInt () val d = readLargeInt () val ans = (a mod d) * (b mod d) * (c mod d) mod d in print (LargeInt.toString ans ^ "\n") end