Hmm, this algorithm looks different: what if keys1 contains keys that are not keys2? :)