using System; using System.IO; using System.Collections.Generic; namespace No740 { public class Program { void Solve(StreamScanner ss, StreamWriter sw) { //--------------------------------- var N = ss.Next(int.Parse); var M = ss.Next(int.Parse); var P = ss.Next(int.Parse); var Q = ss.Next(int.Parse); var fallen = 0; for (var i = 1; i <= 1145140; i++) { fallen += M; var month = (i - 1) % 12 + 1; if (P <= month && month < P + Q) fallen += M; if (fallen < N) continue; Console.WriteLine(i); return; } //--------------------------------- } static void Main() { var ss = new StreamScanner(new StreamReader(Console.OpenStandardInput())); var sw = new StreamWriter(Console.OpenStandardOutput()) {AutoFlush = false}; new Program().Solve(ss, sw); sw.Flush(); } static readonly Func String = s => s; } public class StreamScanner { static readonly char[] Sep = {' '}; readonly Queue buffer = new Queue(); readonly TextReader textReader; public StreamScanner(TextReader textReader) { this.textReader = textReader; } public T Next(Func parser) { if (buffer.Count != 0) return parser(buffer.Dequeue()); var nextStrings = textReader.ReadLine().Split(Sep, StringSplitOptions.RemoveEmptyEntries); foreach (var nextString in nextStrings) buffer.Enqueue(nextString); return Next(parser); } } }