#include <iostream>
using namespace std;
struct X
{
X(const X&) { cout << "copy" << endl; }
X(X&&) { cout << "move" << endl; }
template<class T> X(const T&) { cout << "tmpl" << endl; }
};
int main()
{
X x1 = 42;
X x2(x1);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBYCnsKICAgIFgoY29uc3QgWCYpICAgICAgICAgICAgICB7IGNvdXQgPDwgImNvcHkiIDw8IGVuZGw7IH0KICAgIFgoWCYmKSAgICAgICAgICAgICAgICAgICB7IGNvdXQgPDwgIm1vdmUiIDw8IGVuZGw7IH0KCiAgICB0ZW1wbGF0ZTxjbGFzcyBUPiBYKGNvbnN0IFQmKSB7IGNvdXQgPDwgInRtcGwiIDw8IGVuZGw7IH0KfTsKCmludCBtYWluKCkKewogICAgWCB4MSA9IDQyOwogICAgWCB4Mih4MSk7Cn0=