#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>
#define PII pair<int,int>
using namespace std;
int k,n,m,a[105][105],i,j;
vector<PII> V;
vector<PII>::iterator it;
int main()
{
	cin>>k>>n>>m;
	if(n==1&&m==1&&k>1&&k<4)
	{
	    cout<<"-1\n";
	    return 0;
	}
	if(n==1)
	{
        for(i = 1;i<=k;i++)
			for(j=i+1;j<=k;j++)
				a[i][j]=1;
		for(i = 1; i <=k-m;i++)
			a[i][i+1]=0;
		for(i=1;i<=k;i++)
			for(j=i+1;j<=k;j++)
				if (a[i][j]==1)
					V.push_back(make_pair(i, j));
		cout<<V.size()<<'\n';
		for(it=V.begin();it!=V.end();it++)
			cout <<it->first<<' '<<it->second<<'\n';
	}
	else
	if(m==1)
	{
		for(i=1;i<=k-m;i++)
			a[i][i+1]=1;
		for(i=1;i<=k;i++)
			for(j=i+1;j<=k;j++)
				if(a[i][j])
					V.push_back(make_pair(i,j));

		cout<<V.size()<<'\n';
		for(it=V.begin();it!=V.end();it++)
			cout <<it->first<<' '<<it->second<<'\n';
	}
	else
		cout<<"-1\n";
    return 0;
}