#include <bits/stdc++.h>
const int maxn = 1e6 + 222;
using ll = long long;
int n;
ll a[maxn], b[maxn];
std::vector<std::pair<int, int> > v[maxn];
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) scanf("%lld", &a[i]);
  for (int i = 1; i <= n; ++i) scanf("%lld", &b[i]);
  for (int i = 1; i <= n; ++i) a[i] += a[i - 1], b[i] += b[i - 1];
  int flag = 0;
  if (b[n] < a[n]) {
    flag = 1;
    std::swap(a, b);
  }
  int pre = n;
  for (int i = n; i >= 0; i--) {
    while (b[pre] > a[i]) pre--;
    int w = a[i] - b[pre];
    v[w].push_back({i, pre});
  }
  for (int i = 0; i < n; ++i) {
    if (v[i].size() > 1) {
      int l1 = v[i][0].first, r1 = v[i][1].first;
      int l2 = v[i][0].second, r2 = v[i][1].second;
      if (l1 > r1) std::swap(l1, r1);
      if (l2 > r2) std::swap(l2, r2);
      if (flag) {
        std::swap(l1, l2);
        std::swap(r1, r2);
      }
      printf("%d\n", r1 - l1);
      for (int i = l1 + 1; i <= r1; ++i) printf("%d ", i);
      printf("\n%d\n", r2 - l2);
      for (int i = l2 + 1; i <= r2; ++i) printf("%d ", i);
      return 0;
    }
  }
  return 0;
}
