#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <limits.h>
using namespace std;
char *getline()
{
char c;
size_t bc=0;
size_t bufsiz=PIPE_BUF;
char *b = (char*)malloc(bufsiz);
for(register unsigned i=0;(c=getc(stdin))!='\n';i++,bc++){
if (i==bufsiz){
char *b_n=(char*)realloc(b, bufsiz*=2);
if (!b_n){perror("realloc fail!");}
b=b_n;
}
b[i] = c;
}
b[bc]='\0';
return b;
}
int main() {
cout << "Who you might be?" <<endl;
char *nmae=getline();
cout << "Hello " << nmae << "!" <<endl;
delete nmae;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGxpbWl0cy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2hhciAqZ2V0bGluZSgpCnsKICBjaGFyIGM7CiAgc2l6ZV90IGJjPTA7CiAgc2l6ZV90IGJ1ZnNpej1QSVBFX0JVRjsKICBjaGFyICpiID0gKGNoYXIqKW1hbGxvYyhidWZzaXopOwogIGZvcihyZWdpc3RlciB1bnNpZ25lZCBpPTA7KGM9Z2V0YyhzdGRpbikpIT0nXG4nO2krKyxiYysrKXsKICAgIGlmIChpPT1idWZzaXopewogICAgICBjaGFyICpiX249KGNoYXIqKXJlYWxsb2MoYiwgYnVmc2l6Kj0yKTsKICAgICAgaWYgKCFiX24pe3BlcnJvcigicmVhbGxvYyBmYWlsISIpO30KICAgICAgYj1iX247CiAgICB9CiAgICBiW2ldID0gYzsKICB9CiAgYltiY109J1wwJzsKICByZXR1cm4gYjsKfQppbnQgbWFpbigpIHsKICBjb3V0IDw8ICJXaG8geW91IG1pZ2h0IGJlPyIgPDxlbmRsOwogIGNoYXIgKm5tYWU9Z2V0bGluZSgpOwogIGNvdXQgPDwgIkhlbGxvICIgPDwgbm1hZSA8PCAiISIgPDxlbmRsOwogIGRlbGV0ZSBubWFlOwogIHJldHVybiAwOwp9