complete perfect hash