#include <bits/stdc++.h>
const long long inf = 9223372036854775807ll;
const int iinf = 2147483647;
const int limit = 1048576;
using namespace std;
bool sync_with_stdio(bool sync = false);
int main() {
  long long n;
  scanf("%lld", &n);
  vector<long long> A(n + 1, 0), B(n + 1, 0);
  long long sum;
  for (int i = (int)1; i < (int)n + 1; i++) {
    scanf("%lld", &A[i]);
    sum += A[i];
  }
  for (int i = (int)1; i < (int)n + 1; i++) {
    scanf("%lld", &B[i]);
    sum -= B[i];
  }
  bool swapped = false;
  if (sum > 0) {
    swap(A, B);
    swapped = true;
  }
  vector<long long> diffs_to_ind(n + 1, -1);
  vector<long long> paired_ind(n + 1);
  long long j = 0, pref_A = 0, pref_B = 0;
  for (int i = (int)0; i < (int)n + 1; i++) {
    pref_A += A[i];
    while (j < n && pref_B + B[j + 1] <= pref_A) {
      pref_B += B[j + 1];
      j++;
    }
    paired_ind[i] = j;
    if (diffs_to_ind[pref_A - pref_B] != -1) {
      long long A_beg = diffs_to_ind[pref_A - pref_B],
                B_beg = paired_ind[A_beg];
      if (swapped) {
        printf("%lld\n", j - B_beg);
        for (int k = (int)B_beg + 1; k < (int)j + 1; k++) printf("%d ", k);
        printf("\n");
        printf("%lld\n", i - A_beg);
        for (int k = (int)A_beg + 1; k < (int)i + 1; k++) printf("%d ", k);
        printf("\n");
        return 0;
      }
      printf("%lld\n", i - A_beg);
      for (int k = (int)A_beg + 1; k < (int)i + 1; k++) printf("%d ", k);
      printf("\n");
      printf("%lld\n", j - B_beg);
      for (int k = (int)B_beg + 1; k < (int)j + 1; k++) printf("%d ", k);
      printf("\n");
      return 0;
    }
    diffs_to_ind[pref_A - pref_B] = i;
  }
  return 0;
}
