#include <iostream>
#include <string>
std::string s,t,sta(" "),ans;
int main(){
std::cin.tie(nullptr)->sync_with_stdio(false);
for(;std::getline(std::cin,t);){
s.append(t.begin(),t.end());
s.push_back('\n');
}
std::string::iterator i,j;
for(i=s.begin();i!=s.end();++i){
if(*i=='['){
for(j=i+1;j!=s.end()&&*j!=']';++j);
t.assign(i+1,j);
if(t=="h1"){
ans.append("# ");
sta.push_back('1');
i=j;
}else if(t=="h2"){
ans.append("## ");
sta.push_back('2');
i=j;
}else if(t=="i"){
ans.push_back('*');
sta.push_back('i');
i=j;
}else if(t=="b"){
ans.append("__");
sta.push_back('b');
i=j;
}else if(t=="quote"){
if(ans.size()&&ans.back()!='\n'){
ans.push_back('\n');
}
ans.append("> ");
i+=7;
for(;i!=s.end()&&*i=='\n';++i);
if(i-s.begin()+8>=(int)(s.size())){
ans.assign("Unclosed Mark\n");
break;
}
for(;std::string(i,i+8)!="[/quote]";++i){
if(i-s.begin()+8>=(int)(s.size())){
ans.assign("Unclosed Mark\n");
goto lb1;
}
ans.push_back(*i);
if(*i=='\n'){
ans.append("> ");
}
}
for(;ans.size()&&ans.back()=='\n';ans.pop_back());
if(ans.size()&&ans.substr(ans.size()-2)=="> "){
ans.erase(ans.end()-2,ans.end());
}
ans.push_back('\n');
i+=7;
}else if(t=="/h1"){
if(sta.back()!='1'){
ans.assign("Match Error\n");
break;
}
sta.pop_back();
ans.append(" #");
i=j;
}else if(t=="/h2"){
if(sta.back()!='2'){
ans.assign("Match Error\n");
break;
}
sta.pop_back();
ans.append(" ##");
i=j;
}else if(t=="/i"){
if(sta.back()!='i'){
ans.assign("Match Error\n");
break;
}
sta.pop_back();
ans.push_back('*');
i=j;
}else if(t=="/b"){
if(sta.back()!='b'){
ans.assign("Match Error\n");
break;
}
sta.pop_back();
ans.append("__");
}else if(t.size()>3&&t.substr(0,4)=="url="){
++j;
if(j-s.begin()+6>=(int)(s.size())){
ans.assign("Unclosed Mark\n");
break;
}
ans.push_back('[');
for(;std::string(j,j+6)!="[/url]";++j){
if(i-s.begin()+6>=(int)(s.size())){
ans.assign("Unclosed Mark\n");
goto lb1;
}
ans.push_back(*j);
}
ans.append("](");
ans.append(t.substr(4));
ans.push_back(')');
i=j+5;
}else if(t.size()>3&&t.substr(0,4)=="img="){
++j;
if(j-s.begin()+6>=(int)(s.size())){
ans.assign("Unclosed Mark\n");
break;
}
ans.append("![");
for(;std::string(j,j+6)!="[/url]";++j){
if(i-s.begin()+6>=(int)(s.size())){
ans.assign("Unclosed Mark\n");
goto lb1;
}
ans.push_back(*j);
}
ans.append("](");
ans.append(t.substr(4));
ans.push_back(')');
i=j+5;
}else if(t=="/quote"||t=="/url"||t=="/img"){
ans.assign("Match Error\n");
break;
}
}else{
ans.push_back(*i);
if(ans.size()>1&&ans.substr(ans.size()-2)=="\n\n"){
ans.pop_back();
}
}
}
if(sta.size()>1&&ans!="Match Error\n"){
ans.assign("Unclosed Mark\n");
}
lb1:;
std::cout<<ans;
return 0;
}