#include<bits/stdc++.h>
#define gcd __gcd
#define pii pair<int,int>
#define mkp make_pair
#define pb push_back
#define getcx getchar
#define pc putchar
#define vi vector <int>
#define get(x) scanf("%d",&x)
#define getl(x) scanf("%lld",&x)
#define print(x) printf("%d\n",x)
#define bitcount __builtin_popcount
#define printl(x) printf("%lld\n",x)
#define F first
#define S second
#define MX 1000005
using namespace std;
typedef long long ll;
int main()
{
int t, n, m, d, D;
cin >> t;
while(t--) {
cin >> n >> m >> d >> D;
if(n*d > m || n*D < m)
cout << "-1\n";
else {
bool done = false;
int ans = 0;
for(int i = 0; i <= n && !done; i++) {
for(int j = 1; j <= n; j++) {
cout << j << " " << (((j+i)<=n)?(j+i):((j+i)%n)) << "\n";
ans++;
if(ans == m) {
done = true;
break;
}
}
}
}
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBnY2QgX19nY2QKI2RlZmluZSBwaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIG1rcCBtYWtlX3BhaXIKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBnZXRjeCBnZXRjaGFyCiNkZWZpbmUgcGMgcHV0Y2hhcgojZGVmaW5lIHZpIHZlY3RvciA8aW50PgojZGVmaW5lIGdldCh4KSBzY2FuZigiJWQiLCZ4KQojZGVmaW5lIGdldGwoeCkgc2NhbmYoIiVsbGQiLCZ4KQojZGVmaW5lIHByaW50KHgpIHByaW50ZigiJWRcbiIseCkKI2RlZmluZSBiaXRjb3VudCBfX2J1aWx0aW5fcG9wY291bnQKI2RlZmluZSBwcmludGwoeCkgcHJpbnRmKCIlbGxkXG4iLHgpCiNkZWZpbmUgRiBmaXJzdAojZGVmaW5lIFMgc2Vjb25kCiNkZWZpbmUgTVggMTAwMDAwNQp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKIAppbnQgbWFpbigpCnsKICAgIGludCB0LCBuLCBtLCBkLCBEOwogICAgY2luID4+IHQ7CiAKICAgIHdoaWxlKHQtLSkgewogICAgICAgIGNpbiA+PiBuID4+IG0gPj4gZCA+PiBEOwogCiAKICAgICAgICBpZihuKmQgPiBtIHx8IG4qRCA8IG0pCiAgICAgICAgICAgIGNvdXQgPDwgIi0xXG4iOwogICAgICAgIGVsc2UgewogICAgICAgICAgICBib29sIGRvbmUgPSBmYWxzZTsKICAgICAgICAgICAgaW50IGFucyA9IDA7CiAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPD0gbiAmJiAhZG9uZTsgaSsrKSB7CiAgICAgICAgICAgICAgICBmb3IoaW50IGogPSAxOyBqIDw9IG47IGorKykgewogICAgICAgICAgICAgICAgICAgIGNvdXQgPDwgaiA8PCAiICIgPDwgKCgoaitpKTw9bik/KGoraSk6KChqK2kpJW4pKSA8PCAiXG4iOwogICAgICAgICAgICAgICAgICAgIGFucysrOwogICAgICAgICAgICAgICAgICAgIGlmKGFucyA9PSBtKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRvbmUgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAKICAgIHJldHVybiAwOwp9