public static void main(String[] args) {
		if (args.length < 1) {
			System.err.println("Too few arguments.");
			System.exit(1);
		}

		final AttributeSet all = makeAttributeSet(args[0]);
		final Collection<FunctionalDependency> fds = new LinkedList<>();

		for (int i = 1; i < args.length; ++i) {
			String[] parts = args[i].split("->");
			if (parts.length != 2) {
				System.err.println("Illegal argument (\"" + args[i] + "\")");
				System.exit(1);
			}
			final AttributeSet left = makeAttributeSet(parts[0]);
			final AttributeSet right = makeAttributeSet(parts[1]);
			fds.add(new FunctionalDependency(left, right));
		}

		CandidateKeyFinder finder = new CandidateKeyFinder(all, fds);
		finder.find();
		for (final AttributeSet set : finder.getCandidateKeys()) {
			System.out.println(set);
		}
	}