import java.util.*;

public class codeforces {

    static ArrayList<Integer>[] list;
    static int n;
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        int d = sc.nextInt();
        int k = sc.nextInt();
        int v=4,temp=2;


        Queue<Integer > q=new LinkedList<>();
        list=new ArrayList[n+1];
        int[] deg=new int[n+1];
        int[] dep=new int[n+1];

        for(int i=0;i<=n;i++)
            list[i]=new ArrayList<>();

        q.add(2);q.add(3);
        list[1].add(2);list[1].add(3);
        dep[2]=dep[3]=deg[2]=deg[3]=1;
        deg[1]=2;
        while(q.size()>0 && temp<d){
            int u=q.poll();
            list[u].add(v);
            dep[v]=dep[u]+1;
            deg[u]++;
            deg[v]++;
            q.add(v);
            v++;
            temp=temp+2;
        }

        if(d%2!=0){
            int u=d-1;
            for(int i=deg[u]+1;v<=n && i<=k;i++){
                list[u].add(v);
                dep[v]=dep[u]+1;
                deg[u]++;
                deg[v]++;
                v++;
            }
        }

        if(v>n){
            print();
            return;
        }

        q=new LinkedList<>();
        q.add(1);
        while(q.size()>0){
            int u=q.poll();
            if(dep[u]*2>=d || dep[u]*2+1>=d)
                continue;
            for(int i=deg[u]+1;v<=n && i<=k;i++){
                list[u].add(v);
                dep[v]=dep[u]+1;
                deg[v]++;
                v++;
            }
            for(Integer t:list[u]){
                q.add(t);
            }
            if(v>n)
                break;

        }

        if(v<=n) {
            System.out.println("NO");
            return;
        }
        print();

    }

    public static void print(){

        StringBuilder  ans=new StringBuilder("");
        int count=0;
        for(int i=1;i<=n;i++){
            for(Integer t:list[i]) {
                count++;
                ans.append(i + " " + t + "\n");
            }
        }
        if(count==n-1) {
            System.out.println("YES");
            System.out.println(ans);
        }
        else
            System.out.println("NO");
    }
}