class Solution {
    public String[] findRestaurant(String[] list1, String[] list2) {
        HashMap<String, Integer> map = new HashMap<>();
        
        for(int i = 0; i < list1.length; i++) {
            map.put(list1[i], i);
        }
        
        ArrayList<String> ans = new ArrayList<>();
        int minSum = Integer.MAX_VALUE;
        int tmpSum;
        for(int i = 0; i < list2.length && i <= minSum; i++) {
            if(map.containsKey(list2[i])) {
                tmpSum = i + map.get(list2[i]);
                
                if(tmpSum < minSum) {
                    minSum = tmpSum;
                    ans.clear();
                    ans.add(list2[i]);
                }
                else if(tmpSum == minSum) {
                    ans.add(list2[i]);
                }
            }
        }
        
        return ans.toArray(new String[0]);
    }
}