public List<String> findItinerary(String[][] tickets) {
        if(tickets==null || tickets.length==0) return new ArrayList<String>();
        Map<String,List<String>> reachablePoints=new HashMap<String, List<String>>();
        Map<String,Integer> reachableCnt=new HashMap<String, Integer>();
        for(int i=0;i<tickets.length;++i){
            List<String> list=reachablePoints.get(tickets[i][0]);
            if(list==null) list=new ArrayList<String>();
            list.add(tickets[i][1]);
            reachablePoints.put(tickets[i][0],list);
        }
        for(String root: reachablePoints.keySet()){
            reachableCnt.put(root,getReachableCnt(root,reachablePoints));
        }
        System.out.println(reachableCnt);
        return null;
    }