Key numbers need to be unsigned, since they're used as array offsets