#include <iostream>
using namespace std;
struct STR
{
STR() { cout<<"konstruktor domyslny"<<endl; }
STR(const STR &S) { cout<<"konstruktor kopiujacy (radosnie kopiujemy cala zawartosc)"<<endl; }
~STR() { cout<<"destruktor"<<endl; }
};
void f1(const STR & s) {}
void f2(STR s) {}
int main()
{
STR S;
cout<<"F1"<<endl;
f1(S);
cout<<"F2"<<endl;
f2(S);
cout<<"end"<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFNUUgogIHsKICAgU1RSKCkgeyBjb3V0PDwia29uc3RydWt0b3IgZG9teXNsbnkiPDxlbmRsOyB9CiAgIFNUUihjb25zdCBTVFIgJlMpIHsgY291dDw8ImtvbnN0cnVrdG9yIGtvcGl1amFjeSAocmFkb3NuaWUga29waXVqZW15IGNhbGEgemF3YXJ0b3NjKSI8PGVuZGw7IH0KICAgflNUUigpIHsgY291dDw8ImRlc3RydWt0b3IiPDxlbmRsOyB9CiAgfTsKCnZvaWQgZjEoY29uc3QgU1RSICYgcykge30Kdm9pZCBmMihTVFIgcykge30KCmludCBtYWluKCkKICB7CiAgIFNUUiBTOwogICBjb3V0PDwiRjEiPDxlbmRsOwogICBmMShTKTsKICAgY291dDw8IkYyIjw8ZW5kbDsKICAgZjIoUyk7CiAgIGNvdXQ8PCJlbmQiPDxlbmRsOwogICByZXR1cm4gMDsKICB9