public static void printIncorrectClusters(CorefModel model,
			CorefInput input, CorefOutput correct, CorefOutput predicted) {
		Map<Integer, ? extends Set<Integer>> explicitClusteringCorrect = createExplicitClustering(correct);
		Map<Integer, ? extends Set<Integer>> explicitClusteringPredicted = createExplicitClustering(predicted);

		System.out.print("Correct clustering: ");
		for (Set<Integer> cluster : explicitClusteringCorrect.values()) {
			// Skip completely correct clusters.
			int oneMentionCorrect = cluster.iterator().next();
			int idCorrect = correct.getClusterId(oneMentionCorrect);
			int idPredicted = predicted.getClusterId(idCorrect);
			Set<Integer> clusterPredicted = explicitClusteringPredicted
					.get(idPredicted);
			if (cluster.equals(clusterPredicted))
				continue;

			System.out.print("{");
			for (int m : cluster)
				System.out.print(m + ",");
			System.out.print("} ");
		}
		System.out.println("\n");

		System.out.print("Predicted clustering: ");
		for (Set<Integer> cluster : explicitClusteringPredicted.values()) {
			// Skip completely correct clusters.
			int oneMentionPredicted = cluster.iterator().next();
			int idPredicted = predicted.getClusterId(oneMentionPredicted);
			int idCorrect = correct.getClusterId(idPredicted);
			Set<Integer> clusterCorrect = explicitClusteringCorrect
					.get(idCorrect);
			if (cluster.equals(clusterCorrect))
				continue;

			System.out.print("{");
			for (int m : cluster)
				System.out.print(m + " ");
			System.out.print("} ");
		}
		System.out.println("\n");
	}