#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);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKbmFtZXNwYWNlIEF7CglzdHJ1Y3QgVGVzdHt9OwoJdGVtcGxhdGU8dHlwZW5hbWUgVD4KCXZvaWQgb3AoVGVzdCB0LCBUIHQyKXsKCQlzdGQ6OmNvdXQ8PCJBIjw8c3RkOjplbmRsOwoJfQp9CgpuYW1lc3BhY2UgQnsKCXN0cnVjdCBUZXN0e307CgkKCXRlbXBsYXRlPHR5cGVuYW1lIFQ+Cgl2b2lkIG9wKFRlc3QgdCwgVCB0Mil7CgkJc3RkOjpjb3V0PDwiQiI8PHN0ZDo6ZW5kbDsKCX0KfQoKaW50IG1haW4oKQp7CglBOjpUZXN0IHQ7CglCOjpUZXN0IHQyOwoJCglvcCh0LCB0Mik7CglvcCh0MiwgdCk7Cn0=