public static Hop load(In in){
        Hop hop = new Hop(in.readInt());    // V
        hop.size = in.readInt();
        in.readLine();  // consume remaining line (contain hop size)
        
        // |V| lines of lin labels
        for(int v = 0; v < hop.V; v++){
            String line = in.readLine();
            if(0 == line.length())continue; // empty line
            
            String[] nums = line.split(" ");
            for(String s : nums){
                hop.labels[v].lin.add(Integer.parseInt(s));
            }
        }
        
        // |V| lines of lout labels
        for(int v = 0; v < hop.V; v++){
            String line = in.readLine();
            if(0 == line.length())continue;
            
            String[] nums = line.split(" ");
            for(String s : nums){
                hop.labels[v].lout.add(Integer.parseInt(s));
            }
        }
        
        return hop;
    }