f=lambda x,y:x<y and f(x|x+1,y&y-1)or(x,y)
for (x,y) in (2,3), (3,2), (8,23), (42,81), (38,41), (16,73), (17,17):
print '%2d, %2d -> %2d, %2d' % ( (x,y) + f(x,y) )
Zj1sYW1iZGEgeCx5Ong8eSBhbmQgZih4fHgrMSx5JnktMSlvcih4LHkpCgpmb3IgKHgseSkgaW4gKDIsMyksICgzLDIpLCAoOCwyMyksICg0Miw4MSksICgzOCw0MSksICgxNiw3MyksICgxNywxNyk6CglwcmludCAnJTJkLCAlMmQgLT4gJTJkLCAlMmQnICUgKCAoeCx5KSArIGYoeCx5KSAp
KDc1LCA0MSksICg5MiwgMzMpLCAoNzMsIDUzKSwgKDg0LCAzNiksICgyNiwgNDQpLCAoMjAsIDYxKSwgKDEwLCA5OCksICg5NCwgNDEpLCAoNTMsIDYpLCAoMTIsIDI1KQ==
(75, 41), (92, 33), (73, 53), (84, 36), (26, 44), (20, 61), (10, 98), (94, 41), (53, 6), (12, 25)
2, 3 -> 3, 2
3, 2 -> 3, 2
8, 23 -> 31, 0
42, 81 -> 63, 0
38, 41 -> 47, 32
16, 73 -> 23, 0
17, 17 -> 17, 17