#include<bits/stdc++.h>
using namespace std;
vector<char> first_unique(vector<char> stream){
unordered_map<char, int> count;
queue<char> q;
vector<char> result;
for(char c: stream){
count[c]++;
q.push(c);
while(!q.empty() && count[q.front()] > 1){
q.pop();
}
if(!q.empty()){
result.push_back(q.front());
}
else result.push_back('#');
}
return result;
}
int main(){
vector<char> input = {'a', 'b', 'c', 'd', 'e'};
vector<char> ans = first_unique(input);
for (char ch : ans) {
cout << ch << " ";
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZlY3RvcjxjaGFyPiBmaXJzdF91bmlxdWUodmVjdG9yPGNoYXI+IHN0cmVhbSl7CiAgICB1bm9yZGVyZWRfbWFwPGNoYXIsIGludD4gY291bnQ7CiAgICBxdWV1ZTxjaGFyPiBxOwogICAgdmVjdG9yPGNoYXI+IHJlc3VsdDsKICAgIGZvcihjaGFyIGM6IHN0cmVhbSl7CiAgICAgICAgY291bnRbY10rKzsKICAgICAgICBxLnB1c2goYyk7CiAgICAgICAgd2hpbGUoIXEuZW1wdHkoKSAmJiBjb3VudFtxLmZyb250KCldID4gMSl7CiAgICAgICAgICAgIHEucG9wKCk7CiAgICAgICAgfQogICAgICAgIGlmKCFxLmVtcHR5KCkpewogICAgICAgICAgICByZXN1bHQucHVzaF9iYWNrKHEuZnJvbnQoKSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgcmVzdWx0LnB1c2hfYmFjaygnIycpOwogICAgfQogICAgcmV0dXJuIHJlc3VsdDsKfQoKaW50IG1haW4oKXsKICAgIHZlY3RvcjxjaGFyPiBpbnB1dCA9IHsnYScsICdiJywgJ2MnLCAnZCcsICdlJ307CiAgICB2ZWN0b3I8Y2hhcj4gYW5zID0gZmlyc3RfdW5pcXVlKGlucHV0KTsKICAgIAogICAgZm9yIChjaGFyIGNoIDogYW5zKSB7CiAgICAgICAgY291dCA8PCBjaCA8PCAiICI7CiAgICB9CgogICAgcmV0dXJuIDA7CiAgICAKfQ==