#include <algorithm>
#include <cstdio>
#include <vector>
#include <queue>
using namespace std;
int a[250000], b[250000];
int main() {
int n;
scanf("%d", &n);
for (int i = 0; i < n; i ++) scanf("%d", &a[i]);
for (int i = 0; i < n; i ++) scanf("%d", &b[i]);
long long limit = 0, sum = 0;
priority_queue< pair<int, int> > Q;
for (int i = 0; i < n; i ++) {
limit += a[i];
if (sum + b[i] <= limit) {
sum += b[i];
Q.push(make_pair(b[i], i));
} else if (! Q.empty() && Q.top().first > b[i]) {
sum -= Q.top().first;
Q.pop();
sum += b[i];
Q.push(make_pair(b[i], i));
}
}
vector<int> ans;
while (! Q.empty()) {
ans.push_back(Q.top().second);
Q.pop();
}
sort(ans.begin(), ans.end());
printf("%d\n", (int)ans.size());
for (int i = 0; i < ans.size(); i ++)
if (i < ans.size() - 1) printf("%d ", ans[i] + 1); else printf("%d\n", ans[i] + 1);
return 0;
}
CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxjc3RkaW8+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxxdWV1ZT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgYVsyNTAwMDBdLCBiWzI1MDAwMF07CgppbnQgbWFpbigpIHsKCWludCBuOwoJc2NhbmYoIiVkIiwgJm4pOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpICsrKSBzY2FuZigiJWQiLCAmYVtpXSk7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkgKyspIHNjYW5mKCIlZCIsICZiW2ldKTsKCQoJbG9uZyBsb25nIGxpbWl0ID0gMCwgc3VtID0gMDsKCXByaW9yaXR5X3F1ZXVlPCBwYWlyPGludCwgaW50PiA+IFE7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkgKyspIHsKCQlsaW1pdCArPSBhW2ldOwoJCWlmIChzdW0gKyBiW2ldIDw9IGxpbWl0KSB7CgkJCXN1bSArPSBiW2ldOwoJCQlRLnB1c2gobWFrZV9wYWlyKGJbaV0sIGkpKTsKCQl9IGVsc2UgaWYgKCEgUS5lbXB0eSgpICYmIFEudG9wKCkuZmlyc3QgPiBiW2ldKSB7CgkJCXN1bSAtPSBRLnRvcCgpLmZpcnN0OwoJCQlRLnBvcCgpOwoJCQlzdW0gKz0gYltpXTsKCQkJUS5wdXNoKG1ha2VfcGFpcihiW2ldLCBpKSk7CgkJfQoJfQoJCgl2ZWN0b3I8aW50PiBhbnM7Cgl3aGlsZSAoISBRLmVtcHR5KCkpIHsKCQlhbnMucHVzaF9iYWNrKFEudG9wKCkuc2Vjb25kKTsKCQlRLnBvcCgpOwoJfQoJc29ydChhbnMuYmVnaW4oKSwgYW5zLmVuZCgpKTsKCXByaW50ZigiJWRcbiIsIChpbnQpYW5zLnNpemUoKSk7Cglmb3IgKGludCBpID0gMDsgaSA8IGFucy5zaXplKCk7IGkgKyspCgkJaWYgKGkgPCBhbnMuc2l6ZSgpIC0gMSkgcHJpbnRmKCIlZCAiLCBhbnNbaV0gKyAxKTsgZWxzZSBwcmludGYoIiVkXG4iLCBhbnNbaV0gKyAxKTsKCQoJcmV0dXJuIDA7Cn0K