#include <memory>
template <typename T, typename ... Tn>
std::unique_ptr<T> make_unique( Tn&&... argn ) {
return std::unique_ptr<T>( new T( std::forward<Tn>( argn )... ) );
}
template <typename T, typename TDx, typename ... Tn>
std::unique_ptr<T, TDx> make_unique( TDx&& dx, Tn&&... argn ) {
return std::unique_ptr<T, TDx>( new T( std::forward<Tn>( argn )... ), std::forward<TDx>( dx ) );
}
int main ( int argc, char** argv ) {
}
I2luY2x1ZGUgPG1lbW9yeT4KCnRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSAuLi4gVG4+CnN0ZDo6dW5pcXVlX3B0cjxUPiBtYWtlX3VuaXF1ZSggVG4mJi4uLiBhcmduICkgewogICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxUPiggbmV3IFQoIHN0ZDo6Zm9yd2FyZDxUbj4oIGFyZ24gKS4uLiApICk7Cn0KCnRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBURHgsIHR5cGVuYW1lIC4uLiBUbj4Kc3RkOjp1bmlxdWVfcHRyPFQsIFREeD4gbWFrZV91bmlxdWUoIFREeCYmIGR4LCBUbiYmLi4uIGFyZ24gKSB7CglyZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFQsIFREeD4oIG5ldyBUKCBzdGQ6OmZvcndhcmQ8VG4+KCBhcmduICkuLi4gKSwgc3RkOjpmb3J3YXJkPFREeD4oIGR4ICkgKTsKfQoKCmludCBtYWluICggaW50IGFyZ2MsIGNoYXIqKiBhcmd2ICkgewogICAgCiAgICAKICAgIAp9