#include <bits/stdc++.h>
const int N = 200005, inf = 5e7;
int n, m;
std::vector<int> d[N];
long long L, R;
template <class I>
inline I Min(I p, I q) {
  return p < q ? p : q;
}
int main() {
  scanf("%d%d%lld%lld", &n, &m, &L, &R);
  register int i, j;
  for (i = 1; i <= n; ++i)
    for (j = i; j <= n; j += i) d[j].push_back(i);
  for (i = 1; i <= n; ++i) {
    register long long li = (L - 1) / i + 1, ri = R / i;
    register int fl = 0;
    li = (li > 1 ? li : 1), ri = (ri > m ? m : ri);
    if (li > ri) {
      puts("-1");
      continue;
    }
    --li;
    for (const int &j : d[i]) {
      for (register int a = i / j, lim = (n / a < m ? n / a : m), l = j + 1, r;
           l <= lim; l = r + 1) {
        if ((!(li / l)) && (!(ri / l))) break;
        if (li / l + 1 <= ri / l) {
          fl = 1, printf("%d %lld %lld %lld\n", i, (li / l + 1ll) * l,
                         (0ll + a) * l, (li / l + 1ll) * j);
          break;
        }
        r = Min(0ll | lim,
                Min((li / l) ? li / (li / l) : 0ll | lim, ri / (ri / l)));
      }
      if (fl) break;
    }
    if (!fl) puts("-1");
  }
  return 0;
}
