import java.io.*; import java.util.*; import java.util.stream.*; class Process { private int A; private int B; private int C; private int D; Process(int A, int B, int C, int D) { this.A = A; this.B = B; this.C = C; this.D = D; } long getResult() { return (((((long)A * B) % D) * C) % D); } } public class Main { public static void main(String[] args) throws IOException { var bufferedReader = new BufferedReader(new InputStreamReader(System.in)); var printWriter = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out))); // 入力 int[] input = Stream.of(bufferedReader.readLine().trim().split("[ ]+")).mapToInt(Integer::parseInt).toArray(); // 処理および出力 printWriter.println((new Process(input[0], input[1], input[2], input[3])).getResult()); bufferedReader.close(); printWriter.close(); } }