#include #define fo cin #define g cout using namespace std; //ifstream fo("grafc.in"); //ofstream g("grafc.out"); vector > q; int main() { int k,n,m,i,j; fo>>k>>m>>n; if((k>1&&n==1&&m==1&&k<4)||(n>1&&m>1)) { g<<"-1"; return 0; } else if(n==1) { for(i=1;i<=k;i++) for(j=i+1;j<=k;j++) if(!(j==(i+1)&&j<=(k-m+1))) q.push_back(make_pair(i,j)); } else { for(i=2;i<=(k-n+1);i++) q.push_back(make_pair(i-1,i)); } g< >::iterator it=q.begin();it!=q.end();it++) g<first<<' '<second<<'\n'; return 0; }