#include <bits/stdc++.h>
using namespace std;
const int maxn = 100010;
struct node {
  int a, b;
  int tag;
} p[maxn];
vector<int> ans;
int n;
bool cmp(node a, node b) { return a.a > b.a; }
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &p[i].a);
    p[i].tag = i;
  }
  for (int i = 1; i <= n; i++) {
    scanf("%d", &p[i].b);
  }
  sort(p + 1, p + n + 1, cmp);
  printf("%d\n", n / 2 + 1);
  if (n & 1) {
    ans.push_back(p[1].tag);
    for (int i = 2; i <= n; i += 2) {
      if (p[i].b > p[i + 1].b)
        ans.push_back(p[i].tag);
      else
        ans.push_back(p[i + 1].tag);
    }
  } else {
    ans.push_back(p[1].tag);
    ans.push_back(p[2].tag);
    for (int i = 3; i <= n; i += 2) {
      if (p[i].b > p[i + 1].b)
        ans.push_back(p[i].tag);
      else
        ans.push_back(p[i + 1].tag);
    }
  }
  int len = ans.size();
  for (int i = 0; i < len; i++) {
    if (i != len - 1)
      printf("%d ", ans[i]);
    else
      printf("%d", ans[i]);
  }
  return 0;
}
