#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll L, R;
vector <ll> weights;
void read() {
cin >> L >> R;
}
void precompute() {
weights.push_back(1);
weights.push_back(2);
while (weights.back() <= 1e18) {
int sz = weights.size();
weights.push_back(weights[sz-1] + weights[sz-2]);
if (weights.back() > 1e18) break;
}
}
void solve() {
for (ll i = L; i<=R; ++i) {
vector <ll> left, right;
ll x = i;
ll closest = weights[0];
while (x != 0) {
for (ll w : weights) {
if (abs(w - abs(x)) < abs(closest - abs(x))) {
closest = w;
}
}
if (x > 0) {
right.push_back(closest);
x -= closest;
} else {
left.push_back(closest);
x += closest;
}
}
left.push_back(i);
sort(left.rbegin(), left.rend());
sort(right.rbegin(), right.rend());
cout << left.size() + right.size() << "\n";
cout << left.size();
for (ll x : left) cout << " " << x;
cout << "\n" << right.size();
for (ll x : right) cout << " " << x;
cout << "\n";
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
read();
precompute();
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwpsbCBMLCBSOwp2ZWN0b3IgPGxsPiB3ZWlnaHRzOwp2b2lkIHJlYWQoKSB7CiAgICBjaW4gPj4gTCA+PiBSOwp9CnZvaWQgcHJlY29tcHV0ZSgpIHsKICAgIHdlaWdodHMucHVzaF9iYWNrKDEpOwogICAgd2VpZ2h0cy5wdXNoX2JhY2soMik7CiAgICB3aGlsZSAod2VpZ2h0cy5iYWNrKCkgPD0gMWUxOCkgewogICAgICAgIGludCBzeiA9IHdlaWdodHMuc2l6ZSgpOwogICAgICAgIHdlaWdodHMucHVzaF9iYWNrKHdlaWdodHNbc3otMV0gKyB3ZWlnaHRzW3N6LTJdKTsKICAgICAgICBpZiAod2VpZ2h0cy5iYWNrKCkgPiAxZTE4KSBicmVhazsKICAgIH0KfQp2b2lkIHNvbHZlKCkgewogICAgZm9yIChsbCBpID0gTDsgaTw9UjsgKytpKSB7CiAgICAgICAgdmVjdG9yIDxsbD4gbGVmdCwgcmlnaHQ7CgogICAgICAgIGxsIHggPSBpOwogICAgICAgIGxsIGNsb3Nlc3QgPSB3ZWlnaHRzWzBdOwogICAgICAgIHdoaWxlICh4ICE9IDApIHsKICAgICAgICAgICAgZm9yIChsbCB3IDogd2VpZ2h0cykgewogICAgICAgICAgICAgICAgaWYgKGFicyh3IC0gYWJzKHgpKSA8IGFicyhjbG9zZXN0IC0gYWJzKHgpKSkgewogICAgICAgICAgICAgICAgICAgIGNsb3Nlc3QgPSB3OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh4ID4gMCkgewogICAgICAgICAgICAgICAgcmlnaHQucHVzaF9iYWNrKGNsb3Nlc3QpOwogICAgICAgICAgICAgICAgeCAtPSBjbG9zZXN0OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbGVmdC5wdXNoX2JhY2soY2xvc2VzdCk7CiAgICAgICAgICAgICAgICB4ICs9IGNsb3Nlc3Q7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGxlZnQucHVzaF9iYWNrKGkpOwogICAgICAgIHNvcnQobGVmdC5yYmVnaW4oKSwgbGVmdC5yZW5kKCkpOwogICAgICAgIHNvcnQocmlnaHQucmJlZ2luKCksIHJpZ2h0LnJlbmQoKSk7CgogICAgICAgIGNvdXQgPDwgbGVmdC5zaXplKCkgKyByaWdodC5zaXplKCkgPDwgIlxuIjsKCiAgICAgICAgY291dCA8PCBsZWZ0LnNpemUoKTsKICAgICAgICBmb3IgKGxsIHggOiBsZWZ0KSBjb3V0IDw8ICIgIiA8PCB4OwogICAgICAgIGNvdXQgPDwgIlxuIiA8PCByaWdodC5zaXplKCk7CiAgICAgICAgZm9yIChsbCB4IDogcmlnaHQpIGNvdXQgPDwgIiAiIDw8IHg7CiAgICAgICAgY291dCA8PCAiXG4iOwogICAgfQp9CmludCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKCiAgICByZWFkKCk7CiAgICBwcmVjb21wdXRlKCk7CiAgICBzb2x2ZSgpOwoKICAgIHJldHVybiAwOwp9Cg==