#include <bits/stdc++.h>
using namespace std;
#define REP(i, a, b) for (int i = a; i <= b; i++)
#define FOR(i, n) for (int i = 0; i < n; i++)
#define foreach(it, ar) for ( typeof(ar.begin()) it = ar.begin(); it != ar.end(); it++ )
#define fill(ar, val) memset(ar, val, sizeof(ar))
#define PI 3.1415926535897932385
#define uint64 unsigned long long
#define Int long long
#define int64 long long
#define all(ar) ar.begin(), ar.end()
#define pb push_back
#define ff first
#define ss second
#define bit(n) (1<<(n))
#define Last(i) ( (i) & (-i) )
#define sq(x) ((x) * (x))
#define INF INT_MAX
#define mp make_pair
int main ( )
{
int t ;
scanf("%d",&t) ;
while( t-- )
{
int g [ 100 ][ 100 ] ;
FOR( i , 100) FOR( j , 100 )g[i][j] = 0 ;
int cnt1[ 100 ] = { 0 } ;
int cnt2 [ 100 ] = { 0 } ;
int n , m , d, D ;
scanf("%d%d%d%d",&n,&m,&d,&D) ;
set< pair<int,int> > s ;
FOR( i , n )
s.insert( mp(0,i) ) ;
FOR( i , n )
{
for( int j = 1 ; j <= d ; j ++ )
{
auto it = s.begin() ;
pair<int,int> tp = mp( it->ff + 1 , it->ss ) ;
g[ i ][ it->ss ] = 1 ;
cnt1[i] ++ ;
cnt2[it->ss] ++ ;
s.erase( it ) ;
s.insert( tp ) ;
//it->ff += 1 ;
}
}
int rem = m - n*d ;
for( int i = 0 ; i < n ; i ++ )
for( int j = 0 ; j < n ; j ++ )
{
if( g[i][j] == 0 && cnt1[i] < D && cnt2[j] < D && rem > 0 )
{
cnt1[i] ++ ;
g[i][j] = 1 ;
cnt2[j] ++ ;
rem -- ;
}
}
bool f = false ;
for( int i = 0 ; i < n ; i ++ )
{
if( cnt1[i] < d || cnt1[i] > D )
{ f = true ; break; }
if( cnt2[i] < d || cnt2[i] > D )
{ f = true ; break; }
}
if( f || (rem != 0) ) {cout<<-1<<'\n' ; continue ; }
for( int i = 0 ; i < n ; i ++ )
for( int j= 0 ; j < n ; j ++ )
if( g[i][j] == 1 )
cout<<i+1 << " " << j + 1 <<'\n' ;
}
}
CiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBSRVAoaSwgYSwgYikgZm9yIChpbnQgaSA9IGE7IGkgPD0gYjsgaSsrKQojZGVmaW5lIEZPUihpLCBuKSBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKI2RlZmluZSBmb3JlYWNoKGl0LCBhcikgZm9yICggdHlwZW9mKGFyLmJlZ2luKCkpIGl0ID0gYXIuYmVnaW4oKTsgaXQgIT0gYXIuZW5kKCk7IGl0KysgKQojZGVmaW5lIGZpbGwoYXIsIHZhbCkgbWVtc2V0KGFyLCB2YWwsIHNpemVvZihhcikpCiNkZWZpbmUgUEkgMy4xNDE1OTI2NTM1ODk3OTMyMzg1CiNkZWZpbmUgdWludDY0IHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIEludCBsb25nIGxvbmcKI2RlZmluZSBpbnQ2NCBsb25nIGxvbmcKI2RlZmluZSBhbGwoYXIpIGFyLmJlZ2luKCksIGFyLmVuZCgpCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgZmYgZmlyc3QKI2RlZmluZSBzcyBzZWNvbmQKI2RlZmluZSBiaXQobikgKDE8PChuKSkKI2RlZmluZSBMYXN0KGkpICggKGkpICYgKC1pKSApCiNkZWZpbmUgc3EoeCkgKCh4KSAqICh4KSkKI2RlZmluZSBJTkYgSU5UX01BWAojZGVmaW5lIG1wIG1ha2VfcGFpcgoKCgppbnQgbWFpbiAoICkKIHsKICAgICBpbnQgdCA7CiAgICAgc2NhbmYoIiVkIiwmdCkgOwogICAgIHdoaWxlKCAgdC0tICkKICAgICAgewogICAgICAgICAgIGludCBnIFsgMTAwIF1bIDEwMCBdICA7CiAgICAgICAgICAgRk9SKCBpICwgMTAwKSBGT1IoIGogLCAxMDAgKWdbaV1bal0gPSAwIDsKICAgICAgICAgICBpbnQgY250MVsgMTAwIF0gID0geyAwIH0gOwogICAgICAgICAgIGludCBjbnQyIFsgMTAwIF0gPSB7IDAgfSA7CgogICAgICAgICAgIGludCBuICwgbSAgLCBkLCAgIEQgIDsKICAgICAgICAgICBzY2FuZigiJWQlZCVkJWQiLCZuLCZtLCZkLCZEKSA7CgogICAgICAgICAgIHNldDwgcGFpcjxpbnQsaW50PiAgPiAgcyA7CgogICAgICAgICAgIEZPUiggaSAsIG4gKQogICAgICAgICAgICBzLmluc2VydCggbXAoMCxpKSApIDsKCiAgICAgICAgICAgRk9SKCBpICwgbiApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgIGZvciggaW50IGogPSAxIDsgaiA8PSBkIDsgaiArKyAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGF1dG8gaXQgPSBzLmJlZ2luKCkgIDsKICAgICAgICAgICAgICAgICAgICBwYWlyPGludCxpbnQ+ICB0cCA9IG1wKCAgaXQtPmZmICsgMSAsIGl0LT5zcyApIDsKCiAgICAgICAgICAgICAgICAgICAgZ1sgaSBdWyBpdC0+c3MgXSA9ICAxIDsKCiAgICAgICAgICAgICAgICAgICAgY250MVtpXSArKyA7CiAgICAgICAgICAgICAgICAgICAgY250MltpdC0+c3NdICsrIDsKCiAgICAgICAgICAgICAgICAgICAgcy5lcmFzZSggaXQgKSA7CiAgICAgICAgICAgICAgICAgICAgcy5pbnNlcnQoIHRwICkgOwoKICAgICAgICAgICAgICAgICAgICAvL2l0LT5mZiArPSAxIDsKCiAgICAgICAgICAgICAgICB9CgoKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaW50IHJlbSA9ICBtIC0gbipkIDsKCiAgICAgICAgICAgIGZvciggaW50IGkgPSAwIDsgaSA8IG4gOyBpICsrICkKICAgICAgICAgICAgIGZvciggaW50IGogPSAwIDsgaiA8IG4gOyBqICsrICkKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIGlmKCAgZ1tpXVtqXSA9PSAwICYmIGNudDFbaV0gPCBEICYmIGNudDJbal0gPCBEICYmIHJlbSA+IDAgICkKICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgIGNudDFbaV0gKysgOwogICAgICAgICAgICAgICAgICAgICAgZ1tpXVtqXSA9IDEgOwogICAgICAgICAgICAgICAgICAgICAgY250MltqXSArKyA7CiAgICAgICAgICAgICAgICAgICAgICByZW0gLS0gOwoKICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgfQoKICAgICAgICAgYm9vbCBmID0gZmFsc2UgOwogICAgICAgICBmb3IoIGludCBpID0gMCA7IGkgPCBuIDsgaSArKyApCiAgICAgICAgICB7CiAgICAgICAgICAgIGlmKCBjbnQxW2ldIDwgZCB8fCBjbnQxW2ldID4gRCApCiAgICAgICAgICAgICAgICAgICAgeyAgZiA9ICB0cnVlIDsgYnJlYWs7IH0KCiAgICAgICAgICAgICAgaWYoIGNudDJbaV0gPCBkIHx8IGNudDJbaV0gPiBEICkKICAgICAgICAgICAgICAgIHsgIGYgPSAgdHJ1ZSA7IGJyZWFrOyB9CgogICAgICAgICAgfQoKCiAgICAgICAgICBpZiggIGYgIHx8IChyZW0gIT0gMCkgKSB7Y291dDw8LTE8PCdcbicgOyAgIGNvbnRpbnVlIDsgfQoKICAgICAgICAgIGZvciggaW50IGkgPSAwIDsgaSA8IG4gOyBpICsrICkKICAgICAgICAgICBmb3IoIGludCBqPSAwIDsgaiA8IG4gOyBqICsrICkKICAgICAgICAgICAgIGlmKCAgZ1tpXVtqXSA9PSAxICkKICAgICAgICAgICAgICAgY291dDw8aSsxIDw8ICIgIiA8PCBqICsgMSA8PCdcbicgOwoKCgogICAgICB9CgogfQ==