class Solution:
    def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
        l1,l2 = len(nums1), len(nums2)
        res = []
        if not l1 or not l2:
            return []
        if l1 <=l2:
            tar = nums1
            longN = nums2
        else:
            tar = nums2
            longN = nums1
        counter = collections.Counter(tar)
        for each in longN:
            if each in counter:
                if counter[each]>0:
                    counter[each] -= 1
                    res.append(each)
                else:
                    continue
        return res