namespace  Foo { 
 
	class  Deriv { } ; 
	class  Another { } ; 
 
	template  < typename  T> 
	Another operator*  (  T x, const  Deriv&  d )  {  return  Another( ) ; } 
} 
namespace  Bar { 
	typedef  Foo:: Deriv  MyDeriv; 
	MyDeriv operator*  ( float  x, const  MyDeriv&  d) ; 
} 
 
namespace  Bar { 
	void  f1( )  { 
		Bar:: MyDeriv  a; 
		Bar:: MyDeriv  b =  3 .f  *  a; 
	} 
} 
 
void  f2( )  { 
	Bar:: MyDeriv  a;  
	Bar:: MyDeriv  b =  3 .f  *  a; 
} 
 
int  main( )  { 
	// your code goes here 
	return  0 ; 
} 
 
				Cm5hbWVzcGFjZSBGb28gewoKCWNsYXNzIERlcml2IHt9OwoJY2xhc3MgQW5vdGhlciB7fTsKCQoJdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CglBbm90aGVyIG9wZXJhdG9yKiAoIFQgeCwgY29uc3QgRGVyaXYmIGQgKSB7IHJldHVybiBBbm90aGVyKCk7fQp9Cm5hbWVzcGFjZSBCYXIgewoJdHlwZWRlZiBGb286OkRlcml2IE15RGVyaXY7CglNeURlcml2IG9wZXJhdG9yKiAoZmxvYXQgeCwgY29uc3QgTXlEZXJpdiYgZCk7Cn0KCm5hbWVzcGFjZSBCYXIgewoJdm9pZCBmMSgpIHsKCQlCYXI6Ok15RGVyaXYgYTsKCQlCYXI6Ok15RGVyaXYgYiA9IDMuZiAqIGE7Cgl9Cn0KCnZvaWQgZjIoKSB7CglCYXI6Ok15RGVyaXYgYTsgCglCYXI6Ok15RGVyaXYgYiA9IDMuZiAqIGE7Cn0KCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJcmV0dXJuIDA7Cn0=