class Concordance {
	Concordance(String filename) {this.filename = filename;}

	void buildIt() {
		WordGrabber wg = new WordGrabber(filename);

		String word = wg.nextWord();
		while (word != null) {
			Vector<Integer> value = theMap.get(word);
			if (value == null) {
				value = new Vector<Integer>();
				theMap.put(word, value);
			}
			value.add(wg.getLineNum());
			word = wg.nextWord();
		}
	}

	public String toString() {
		String result = "";
		Iterator<String> mapIter = theMap.keySet().iterator();
		while (mapIter.hasNext()) {
			String word = mapIter.next();
			Vector<Integer> value = theMap.get(word);
			result += word + : ";
			Iterator<Integer> vectIter = value.iterator();
			while (vectIter.hasNext()) {
				result += vectIter.next();
				if (vectIter.hasNext())
					result += " ,";
			}
		}
		return result;
	}

	private String filename;
	Map<String, Vector<Integer>> theMap = new TreeMap<String, Vector<Integer>>();

	public static void main(String [] args) {
		Concordance conc = new Concordance("Concordance.java");
		conc.buildIt();
		System.out.println(conc);
	}
}

class WordGrabber {
	WordGrabber(String filename) {
	}

	String nextWord() {
	}

	int getLineNum() {
	}
}