#include <bits/stdc++.h>
using namespace std;
const int MAX = 100000;
const int INF = 1000000001;
int A[MAX];
int B[MAX];
vector<int> res;
int n;
vector<int> solve() {
  int t[n];
  t[0] = 0;
  for (int i = 0; i < n - 1; ++i) t[i + 1] = t[i] + A[i] - B[i];
  int m = INF;
  for (int i = 0; i < n; ++i) m = min(m, t[i]);
  vector<int> ret;
  for (int i = 0; i < n; ++i)
    if (t[i] == m) ret.push_back(i);
  return ret;
}
vector<int> solve2() {
  int t[n];
  t[n - 1] = 0;
  for (int i = n - 2; i >= 0; --i) t[i] = t[i + 1] + A[i + 1] - B[i];
  int m = INF;
  for (int i = 0; i < n; ++i) m = min(m, t[i]);
  vector<int> ret;
  for (int i = 0; i < n; ++i)
    if (t[i] == m) ret.push_back(i);
  return ret;
}
int main(int argc, char *argv[]) {
  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);
  vector<int> v1 = solve();
  vector<int> v2 = solve2();
  v1.insert(v1.end(), (v2).begin(), (v2).end());
  sort((v1).begin(), (v1).end());
  v1.erase(unique((v1).begin(), (v1).end()), v1.end());
  printf("%d\n", v1.size());
  for (__typeof((v1).begin()) it = (v1).begin(); it != (v1).end(); ++it)
    printf("%d ", (*it) + 1);
  printf("\n");
  return 0;
}
