#include <bits/stdc++.h>
using namespace std;
long long n, m, lo, hi;
vector<int> divisors[222222];
bool doit(long long clo, long long chi, long long dlo, long long dhi,
          long long cdlo, long long cdhi, int &c, int &d) {
  if (dhi && clo * dhi < cdlo) clo = (cdlo + dhi - 1) / dhi;
  if (chi && dlo * chi < cdlo) dlo = (cdlo + chi - 1) / chi;
  if (clo && clo * dhi > cdhi) dhi = cdhi / clo;
  if (dlo && dlo * chi > cdhi) chi = cdhi / dlo;
  if (cdlo < clo * dlo) cdlo = clo * dlo;
  if (cdhi > chi * dhi) cdhi = chi * dhi;
  if (chi < clo) return false;
  if (dhi < dlo) return false;
  if (cdhi < cdlo) return false;
  if (dhi - dlo < chi - clo) {
    for (d = dlo; d <= dhi; d++) {
      for (c = (cdlo + d - 1) / d; c <= cdhi / d; c++) {
        return true;
      }
    }
  } else {
    for (c = clo; c <= chi; c++) {
      for (d = (cdlo + c - 1) / c; d <= cdhi / c; d++) {
        return true;
      }
    }
  }
  return false;
}
int main() {
  for (int i = 1; i < 200001; i++) {
    for (int j = i; j < 200001; j += i) {
      divisors[j].push_back(i);
    }
  }
  scanf("%lli %lli %lli %lli", &n, &m, &lo, &hi);
  for (int ab = 0; ab < (n + 1); ab++)
    if (ab) {
      long before = __builtin_ia32_rdtsc();
      for (int a : divisors[ab]) {
        int b = ab / a;
        int c, d;
        if (doit(b + 1, n / a, 1, m, (lo + ab - 1) / ab,
                 std::min<long long>(m, hi / ab), c, d)) {
          printf("%i %i %i %i\n", a * b, c * d, a * c, b * d);
          goto didit;
        }
      }
      printf("-1\n");
    didit:;
    }
}
