class Solution {
public:
    /**
     * lru design
     * @param operators int整型vector<vector<>> the ops
     * @param k int整型 the k
     * @return int整型vector
     */
    vector<int> LRU(vector<vector<int> >& operators, int k) {
        // write code here
        vector<int>key,value,res;
        for(int i=0;i<operators.size();i++)
        {
            if(operators[i][0]==1)
            {
                set(operators[i][1],operators[i][2],key,value,k);
            }else{
                get(operators[i][1],key,value,res);
            }
        }
        return res;
    }
    void set(int a,int b,vector<int> &key, vector<int> &value,int k)
    {
        if(key.size()<k)
        {
            key.push_back(a);
            value.push_back(b);
        }else{
            key.push_back(a);
            value.push_back(b);
            key.erase(key.begin());
            value.erase(value.begin());
        }
    }
    void get(int a,vector<int> &key,vector<int> &value,vector<int> &res)
    {
        int t=-1;
        for(int i=0;i<key.size();i++)
        {
            if(key[i]==a)
            {
                t=value[i];
                key.push_back(key[i]);
                value.push_back(value[i]);
                key.erase(key.begin()+i);
                value.erase(value.begin()+i);
                break;
            }
        }
        res.push_back(t);
    }
};