public static String GFM(String a,String b){
		//System.out.println("a and b "+a+" "+b);
		if(b.length()==1)
			b="0"+b;
		if(a.length()==1)
			a="0"+a;
		if(b.equals("00")||a.equals("00"))
			return "00";
		else if(a.equals("01"))
			return b;
		else if(b.equals("01"))
			return a; 
		String result="";
		////System.out.println("length:"+a.length()+" "+b.length());
		
		int row=Integer.parseInt(a.charAt(0)+"",16);
		int col=Integer.parseInt(a.charAt(1)+"",16);
		a=LTable[row][col];
		//System.out.println("a-l table:"+a);
		row=Integer.parseInt(b.charAt(0)+"",16);
		col=Integer.parseInt(b.charAt(1)+"",16);
		b=LTable[row][col];
		//System.out.println("b-l table:"+b);
		int tmp=Integer.parseInt(a,16)+Integer.parseInt(b, 16);
		if(tmp>255)
			tmp-=255;
		result=Integer.toHexString(tmp);
		//System.out.println("sub yay:"+result);
		if(result.length()==1) result="0"+result;
		row=Integer.parseInt(result.charAt(0)+"",16);
		col=Integer.parseInt(result.charAt(1)+"",16);
		result=ETable[row][col];
		//System.out.println("GFM result:"+result);
		return result;
	}