import os, sys
import math, decimal, queue, heapq, bisect, itertools, functools, collections, string
from bisect import bisect, bisect_left
from collections import defaultdict, OrderedDict, deque, Counter
from functools import cmp_to_key, lru_cache, reduce
from heapq import heapify, heappush, heappushpop, heappop, heapreplace, nlargest, nsmallest
from itertools import accumulate, chain, combinations, combinations_with_replacement, compress, count, cycle, dropwhile, filterfalse, groupby, islice, permutations, product, repeat, starmap, takewhile, tee, zip_longest
from math import gcd, factorial, isqrt, comb, perm, prod, inf
from queue import Queue, PriorityQueue, LifoQueue
from string import ascii_letters, ascii_lowercase, ascii_uppercase, digits, hexdigits, octdigits

az, AZ, mod = ascii_lowercase, ascii_uppercase, 1_000_000_007


def solve():
    def run(W):
        A, B, C, D = W
        days = (31 - A) + B
        if days >= C:
            print(1)
        elif days >= D:
            print(2)
        else:
            print(3)
    run(W)


if __name__ == '__main__':
    LOCAL = sys.argv[0] if '4a' in sys.argv[0] else None

    P = lambda *p: [print(i, end='  ') for i in p] if LOCAL else None
    PI = lambda *p: print(' '.join(map(str, p))) or None
    PII = lambda X: [PI(*row) for row in X]

    sys.stdin = open(os.path.join(os.getcwd(), 'a1.txt'), 'r') if LOCAL else sys.stdin
    I = lambda: [int(a) for l in sys.stdin for a in l.strip().split()]
    S = lambda: [a for l in sys.stdin for a in l.strip().split()]
    IM = lambda: [[int(a) for a in l.split()] for l in sys.stdin]
    SM = lambda: [[a for a in l.split()] for l in sys.stdin]
    W = I()
    # P(W)
    solve()