#include<bits/stdc++.h>
using namespace std;
string s;
stack<char>stk;
char t[200005];
int main()
{
cin>>s;
t[s.size()]=127;
for(int i=s.size()-1;i>=0;i--)
{
if(s[i]<t[i+1]) t[i]=s[i];
else t[i]=t[i+1];
}
for(int i=0;i<s.size();i++)
{
stk.push(s[i]);
while(stk.size()==1&&stk.top()<=t[i+1])
{
cout<<stk.top();
stk.pop();
}
}
return 0;
}