rt
#include <bits/stdc++.h>
#define int unsigned long long
#define lowbit(x) ((x)&(-x))
using namespace std;
int l, r, s, a[114], b[114], e;
signed main() {
cin >> l >> r;
while (l != r) {
a[++e] = l;
for (int i = ((l == 0) ? (1ll << 62) : (lowbit(l)));; i >>= 1)
if (l + i <= r) {
l += i;
b[e] = l;
break;
}
}
cout << e << "\n";
for (int i = 1; i <= e; i++) cout << a[i] << " " << b[i] << "\n";
return 0;
}