public void writeToFile(DataOutputStream dos) throws IOException{
		/*
		 * 	public long L, U;
			public String r = "something";
			public String[][] GvalueU, GvalueL;
			public int[][] valueU, valueL;
			public long v;
			public int base, m;
		 * */
		dos.writeLong(L);
		dos.writeLong(U);
		dos.writeLong(v);
		dos.writeInt(base);
		dos.writeInt(MHTree.length);
		//System.out.println("m:\t" + m + " MHTree:\t" + MHTree.length);
		dos.writeInt(whichSide);
		for(int i = 0; i < MHTree.length; i++){
			DataIO.writeString(dos, MHTree[i]);
		}
		for(int i = 0 ; i <= m; i++){
			for(int j = 0; j <= m; j++){
				dos.writeInt(valueL[i][j]);
				dos.writeInt(valueU[i][j]);
			}
			if(GvalueL[i] != null){
				dos.writeBoolean(true);
				for(int j = 0; j <= m; j++){
					DataIO.writeString(dos, GvalueL[i][j]);
				}
			}else{
				dos.writeBoolean(false);
			}
			if(GvalueU[i] != null){
				dos.writeBoolean(true);
				for(int j = 0; j <= m; j++){
					DataIO.writeString(dos, GvalueU[i][j]);
				}
			}else{
				dos.writeBoolean(false);
			}
			DataIO.writeString(dos, GvalueLs[i]);
			DataIO.writeString(dos, GvalueUs[i]);
		}
		//dos.writeInt(m);
	}