System.out.println("one is:");
    public static void main(String[] args) {        if (args.length != 1) {            System.err.println("USAGE:  java NQueens N");            return;        }        N = Integer.parseInt(args[0]);        if (N <= 0) {            System.err.println("USAGE:  java NQueens N");            return;        }	long time = System.currentTimeMillis();        /* Initialize with reasonable nodes and cache size and NxN variables */	int numberOfNodes = (int) (Math.pow(4.4, N-6))*1000;	int cacheSize = 1000;	numberOfNodes = Math.max(1000, numberOfNodes);        if (System.getProperty("bdd", "buddy").equals("cudd")) {            B = CUDDFactory.init(numberOfNodes, cacheSize);        } else {            B = BuDDyFactory.init(numberOfNodes, cacheSize);        }        B.setVarNum(N * N);        queen = B.one();        int i, j;        /* Build variable array */        X = new BDD[N][N];        for (i = 0; i < N; i++)            for (j = 0; j < N; j++)                X[i][j] = B.ithVar(i * N + j);        /* Place a queen in each row */        for (i = 0; i < N; i++) {            BDD e = B.zero();            for (j = 0; j < N; j++) {                e.orWith(X[i][j].id());            }            queen.andWith(e);        }        /* Build requirements for each variable(field) */        for (i = 0; i < N; i++)            for (j = 0; j < N; j++) {                System.out.println("Adding position " + i + "," + j);                System.out.flush();                build(i, j);            }        /* Print the results */        System.out.println("There are " + (long) queen.satCount() + " solutions.");        System.out.println("one is:");        BDD solution = queen.satOne();        solution.printSet();        System.out.println();        B.done();	time = System.currentTimeMillis() - time;	System.out.println("Time: "+time/1000.+" seconds");    }