private static void enumerate(int k) { if (k == N) { counter++; return; } for (int i = k; i < N; i++) { swap(i, k); if (!backtrack(k)) enumerate(k + 1); swap(i, k); } }