#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
int main()
{
char ss[100];
int t;
int j =0;
while (scanf("%s", ss)!=EOF)
{
string ns="";
string s=ss;
if (s[0]=='_' || s[s.length()-1]=='_' || (s[0]>='A' && s[0]<='Z'))
{
cout << "Error!" << endl;
}
else
{
for (int i = 1; i < s.length(); i++)
{
if (s[i]=='_')
{
t=1;
break;
}
else if(s[i]<='Z' && s[i]>='A')
{
t=2;
break;
}
}
switch (t)
{
case 1:
for (int i = 0; i < s.length(); i++)
{
if(s[i]>='A' && s[i]<='Z')
{
cout << "Error!" << endl;
break;
}
else if (s[i]=='_' && s[i+1]=='_')
{
cout << "Error!" << endl;
break;
}
else if (s[i-1]=='_')
{
j++;
continue;
}
else if (s[i]=='_')
{
char a=s[i+1]-32;
ns=ns+(a);
}
else
{
ns=ns+s[i];
}
j++;
}
if (j==s.length())
{
cout << ns << endl;
}
break;
default:
for (int i = 0; i < s.length(); i++)
{
if (s[i]=='_')
{
cout << "Error!" << endl;
}
else if (s[i]>='A' && s[i]<='Z')
{
char a=s[i]+32;
ns=ns+"_"+(a);
}
else
{
ns=ns+s[i];
}
j++;
}
if (j==s.length())
{
cout << ns << endl;
}
}
}
s="";
ns="";
j=0;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKQp7CgljaGFyIHNzWzEwMF07CglpbnQgdDsKCWludCBqID0wOwoJd2hpbGUgKHNjYW5mKCIlcyIsIHNzKSE9RU9GKQoJewoJCXN0cmluZyBucz0iIjsKCQlzdHJpbmcgcz1zczsKCQlpZiAoc1swXT09J18nIHx8IHNbcy5sZW5ndGgoKS0xXT09J18nIHx8IChzWzBdPj0nQScgJiYgc1swXTw9J1onKSkKCQl7CgkJCWNvdXQgPDwgIkVycm9yISIgPDwgZW5kbDsKCQl9CgkJZWxzZQoJCXsKCQkJZm9yIChpbnQgaSA9IDE7IGkgPCBzLmxlbmd0aCgpOyBpKyspCgkJCXsKCQkJCWlmIChzW2ldPT0nXycpCgkJCQl7CgkJCQkJdD0xOwoJCQkJCWJyZWFrOwoJCQkJfQoJCQkJZWxzZSBpZihzW2ldPD0nWicgJiYgc1tpXT49J0EnKQoJCQkJewoJCQkJCXQ9MjsKCQkJCQlicmVhazsKCQkJCX0KCQkJfQoJCQlzd2l0Y2ggKHQpCgkJCXsKCQkJCWNhc2UgMToKCQkJCQlmb3IgKGludCBpID0gMDsgaSA8IHMubGVuZ3RoKCk7IGkrKykKCQkJCQl7CgkJCQkJCWlmKHNbaV0+PSdBJyAmJiBzW2ldPD0nWicpCgkJCQkJCXsKCQkJCQkJCWNvdXQgPDwgIkVycm9yISIgPDwgZW5kbDsKCQkJCQkJCWJyZWFrOwoJCQkJCQl9CgkJCQkJCWVsc2UgaWYgKHNbaV09PSdfJyAmJiBzW2krMV09PSdfJykKCQkJCQkJewoJCQkJCQkJY291dCA8PCAiRXJyb3IhIiA8PCBlbmRsOwoJCQkJCQkJYnJlYWs7CgkJCQkJCX0KCQkJCQkJZWxzZSBpZiAoc1tpLTFdPT0nXycpCgkJCQkJCXsKCQkJCQkJCWorKzsKCQkJCQkJCWNvbnRpbnVlOwoJCQkJCQl9CgkJCQkJCWVsc2UgaWYgKHNbaV09PSdfJykKCQkJCQkJewoJCQkJCQkJY2hhciBhPXNbaSsxXS0zMjsKCQkJCQkJCW5zPW5zKyhhKTsKCQkJCQkJfQoJCQkJCQllbHNlCgkJCQkJCXsKCQkJCQkJCW5zPW5zK3NbaV07CgkJCQkJCX0KCQkJCQkJaisrOwoJCQkJCX0KCQkJCQlpZiAoaj09cy5sZW5ndGgoKSkKCQkJCQl7CgkJCQkJCWNvdXQgPDwgbnMgPDwgZW5kbDsKCQkJCQl9CgkJCQkJYnJlYWs7CgkJCQlkZWZhdWx0OgoJCQkJCWZvciAoaW50IGkgPSAwOyBpIDwgcy5sZW5ndGgoKTsgaSsrKQoJCQkJCXsKCQkJCQkJaWYgKHNbaV09PSdfJykKCQkJCQkJewoJCQkJCQkJY291dCA8PCAiRXJyb3IhIiA8PCBlbmRsOwoJCQkJCQl9CgkJCQkJCWVsc2UgaWYgKHNbaV0+PSdBJyAmJiBzW2ldPD0nWicpCgkJCQkJCXsKCQkJCQkJCWNoYXIgYT1zW2ldKzMyOwoJCQkJCQkJbnM9bnMrIl8iKyhhKTsKCQkJCQkJfQoJCQkJCQllbHNlCgkJCQkJCXsKCQkJCQkJCW5zPW5zK3NbaV07CgkJCQkJCX0KCQkJCQkJaisrOwoJCQkJCX0KCQkJCQlpZiAoaj09cy5sZW5ndGgoKSkKCQkJCQl7CgkJCQkJCWNvdXQgPDwgbnMgPDwgZW5kbDsKCQkJCQl9CgkJCX0KCQl9CgkJcz0iIjsKCQlucz0iIjsKCQlqPTA7Cgl9CglyZXR1cm4gMDsKfQ==