#include <bits/stdc++.h>
using namespace std;
#define MAXN 250005
long long n;
struct h
{
long long a, id;
friend bool operator<(h a, h b)
{
return a.id < b.id;
}
};
h a[MAXN], b[MAXN];
priority_queue<h, vector<h>, less<h>> q;
bool vis[MAXN];
int main()
{
cin >> n;
for (long long i = 1; i <= n; i++)
{
cin >> a[i].a;
a[i].id = i;
}
for (long long i = 1; i <= n; i++)
{
cin >> b[i].a;
b[i].id = i;
}
long long res = 0;
long long k = 0;
for (long long i = 1; i <= n; i++)
{
k += a[i].a;
if (k >= b[i].a)
{
k -= b[i].a;
vis[i] = 1;
q.push(b[i]);
res++;
}
else
{
if (!q.empty() && q.top().a > b[i].a)
{
vis[i] = 1;
vis[q.top().id] = 0;
k += q.top().a - b[i].a;
q.pop();
q.push(b[i]);
}
}
}
int ans = 0;
cout << res << endl;
for (long long i = 1; i <= n; i++)
{
if(vis[i])
cout << i << ' ';
}
return 0;
}