#include <iostream> 
using  namespace  std; 
 
struct  Resource
{ 
	Resource( int  id) 
	{ 
 
		m_id =  id; 
		if ( id ==  3 ) 
		{ 
			throw  "Error during initialize: id can't be 3" ; 
		} 
		std:: cout  <<  "initialize resource with id: "  <<  id <<  std:: endl ; 
 
	} 
 
	~Resource( ) 
	{ 
		std:: cout  <<  "Destroy Resource with id: "  <<  m_id <<  std:: endl ; 
	} 
 
private : 
    int  m_id; 
} ; 
 
struct  ResourceWrapper
{ 
	ResourceWrapper( int  id1, int  id2, int  id3, int  id4, int  id5) 
	:  m_rc1( id1) ,
	  m_rc2( id2) ,
	  m_rc3( id3) ,
	  m_rc4( id4) ,
	  m_rc5( id5) 
	{ 
	} 
 
private : 
   Resource m_rc1; 
   Resource m_rc2; 
   Resource m_rc3; 
   Resource m_rc4; 
   Resource m_rc5; 
} ; 
 
int  main( )  
{ 
 
	{ 
		std:: cout  <<  "without errors:"  <<  std:: endl ; 
		ResourceWrapper rc( 5 ,6 ,7 ,8 ,9 ) ; 
	} 
 
	std:: cout  <<  "=========================="  <<  std:: endl ; 
	try 
	{ 
		std:: cout  <<  "with errors:"  <<  std:: endl ; 
		ResourceWrapper rc( 1 ,2 ,3 ,4 ,5 ) ; 
	} 
	catch ( const  char *  error) 
	{ 
		std:: cout  <<  "Error: "  <<  error <<  std:: endl ; 
	} 
	// your code goes here 
	return  0 ; 
} 
 
				I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFJlc291cmNlCnsKCVJlc291cmNlKGludCBpZCkKCXsKCQkKCQltX2lkID0gaWQ7CgkJaWYoaWQgPT0gMykKCQl7CgkJCXRocm93ICJFcnJvciBkdXJpbmcgaW5pdGlhbGl6ZTogaWQgY2FuJ3QgYmUgMyI7CgkJfQoJCXN0ZDo6Y291dCA8PCAiaW5pdGlhbGl6ZSByZXNvdXJjZSB3aXRoIGlkOiAiIDw8IGlkIDw8IHN0ZDo6ZW5kbDsKCgl9CgkKCX5SZXNvdXJjZSgpCgl7CgkJc3RkOjpjb3V0IDw8ICJEZXN0cm95IFJlc291cmNlIHdpdGggaWQ6ICIgPDwgbV9pZCA8PCBzdGQ6OmVuZGw7Cgl9CgkKcHJpdmF0ZToKICAgIGludCBtX2lkOwp9OwoKc3RydWN0IFJlc291cmNlV3JhcHBlcgp7CglSZXNvdXJjZVdyYXBwZXIoaW50IGlkMSwgaW50IGlkMiwgaW50IGlkMywgaW50IGlkNCwgaW50IGlkNSkKCTogbV9yYzEoaWQxKSwKCSAgbV9yYzIoaWQyKSwKCSAgbV9yYzMoaWQzKSwKCSAgbV9yYzQoaWQ0KSwKCSAgbV9yYzUoaWQ1KQoJewoJfQoJCnByaXZhdGU6CiAgIFJlc291cmNlIG1fcmMxOwogICBSZXNvdXJjZSBtX3JjMjsKICAgUmVzb3VyY2UgbV9yYzM7CiAgIFJlc291cmNlIG1fcmM0OwogICBSZXNvdXJjZSBtX3JjNTsKfTsKCmludCBtYWluKCkgCnsKCQoJewoJCXN0ZDo6Y291dCA8PCAid2l0aG91dCBlcnJvcnM6IiA8PCBzdGQ6OmVuZGw7CgkJUmVzb3VyY2VXcmFwcGVyIHJjKDUsNiw3LDgsOSk7Cgl9CgkKCXN0ZDo6Y291dCA8PCAiPT09PT09PT09PT09PT09PT09PT09PT09PT0iIDw8IHN0ZDo6ZW5kbDsKCXRyeQoJewoJCXN0ZDo6Y291dCA8PCAid2l0aCBlcnJvcnM6IiA8PCBzdGQ6OmVuZGw7CgkJUmVzb3VyY2VXcmFwcGVyIHJjKDEsMiwzLDQsNSk7Cgl9CgljYXRjaChjb25zdCBjaGFyKiBlcnJvcikKCXsKCQlzdGQ6OmNvdXQgPDwgIkVycm9yOiAiIDw8IGVycm9yIDw8IHN0ZDo6ZW5kbDsKCX0KCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXJldHVybiAwOwp9