#include <iostream>
class S{
public:
char c[99999];
S(){
c[0] = 0;
}
S(char s){
c[0] = s;
c[1] = 0;
}
S(const char * s){
int k = 0;
while(k > -1)
{
if (s[k] != 0)
{
c[k] = s[k];
k+=1;
}
else
{
c[k] = s[k];
k = -2;
}
}
}
S(const S& s){
for(int i = 0; i < 99999; i++)
{
c[i] = s.c[i];
}
}
S& operator=(const S& s) {
for(int i = 0; i < 99999; i++)
{
c[i] = s.c[i];
}
return *this;
}
int length() const{
int q = 0;
while(q > -1)
{
if (c[q] == 0)
{
return q;
}
else
{
q++;
}
}
}
S& operator+=(const S& s1){
int t = length();
for(int i = t; i < (t + s1.length()); i++)
{
c[i] = s1.c[(i - t)];
}
c[t + s1.length()] = 0;
return *this;
}
const S operator+(const S& s1){
int t = length();
S tmr(c);
for(int i = t; i < (t + s1.length()); i++)
{
tmr.c[i] = s1.c[(i - t)];
}
tmr.c[t + s1.length()] = 0;
return tmr;
}
char operator[](int n){
return c[n];
}
const char operator[](int n) const{
return c[n];
}
friend std::ostream& operator<<(std::ostream& os, const S& value)
{
os << value.c;
return os;
}
const char* str() const {
return (const char *) c;
}
};
int main(){
char a;
S s("qwerty");
int i = 1;
std::cout << s[i] << ' ' << s[2];
std::cin >> a;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgpjbGFzcyBTewpwdWJsaWM6CiAgICBjaGFyIGNbOTk5OTldOwogICAgCiAgICBTKCl7CiAgICAgICAgY1swXSA9IDA7CiAgICB9CiAgICAKICAgIFMoY2hhciBzKXsKICAgICAgICBjWzBdID0gczsKICAgICAgICBjWzFdID0gMDsKICAgIH0KICAgIAogICAgUyhjb25zdCBjaGFyICogcyl7CiAgICAgICAgaW50IGsgPSAwOwogICAgICAgIHdoaWxlKGsgPiAtMSkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChzW2tdICE9IDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNba10gPSBzW2tdOwogICAgICAgICAgICAgICAgays9MTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNba10gPSBzW2tdOwogICAgICAgICAgICAgICAgayA9IC0yOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgIH0KICAgIH0KICAgIFMoY29uc3QgUyYgcyl7CiAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IDk5OTk5OyBpKyspCiAgICAgICAgewogICAgICAgICAgICBjW2ldID0gcy5jW2ldOwogICAgICAgIH0KICAgIH0KICAgIFMmIG9wZXJhdG9yPShjb25zdCBTJiBzKSB7CiAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IDk5OTk5OyBpKyspCiAgICAgICAgewogICAgICAgICAgICBjW2ldID0gcy5jW2ldOwogICAgICAgIH0KICAgICAgICByZXR1cm4gKnRoaXM7CiAgICB9CiAgICBpbnQgbGVuZ3RoKCkgY29uc3R7CiAgICAgICAgaW50IHEgPSAwOwogICAgICAgIAogICAgICAgIHdoaWxlKHEgPiAtMSkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChjW3FdID09IDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBxOyAKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHErKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIFMmIG9wZXJhdG9yKz0oY29uc3QgUyYgczEpewogICAgICAgIGludCB0ID0gbGVuZ3RoKCk7CiAgICAgICAgZm9yKGludCBpID0gdDsgaSA8ICh0ICsgczEubGVuZ3RoKCkpOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBjW2ldID0gczEuY1soaSAtIHQpXTsKICAgICAgICB9CiAgICAgICAgY1t0ICsgczEubGVuZ3RoKCldID0gMDsKICAgICAgICByZXR1cm4gKnRoaXM7CiAgICB9CiAgICBjb25zdCBTIG9wZXJhdG9yKyhjb25zdCBTJiBzMSl7CiAgICAgICAgCiAgICAgICAgaW50IHQgPSBsZW5ndGgoKTsKICAgICAgICBTIHRtcihjKTsKICAgICAgICAKICAgICAgICBmb3IoaW50IGkgPSB0OyBpIDwgKHQgKyBzMS5sZW5ndGgoKSk7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIHRtci5jW2ldID0gczEuY1soaSAtIHQpXTsKICAgICAgICB9CiAgICAgICAgdG1yLmNbdCArIHMxLmxlbmd0aCgpXSA9IDA7CiAgICAgICAgcmV0dXJuIHRtcjsKICAgIH0KICAgIGNoYXIgb3BlcmF0b3JbXShpbnQgbil7CiAgICAgICAgcmV0dXJuIGNbbl07CiAgICB9Cgljb25zdCBjaGFyIG9wZXJhdG9yW10oaW50IG4pIGNvbnN0ewogICAgICAgIHJldHVybiBjW25dOwogICAgfQogICAgCiAgICBmcmllbmQgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IFMmIHZhbHVlKSAgCiAgICB7ICAKICAgIG9zIDw8IHZhbHVlLmM7ICAKICAgIHJldHVybiBvczsgIAogICAgfQogICAgY29uc3QgY2hhciogc3RyKCkgY29uc3QgewogICAgICAgIHJldHVybiAoY29uc3QgY2hhciAqKSBjOwogICAgfQp9OwoKaW50IG1haW4oKXsKICAgIGNoYXIgYTsKICAgIFMgcygicXdlcnR5Iik7CiAgICBpbnQgaSA9IDE7CiAgICBzdGQ6OmNvdXQgPDwgc1tpXSA8PCAnICcgPDwgc1syXTsKICAgIHN0ZDo6Y2luID4+IGE7CiAgICByZXR1cm4gMDsKfQ==