import java.io.*; import java.util.*; import java.math.*; public class mortgage { StringTokenizer st = new StringTokenizer(""); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); public static void main(String[] args) throws Exception { mortgage inst = new mortgage(); while(inst.run()) {} } public boolean run() throws Exception { double debth = nextDouble(); int monthPayment = nextInt(); int monthCount = nextInt(); double interest = nextDouble(); if(debth==0&&monthPayment==0&&monthCount==0&&interest==0) return false; interest /= 1200; monthCount *=12; double debth2 = debth; boolean success= false; int monthCount2 = monthCount; /*while(monthCount>0) { //System.out.println(debth); debth += debth*(interest); debth -= monthPayment; monthCount--; if(debth<=0) { success = true; break; } }*/ interest += 1; //double bigInt = interest; double bigInt = BigDecimal.valueOf(interest).pow(monthCount2-1).doubleValue(); /*for(int i = 1; i < monthCount2-1; i++) { bigInt*= interest; }*/ double res = ( bigInt *interest * debth2) - (bigInt * monthPayment) - (monthCount2 - 1) * monthPayment; /*if(success) System.out.print("YES - "); else System.out.print("NO - ");*/ if(res>0) System.out.println("NO"); else System.out.println("YES"); return true; } public String nextToken() throws Exception { while(!st.hasMoreTokens()) st = new StringTokenizer(br.readLine()); return st.nextToken(); } public int nextInt() throws Exception { return Integer.parseInt(nextToken()); } public double nextDouble() throws Exception { return Double.parseDouble(nextToken()); } }