Consider 16 non-empty sets each containing up to 2^16 numbers, which are between 0 to 2^16-1 inclusive and each number may appear in more than one sets, obviously. The goal is to find minimum number of numbers which we have at least one number from each set. I tried greedy approach, clearly is wrong, also have found general form of this problem which is np-complete. link