#include <iostream>

using namespace std;

int mat[105][105];
int main()
{
    int k,m,n;
    cin>>k>>m>>n;

    if((m!= 1 && n!=1) || (n > k) ||(m>k))
        cout<<"Impossible"<<'\n';
    else
    {
        if(n!=1)
        {//n e in graful meu curent
            cout<<k-n<<'\n';
            for(int i = 2; i<=1+k-n;i++)
                cout<<"1 "<<i<<'\n';
        }
        else
        {
            int nr = 0;
            for(int i = 1; i<=k;i++)
                for(int j = i+1; j<=k;j++)
                    mat[i][j] = 1, nr++;
            for(int i = 2; i<=1+k-m;i++)
                mat[1][i] = 0, nr--;
            cout<<nr<<'\n';
            for(int i = 1; i<=k;i++)
                for(int j = i+1; j<=k;j++)
                    if(mat[i][j])
                        cout<<i<<" "<<j<<'\n';
        }


    }
    return 0;
}