#include <stdio.h>
#define MaxSize 250
typedef struct{
char ch[MaxSize];
int length;
}String;
void Init(String &s){
s.length = 0;
}
void StrAssign(String &s,char c){
s.length++;
s.ch[s.length] = c;
}
void StrCopy(String &o,String n){
for(int i=1;i <= n.length;i++){
StrAssign(o,n.ch[i]);
}
}
bool StrEmpty(String s){
return s.length == 0;
}
int StrLength(String s){
return s.length;
}
void ConCat(String &N,String s1,String s2){
for(int i = 1; i <= s1.length;i++){
StrAssign(N,s1.ch[i]);
}
for(int i = 1; i <= s2.length;i++){
StrAssign(N,s2.ch[i]);
}
}
void PrintfStr(String s){
for(int i=1;i<=s.length;i++){
printf("%c",s.ch[i]);
}
printf("\n");
}
int main(){
String s;
String s2;
Init(s);
Init(s2);
StrAssign(s,'I');
StrAssign(s,'L');
StrAssign(s,'o');
StrAssign(s,'v');
StrAssign(s,'e');
StrAssign(s,'Y');
StrAssign(s,'o');
StrAssign(s,'u');
StrAssign(s,'!');
StrAssign(s2,'Y');
StrAssign(s2,'X');
StrAssign(s2,'K');
String s3;
Init(s3);
StrCopy(s3,s2);
String s4;
Init(s4);
ConCat(s4,s,s2);
PrintfStr(s4);
return 0;
}