def reader(inFile):
    return tuple(inFile.getInts())

def solver((N, p)):
    wins = [(((p - 1) >> i) & 1) == 0 for i in xrange(N)][::-1]
    a1 = 0
    for win in wins:
        if not win:
            a1 += 1
        else:
            break
    a1 = ((1 << (a1 + 1)) - 2) if (a1 < N) else ((1 << N) - 1)
    a2 = 0
    for win in wins:
        if win:
            a2 += 1
        else:
            break
    if (a2 == len([win for win in wins if win])):
        a2 -= 1
    a2 = (1 << N) - (1 << (a2 + 1))
    return "%d %d" % (a1, a2)

if __name__ == "__main__":
    from GCJ import GCJ
    GCJ(reader, solver, "/Users/lpebody/gcj/2013_2/b/", "b").run()
