private static void merge(ConllSentence sen, ConllSentence mwe,
			String[] originalpositions) {
		ArrayList<Integer> op = new ArrayList<Integer>();
		for(String s: originalpositions){
			op.add(Integer.parseInt(s));
		}
		int orignalMWEHeadPostion = op.get(0);
		int headOfMWE = Integer.parseInt(((sen.lines.get(orignalMWEHeadPostion-1)).split("\\t"))[6]);
		ArrayList<Integer> afterReplace = new ArrayList<Integer>();
		int MWEHeadNowInOriginal = -1;
		int m_index = 0;
		boolean flag = false;
		for(String line : mwe.lines){
			int h = Integer.parseInt((line.split("\\t"))[6]);
			if(h==0 && !flag){
				afterReplace.add(headOfMWE);
				MWEHeadNowInOriginal = op.get(m_index);
				flag = true;
			}else{
				if(h==0){
					afterReplace.add(MWEHeadNowInOriginal);
				}else{
					afterReplace.add(op.get(h-1));
				}
			}
			m_index++;
		}
		// Recover tokens inside the MWE
		for(int i = 0; i < op.size(); i++){
			String as = changeHeadField(sen.lines.get(op.get(i)-1), afterReplace.get(i));
			sen.lines.set(op.get(i)-1, as);
		}
		// Recover tokens outside the MWE
		for(int i = 0; i < sen.lines.size(); i++){
			if(op.contains(i+1)) continue;
			int oh = Integer.parseInt((sen.lines.get(i).split("\\t"))[6]);
			if(oh == orignalMWEHeadPostion){
				String as = changeHeadField(sen.lines.get(i), MWEHeadNowInOriginal);
				sen.lines.set(i, as);
			}
		}
	}