public void read(String s) {
		String[] elms = s.split("%");
		this.visitedPoint = Integer.parseInt(elms[0]);
		this.level = Integer.parseInt(elms[1]);
		String candStr = elms[2];
		String[] ens = candStr.split(",");
		int candsize = Integer.parseInt(ens[0]);
		this.cand = new HashMap<Integer, Integer>(candsize);
		for (int i = 1; i < ens.length; i++) {
			this.cand.put(Integer.parseInt(ens[i].trim()), 0);
		}
		String notStr = elms[3];
		String[] enls = notStr.split(",");
		int notsize = Integer.parseInt(enls[0]);
		this.excl = new HashSet<Integer>(notsize);
		for (int i = 1; i < enls.length; i++) {
			this.excl.add(Integer.parseInt(enls[i].trim()));
		}
		this.result = new ArrayList<Integer>(this.level+this.cand.size()/2);
		if(level>1){
			enls = elms[4].split(",");
			for(int i = 0;i<this.level-1;i++){
				this.result.add(Integer.parseInt(enls[i]));
			}
		}
	}