public static void Kuhn(Graph input) {
		input.setState(States.ARR_ADJ);
		Log.print(Log.system, "Kuhn algorithm:");

		// init
		int n = input.getNodeCountFirstPartite();
		int k = input.getVertexCount() - n;
		mt = new int[k];
		used = new boolean[n];
		Arrays.fill(mt, -1);

		for (int i = 0; i < n; i++) {
			Arrays.fill(used, false);
			tryKuhn(input, i);
		}

		for (int i = 0; i < k; i++)
			if (mt[i] != -1)
				System.out.println((mt[i] + 1) + " " + (i + 1));
	}