#include <iostream> #include <fstream> using namespace std; #define MAX 110 int a[MAX][MAX]; int main() { int k, n, m, i, j, g=0; cin>>k>>m>>n; if(m==1 || n==1) { if(k<=3 && m==1 && n==1) { cout<<"Impossible\n"; return 0; } for(i=max(n, m);i<k;i++) { a[i][i+1]=1; } if(n==1) { for(i=1;i<=k;i++) { for(j=1;j<=k;j++) { a[i][j]^=1; } } } for(i=1;i<=k;i++) { for(j=i+1;j<=k;j++) { if(a[i][j]) g++; } } cout<<g<<"\n"; for(i=1;i<=k;i++) { for(j=i+1;j<=k;j++) { if(a[i][j]) cout<<i<<" "<<j<<"\n"; } } } else { cout<<"Impossible\n"; } }