public static int majorityNumber(List<Integer> nums, int k) {
        // write your code
        Map<Integer, Integer> c=new HashMap<>();
        
        for (int a:nums) {
            Integer val=c.get(a);
            if (val==null&&c.size()<k) {
                c.put(a,1);
            } else if (val!=null) {
                c.put(a,val+1);
            } else {
                for (Iterator<Map.Entry<Integer, Integer>> i=c.entrySet().iterator(); i.hasNext();) {
                	Map.Entry<Integer, Integer>e=i.next();
                	if (e.getValue()==1)
                		i.remove();
                	else 
                		e.setValue(e.getValue()-1);
                }
                c.put(a,1);
            }
        }
        for (Map.Entry<Integer, Integer>e:c.entrySet())
            e.setValue(0);
        int mc=0, mv=0;
        for (int a:nums) {
            Integer val=c.get(a);
            if (val!=null) {
                c.put(a,val+1);
                if (mc<val+1) {
                    mc=val+1;
                    mv=a;
                }
            }
                
        }
        return mv;
    }