Reducing the Storage Requirements of a Perfect Hash Function