#include <iostream> 
#include <set> 
#include <stack> 
#include <vector> 
using namespace std; 
 
int main(){ 
    stack <int> s; 
    vector<int> v = {2, 5, 8, 9, 3, 5}; 
    for(auto value : v){ 
        if(s.empty()){ 
            s.push(value); 
        } 
        else{ 
            while(s.top()<value and !s.empty()){ 
                s.pop(); 
            } 
            s.push(value); 
        } 
    } 
    while(!s.empty()){ 
        cout<<s.top(); 
        s.pop(); 
    } 
}