
#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;
}
