- #include <algorithm> 
- #include <vector> 
- #include <iostream> 
-   
- using namespace std; 
-   
- using line_t = pair<int, int>; 
-   
- vector<line_t> lines; 
- vector<line_t> solution; 
-   
- void print( size_t i ) 
- { 
- 	solution.push_back( lines[i] ); 
-   
- 	for( size_t j = i + 1; j < lines.size(); ++j ) { 
- 		if( lines[j].first >= lines[i].second ) { 
- 			print( j ); 
- 		} 
- 	} 
-   
- 	for( auto& p : solution ) { 
- 		cout << "[" << p.first << "-" << p.second << "] "; 
- 	} 
- 	cout << endl; 
-   
- 	solution.pop_back(); 
- } 
-   
- int main() { 
- 	size_t n; 
- 	cin >> n; 
-   
- 	lines.resize( n ); 
- 	for( auto& p : lines ) { 
- 		cin >> p.first >> p.second; 
- 	} 
- 	sort( lines.begin(), lines.end() ); 
-   
- 	for( size_t i = 0; i < n; ++i ) { 
- 		print( i ); 
- 	} 
- } 
				I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnVzaW5nIGxpbmVfdCA9IHBhaXI8aW50LCBpbnQ+OwoKdmVjdG9yPGxpbmVfdD4gbGluZXM7CnZlY3RvcjxsaW5lX3Q+IHNvbHV0aW9uOwoKdm9pZCBwcmludCggc2l6ZV90IGkgKQp7Cglzb2x1dGlvbi5wdXNoX2JhY2soIGxpbmVzW2ldICk7CgkKCWZvciggc2l6ZV90IGogPSBpICsgMTsgaiA8IGxpbmVzLnNpemUoKTsgKytqICkgewoJCWlmKCBsaW5lc1tqXS5maXJzdCA+PSBsaW5lc1tpXS5zZWNvbmQgKSB7CgkJCXByaW50KCBqICk7CgkJfQoJfQoJCglmb3IoIGF1dG8mIHAgOiBzb2x1dGlvbiApIHsKCQljb3V0IDw8ICJbIiA8PCBwLmZpcnN0IDw8ICItIiA8PCBwLnNlY29uZCA8PCAiXSAiOwoJfQoJY291dCA8PCBlbmRsOwoJCglzb2x1dGlvbi5wb3BfYmFjaygpOwp9CgppbnQgbWFpbigpIHsKCXNpemVfdCBuOwoJY2luID4+IG47CgkKCWxpbmVzLnJlc2l6ZSggbiApOwoJZm9yKCBhdXRvJiBwIDogbGluZXMgKSB7CgkJY2luID4+IHAuZmlyc3QgPj4gcC5zZWNvbmQ7Cgl9Cglzb3J0KCBsaW5lcy5iZWdpbigpLCBsaW5lcy5lbmQoKSApOwoJCglmb3IoIHNpemVfdCBpID0gMDsgaSA8IG47ICsraSApIHsKCQlwcmludCggaSApOwoJfQp9