#include <bits/stdc++.h>   using namespace std;   string s, u;   stack<char> t;   vector<char> mins;   int main() {     cin >> s;     u =   ;     int inicio = 0, tam = s.length();     char ant =  z  + 1;     for (int i = tam - 1; i >= 0; i--) {       ant = min(ant, s[i]);       mins.push_back(ant);     }     reverse(mins.begin(), mins.end());     while (inicio < tam) {       if (t.empty()) {         t.push(s[inicio]);         inicio++;       } else {         if (t.top() <= mins[inicio]) {           u += t.top();           t.pop();         } else {           t.push(s[inicio]);           inicio++;         }       }     }     while (!t.empty()) {       u += t.top();       t.pop();     }     if (inicio < tam) {       u += s[inicio];     }     cout << u <<   n ;   }   