class NestedIterator {
public:
list<int>v1;
void fill(list<int>&v1, vector<NestedInteger>&ni){
for(auto i:ni){
if(i.isInteger()){
v1.push_back(i.getInteger());
}
fill(v1,i.getList());
}
return;
}
NestedIterator(vector<NestedInteger> &nestedList) {
for(auto i:nestedList){
if(i.isInteger())
v1.push_back(i.getInteger());
else{
fill(v1,i.getList());
/*vector<NestedInteger>ni=i.getList();
for(auto j:ni){
v1.push_back(j.getInteger());
}*/
}
}
}
int next() {
int ans=v1.front();
v1.pop_front();
return ans;
}
bool hasNext() {
return v1.size()>=1;
}
};