let solve n m p q = let rec solve' left_leaf cur_mon sum_mon = if left_leaf <= 0 then sum_mon else ( let left_leaf' = if cur_mon >= p && cur_mon < p + q then left_leaf - m * 2 else left_leaf - m and cur_mon' = cur_mon mod 12 + 1 in solve' left_leaf' cur_mon' (sum_mon + 1) ) in solve' n 1 0 let () = let n, m, p, q = read_line () |> fun l -> Scanf.sscanf l "%d %d %d %d" (fun n m p q -> (n, m, p, q)) in solve n m p q |> string_of_int |> print_endline