private int inverseCount(boolean[][] table, int row, int column) {
		boolean[][] t = new boolean[table.length][table[0].length];
		for (int i = 0; i < table.length; i++) {
			System.arraycopy(table[i], 0, t[i], 0, table[i].length);
		}
		for (int j = 0; j < table.length; j++) {
			 t[j][column] = ! t[j][column];
		}
		for (int j = 0; j < table[row].length; j++) {
			 t[row][j] = ! t[row][j];
		}

		int count = 0;
		for (int i = 0; i <  t.length; i++) {
			for (int j = 0; j <  t[i].length; j++) {
				if ( t[i][j]) {
					count++;
				}
			}
		}
		return count;
	}