#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;
}