public class Clique {
    
    private int[] V;  // set of nodes
    private boolean[][] E; // edges as adjacence matrix

    public Clique(int[] V, boolean[][] E) {
	// initialize members
	this.V = V;
	this.E = E;  
    }
    
    /**
     * returns for a given set of nodes V and an 
     * adjacence matrix E if the graph contains
     * a k-clique?
     */ 
    public boolean kClique(int k) {
    }


    /**
     * returns based on s the next k-subset of S
     */
    private int[] nextKSubSet(int[] s, int k, int[] S) {
    }

    /** 
     * returns an intial k-subset of S 
     */
    private int[] firstKSubSet(int k, int[] S) {
    }


    private static void usage() {
	System.err.println("usage: java Clique <int>");
    }

    public static void main(String[] args) {

	if (args.length != 1) {
	    usage();
	    System.exit(-1);
	}
	    
	int[] V1 = { 1, 2, 3, 4, };
	int[] V2 = { 1, 2, 3, 4, 5, 6};

        boolean[][] E1 = {{ false, true, false, true },
                          { true, false, false, true },
                          { false, false, false, false },
                          { true, true, false, false } };

        boolean[][] E2 = {{ false, true, false, false, true, true },
                          { true, false, false, false, true, true },
                          { false, false, false, false, false, false },
                          { false, false, false, false, false, false },
                          { true, true, false, false, false, true },
                          { true, true, false, false, true, false }};



	
	Clique q1 = new Clique(V1, E1);
	Clique q2 = new Clique(V2, E2);

	try {
		int k = Integer.parseInt(args[0]);
		System.out.println("is " +k +"-Clique: " +q1.kClique(k));
		System.out.println("is " +k +"-Clique: " +q2.kClique(k));
	} catch (NumberFormatException e) {
		usage();
		System.exit(-2);
	}

   } 
    
}
