If I have m lists with n elements each, how would I go about finding duplicates in them (i.e. an element is in more than one of the lists)? My idea is to use hashing on the elements inside the list, which involves a O(1) hashing call on each of the elements and checking for collisions inside the buckets. However, on top of that, I would like to know which lists do not have any collisions with other lists (i.e. for each list, I would like to know with which other lists the intersection of their elements will be null). I am just wondering if another level of hashing is required, or perhaps using some other algorithms and data structures. Thanks.