unique solutions only
carry around a list<string> and use insertion sort
load unigrams from disk