def compress(ps):
    ps, depth = adjust_to_pow2(ps)
    t = build_segtree(ps)
    return [calc_partial_sum(t, d) % 10 for d in range(depth + 1)]


def adjust_to_pow2(ps):
    n = len(ps)
    depth = len(bin(n - 1)) - 2
    adjusted_length = 1 << depth
    return ps + [0] * (adjusted_length - n), depth


def build_segtree(ps):
    n = len(ps)
    segtree = [0] * n + ps
    for i in range(n - 1, 0, -1):
        segtree[i] = segtree[i << 1] + segtree[(i << 1) | 1]
    return segtree

def calc_partial_sum(t, d):
    return sum(t[i] for i in range(1 << d, 2 << d, 2))


def detect_dif(correct, wrong):
    dif = correct[0] - wrong[0]
    idx = 0
    depth = len(correct) - 1
    for c, w in zip(correct[1:], wrong[1:]):
        depth -= 1
        if c == w:
            idx += 1 << depth
    return idx, dif


def solve(qs, correct):
    wrong = compress(qs)
    idx, dif = detect_dif(correct, wrong)
    return qs[idx], (qs[idx] + dif) % 10

if __name__ == '__main__':
    correct = [7, 9, 1, 9, 6, 8, 1, 5, 9, 8, 1, 4, 9, 4, 1, 1, 6, 1, 1]
    qi = input()
    qi = qi[0] + qi[2:]
    qs = list(map(int, qi))
    print(*solve(qs, correct))