#include <bits/stdc++.h>
using namespace std;
long long n, m, l, r;
vector<long long> A[200001];
set<pair<int, int> > se;
void add(long long y) {
  for (auto b : A[y]) se.insert({b, y});
}
void del(long long y) {
  for (auto b : A[y]) se.erase({b, y});
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cin >> n >> m >> l >> r;
  for (long long i = 1; i <= 200000; ++i)
    for (long long j = i; j <= 200000; j += i)
      if (j <= 200000) A[j].push_back(i);
  long long L = m + 1;
  long long R = m;
  for (long long x = 1; x <= n; ++x) {
    long long L_ = (l + x - 1) / x;
    long long R_ = min(m, r / x);
    if (L_ > R_) goto L1;
    while (L > L_) add(--L);
    while (R > R_) del(R--);
    for (long long a : A[x]) {
      auto it = se.upper_bound({a + 1, 0});
      if (it != se.end()) {
        long long b = it->first;
        long long y = it->second;
        if (x * b <= n * a) {
          cout << x << " " << y << " " << x * b / a << " " << y * a / b;
          goto L2;
        }
      } else
        goto L1;
    }
  L1:
    cout << -1;
  L2:
    cout << "\n";
  }
  return 0;
}
