#include <iostream>
#include <vector>
using namespace std;
vector<int> res;
void helper(pair<int,int>& interval) {
int start=interval.first;
int end=interval.second;
vector<int> ans;
for(int i=0; i<res.size(); i++) {
for(int j=start; j<=end; j++) {
ans.push_back(res[i]*10+j);
}
}
res=ans;
}
vector<int> generatePermutation(vector<pair<int,int>>& intervals) {
if(intervals.empty()) return res;
pair<int, int> firstInt=intervals[0];
for(int i=firstInt.first; i<=firstInt.second; i++) {
res.push_back(i);
}
for(int i=1; i<intervals.size(); i++) {
helper(intervals[i]);
}
return res;
}
int main() {
vector<pair<int,int>> v;
v.push_back({2,6});
v.push_back({4,5});
v.push_back({1,5});
vector<int> ans=generatePermutation(v);
for(auto& each: ans) cout<<each<<" ";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdmVjdG9yPGludD4gcmVzOwoKdm9pZCBoZWxwZXIocGFpcjxpbnQsaW50PiYgaW50ZXJ2YWwpIHsKICBpbnQgc3RhcnQ9aW50ZXJ2YWwuZmlyc3Q7CiAgaW50IGVuZD1pbnRlcnZhbC5zZWNvbmQ7CiAgdmVjdG9yPGludD4gYW5zOwogIAogIGZvcihpbnQgaT0wOyBpPHJlcy5zaXplKCk7IGkrKykgewogICAgZm9yKGludCBqPXN0YXJ0OyBqPD1lbmQ7IGorKykgewogICAgICBhbnMucHVzaF9iYWNrKHJlc1tpXSoxMCtqKTsKICAgIH0KICB9CiAgCiAgcmVzPWFuczsKfQoKdmVjdG9yPGludD4gZ2VuZXJhdGVQZXJtdXRhdGlvbih2ZWN0b3I8cGFpcjxpbnQsaW50Pj4mIGludGVydmFscykgewogIGlmKGludGVydmFscy5lbXB0eSgpKSByZXR1cm4gcmVzOwogIAogIHBhaXI8aW50LCBpbnQ+IGZpcnN0SW50PWludGVydmFsc1swXTsKICBmb3IoaW50IGk9Zmlyc3RJbnQuZmlyc3Q7IGk8PWZpcnN0SW50LnNlY29uZDsgaSsrKSB7CiAgICByZXMucHVzaF9iYWNrKGkpOwogIH0KIAogIGZvcihpbnQgaT0xOyBpPGludGVydmFscy5zaXplKCk7IGkrKykgeyAKICAgIGhlbHBlcihpbnRlcnZhbHNbaV0pOwogIH0KICAKICByZXR1cm4gcmVzOwp9CgoKaW50IG1haW4oKSB7Cgl2ZWN0b3I8cGFpcjxpbnQsaW50Pj4gdjsKCXYucHVzaF9iYWNrKHsyLDZ9KTsKCXYucHVzaF9iYWNrKHs0LDV9KTsKCXYucHVzaF9iYWNrKHsxLDV9KTsKCgl2ZWN0b3I8aW50PiBhbnM9Z2VuZXJhdGVQZXJtdXRhdGlvbih2KTsKCQoJZm9yKGF1dG8mIGVhY2g6IGFucykgY291dDw8ZWFjaDw8IiAiOwoKCXJldHVybiAwOwp9