#include <iostream>

namespace A{
	struct Test{};
	template<typename T>
	void op(Test t, T t2){
		std::cout<<"A"<<std::endl;
	}
}

namespace B{
	struct Test{};
	
	template<typename T>
	void op(Test t, T t2){
		std::cout<<"B"<<std::endl;
	}
}

int main()
{
	A::Test t;
	B::Test t2;
	
	op(t, t2);
	op(t2, t);
}