package Yukicoder fun main(args: Array) { fun readLineLongArray(): List { val str = readLine() as String val arrStr = str.split(" ") val ret = arrStr.map { it.toLong() } return ret } fun readLineLong(): Long { val str = readLine() as String return str.toLong() } fun readLineInt(): Int { val str = readLine() as String return str.toInt() } fun readLineIntArray() : List { val str = readLine() as String val arrStr = str.split(" ") val ret = arrStr.map { it.toInt() } return ret } fun readLineDoubleArray(): List { val str = readLine() as String val arrStr = str.split(" ") val ret = arrStr.map { it.toDouble() } return ret } fun readLineDouble() : Double { val str = readLine() as String return str.toDouble() } // fun readLineStringArray(): List { // val str = readLine() as String // val arrStr = str.split(" ") // return arrStr // } val input = readLineLongArray() val h = input[0] val w = input[1] val n = input[2] val k = input[3] % n val num = ((h % n) * (w % n)) % n if (num == k) { println("YES") } else { println("NO") } }