#include <iostream>
#include <string>
using namespace std;
bool isMyStackHasTop(string myStack, int myStackSize, char top)
{
if (myStackSize == 0) return false;
else if (myStack[myStackSize - 1] == top) return true;
else return false;
}
int main()
{
string input;
while (cin >> input)
{
int size = input.size(); //總Size
char top = size + 64;
int inputSize = input.size();
string myStack = "";
int myStackSize = myStack.size();
string resultStack = "";
int resultStackSize = resultStack.size();
string result[52];
int count = 0;
while (1)
{
if (isMyStackHasTop(myStack, myStackSize, top))
{
resultStack += top;
resultStackSize++;
myStack[myStackSize - 1] = 0;
myStackSize--;
if (myStackSize == 0)myStack = "";
result[count] = "push ";
result[count] += top;
result[count] += ' ';
top--;
}
else
{
if (inputSize == 0 && !isMyStackHasTop(myStack, myStackSize, top)) break;
bool j = true;
for (int i = 0; i < myStack.size(); i++)
{
if (myStack[i] == 0)
{
myStack[i] = input[inputSize - 1];
j = false;
break;
}
}
if (j) myStack += input[inputSize - 1];;
myStackSize++;
input[inputSize - 1] = 0;
inputSize--;
result[count] = "pop ";
result[count] += myStack[myStackSize - 1];
result[count] += ' ';
}
if (count == 2 * size - 1) break;
count++;
}
string test = "";
for (int i = size; i > 0; i--)
{
test += (64 + i);
}
//cout << test;
if (test == resultStack)
{
cout << "YES\n";
for (int i = 51; i >= 0; i--)
{
if (result[i] != "")cout << result[i];
}
cout << "\n";
}
else cout << "No\n";
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmJvb2wgaXNNeVN0YWNrSGFzVG9wKHN0cmluZyBteVN0YWNrLCBpbnQgbXlTdGFja1NpemUsIGNoYXIgdG9wKQp7CglpZiAobXlTdGFja1NpemUgPT0gMCkgcmV0dXJuIGZhbHNlOwoJZWxzZSBpZiAobXlTdGFja1tteVN0YWNrU2l6ZSAtIDFdID09IHRvcCkgcmV0dXJuIHRydWU7CgllbHNlIHJldHVybiBmYWxzZTsKfQoKaW50IG1haW4oKQp7CglzdHJpbmcgaW5wdXQ7CgoJd2hpbGUgKGNpbiA+PiBpbnB1dCkKCXsKCQlpbnQgc2l6ZSA9IGlucHV0LnNpemUoKTsgLy/nuL1TaXplCgoJCWNoYXIgdG9wID0gc2l6ZSArIDY0OwoKCQlpbnQgaW5wdXRTaXplID0gaW5wdXQuc2l6ZSgpOwoJCXN0cmluZyBteVN0YWNrID0gIiI7CgkJaW50IG15U3RhY2tTaXplID0gbXlTdGFjay5zaXplKCk7CgkJc3RyaW5nIHJlc3VsdFN0YWNrID0gIiI7CgkJaW50IHJlc3VsdFN0YWNrU2l6ZSA9IHJlc3VsdFN0YWNrLnNpemUoKTsKCgkJc3RyaW5nIHJlc3VsdFs1Ml07CgoJCWludCBjb3VudCA9IDA7CgoJCXdoaWxlICgxKQoJCXsKCQkJaWYgKGlzTXlTdGFja0hhc1RvcChteVN0YWNrLCBteVN0YWNrU2l6ZSwgdG9wKSkKCQkJewoJCQkJcmVzdWx0U3RhY2sgKz0gdG9wOwoJCQkJcmVzdWx0U3RhY2tTaXplKys7CgkJCQlteVN0YWNrW215U3RhY2tTaXplIC0gMV0gPSAwOwoJCQkJbXlTdGFja1NpemUtLTsKCQkJCWlmIChteVN0YWNrU2l6ZSA9PSAwKW15U3RhY2sgPSAiIjsKCgkJCQlyZXN1bHRbY291bnRdID0gInB1c2ggIjsKCQkJCXJlc3VsdFtjb3VudF0gKz0gdG9wOwoJCQkJcmVzdWx0W2NvdW50XSArPSAnICc7CgoJCQkJdG9wLS07CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlpZiAoaW5wdXRTaXplID09IDAgJiYgIWlzTXlTdGFja0hhc1RvcChteVN0YWNrLCBteVN0YWNrU2l6ZSwgdG9wKSkgYnJlYWs7CgkJCQlib29sIGogPSB0cnVlOwoJCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBteVN0YWNrLnNpemUoKTsgaSsrKQoJCQkJewoJCQkJCWlmIChteVN0YWNrW2ldID09IDApCgkJCQkJewoJCQkJCQlteVN0YWNrW2ldID0gaW5wdXRbaW5wdXRTaXplIC0gMV07CgkJCQkJCWogPSBmYWxzZTsKCQkJCQkJYnJlYWs7CgkJCQkJfQoJCQkJfQoJCQkJaWYgKGopIG15U3RhY2sgKz0gaW5wdXRbaW5wdXRTaXplIC0gMV07OwoJCQkJbXlTdGFja1NpemUrKzsKCQkJCWlucHV0W2lucHV0U2l6ZSAtIDFdID0gMDsKCQkJCWlucHV0U2l6ZS0tOwoJCQkJCgkJCQlyZXN1bHRbY291bnRdID0gInBvcCAiOwoJCQkJcmVzdWx0W2NvdW50XSArPSBteVN0YWNrW215U3RhY2tTaXplIC0gMV07CgkJCQlyZXN1bHRbY291bnRdICs9ICcgJzsKCQkJfQoKCQkJaWYgKGNvdW50ID09IDIgKiBzaXplIC0gMSkgYnJlYWs7CgkJCWNvdW50Kys7CgkJfQoJCXN0cmluZyB0ZXN0ID0gIiI7CgkJZm9yIChpbnQgaSA9IHNpemU7IGkgPiAwOyBpLS0pCgkJewoJCQl0ZXN0ICs9ICg2NCArIGkpOwoJCX0KCQkvL2NvdXQgPDwgdGVzdDsKCQlpZiAodGVzdCA9PSByZXN1bHRTdGFjaykKCQl7CgkJCWNvdXQgPDwgIllFU1xuIjsKCQkJZm9yIChpbnQgaSA9IDUxOyBpID49IDA7IGktLSkKCQkJewoJCQkJaWYgKHJlc3VsdFtpXSAhPSAiIiljb3V0IDw8IHJlc3VsdFtpXTsKCQkJfQoJCQljb3V0IDw8ICJcbiI7CgkJfQoJCWVsc2UgY291dCA8PCAiTm9cbiI7Cgl9Cn0=