#include #include #include #include using namespace std; void simulate_stack(const vector &v1, const vector &v2) { const int n = v1.size(); stack s; vector to_print; int i = 0, j = 0; while (j < n) { if (!s.empty() && s.top() == v2[j]) { s.pop(); j++; to_print.push_back("pop"); } else if (i < n) { // s.empty() || s.top() != v2[j] s.push(v1[i++]); to_print.push_back("push"); } else { // i >= n && (s.empty() || s.top() != v2[j]) cout << "-" << endl; return; } } for (const string& op : to_print) { cout << op << endl; } } int main(void) { int n; cin >> n; vector v1(n); vector v2(n); for (int i = 0; i < n; i++) { cin >> v1[i]; } for (int i = 0; i < n; i++) { cin >> v2[i]; } simulate_stack(v1, v2); return 0; }