#include<bits/stdc++.h>
#define in cin
#define out cout
#define abs(x) ((x>0)?(x):(-(x)))
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define FOR(i, a, b) for(int i = a; i <= b; ++i)
#define DOWNFOR(i, a, b) for(int i = a; i >= b; --i)
#define FOREACH(i, t) for (typeof(t.begin()) i = t.begin(); i != t.end(); ++i)
using namespace std;
typedef long long ll;
int N,a,b,K,x[20001],y[20001];
int main(){
    #ifndef ONLINE_JUDGE
    ifstream in("test.in");
    ofstream out("test.out");
    #endif
    in>>N>>a>>b;
    if(a>b) swap(a,b);
    if(a>1){
        out<<"Impossible\n";
        return 0;
    }
    N=N-b+1;
    for(int i=1;i<=N;i++) for(int j=i+1;j<=N;j++) x[++K]=i,y[K]=j;
    out<<K<<'\n';
    for(int i=1;i<=K;i++) out<<x[i]<<' '<<y[i]<<'\n';
    return 0;
}