#include<iostream>
#define max 101
using namespace std;
int k,m,n;
int a[max][max],nrc_n,nrc_m,nrmuchii;
int main()
{
    int i,j,ok=0;
    cin>>k>>m>>n;

    nrc_m=nrc_n=k;

    for(i=1;i<=k-1;i++)
    {
        if(nrc_n==n)
        {
            ok=1;
            break;
        }
        a[i][i+1]=a[i+1][i]=1;
        nrmuchii++;
        nrc_n--;
    }
    if(!ok){ cout<<"Impossible"; return 0; }

    ok=0; nrc_m=n;
    for(i=1;i<=k;i++)
        for(j=i+1;j<=k;j++)
        if(!a[i][j])
        {
            nrc_m--;
            if(nrc_m==m)
            {
                ok=1;
                break;
            }
        }
    if(!ok){ cout<<"Impossible"; return 0; }

    if(nrmuchii==0) cout<<"0";
    else
    {
        cout<<nrmuchii<<'\n';
        for(i=1;i<=k&&nrmuchii;i++)
            for(j=i+1;j<=k&&nrmuchii;j++)
                if(a[i][j]) { cout<<i<<' '<<j<<'\n'; nrmuchii--; }
    }

    return 0;
}