import java.util.*;


public class Solution {
    /**
     * lru design
     * @param operators int整型二维数组 the ops
     * @param k int整型 the k
     * @return int整型一维数组
     */
    public int[] LRU (int[][] operators, int k) {
        // write code here
        LinkedHashMap<Integer, Integer> map = new LinkedHashMap<>();
        List<Integer> list = new ArrayList<>();
        for(int i=0;i<operators.length;i++){
            int[] row = operators[i];
            if(row[0] == 1){
                // set
                if(map.size() == k){
                    map.remove(map.entrySet().iterator().next().getKey());
                }
                map.put(row[1], row[2]);
            } else if(row[0] == 2){
                Integer val = map.get(row[1]);
                if(val == null){
                    list.add(-1);
                } else {
                    list.add(val);
                    map.remove(row[1]);
                    map.put(row[1], val);
                }
            }
        }

        int[] res = new int[list.size()];
        int i = 0;
       for(int ele: list){
           res[i++] = ele;
       }
        return res;
    }
}