#include <bits/stdc++.h>
using namespace std;
long long a[100010], b[100010], csum[100010], n, adjustment1, adjustment2,
    tt[100010];
bool ok[100010];
set<pair<long long, long long> > s1, s2;
void func(bool r, long long a[]) {
  adjustment1 = 0, adjustment2 = 0;
  for (int i = 1; i <= n; i++)
    csum[i] = csum[i - 1] + a[i], adjustment1 += a[i];
  for (int i = 1; i <= n; i++) s2.insert(make_pair(csum[i], i));
  for (int i = 1; i <= n; i++) {
    bool flag = 1;
    if (!s1.empty() && s1.begin()->first + adjustment1 < 0) flag = 0;
    if (!s2.empty() && s2.begin()->first - adjustment2 < 0) flag = 0;
    int ind = i;
    if (r) ind = n - i + 1;
    ok[ind] = max(ok[ind], flag);
    adjustment1 -= a[i];
    s1.insert(make_pair(csum[i], i));
    adjustment2 += a[i];
    s2.erase(make_pair(csum[i], i));
  }
  s1.clear();
  s2.clear();
}
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) cin >> a[i];
  for (int i = 1; i <= n; i++) {
    cin >> b[i];
    tt[i] = a[i] - b[i];
  }
  func(0, tt);
  for (int i = 1, j = n; j > 1; i++, j--) tt[i] = a[j] - b[j - 1];
  tt[n] = a[1] - b[n];
  func(1, tt);
  int cnt = 0;
  for (int i = 1; i <= n; i++) cnt += ok[i];
  cout << cnt << endl;
  for (int i = 1; i <= n; i++) {
    if (ok[i]) cout << i << " ";
  }
  cout << endl;
}
