# your code goes here 
 
class  A1:
	def  __init__ ( self ,  a,  b) :
		self .a  =  a
		self .b  =  b
		self .c  =  10 
	def  pnt1( self ) :
		for  prop in  dir ( self ) :
			if  prop.startswith ( '__' )  and  prop.endswith ( '__' ) :
				continue 
			if  hasattr ( self ,  prop) :
				print ( prop) 
				print ( getattr ( self ,  prop) ) 
		print ( "A1" ) 
 
class  A2:
	def  __init__ ( self ,  a,  b) :
		self .a  =  a
		self .b  =  b
		self .c  =  12 
		self .d  =  34 
	def  pnt2( self ) :
		for  prop in  dir ( self ) :
			if  prop.startswith ( '__' )  and  prop.endswith ( '__' ) :
				continue 
			if  hasattr ( self ,  prop) :
				print ( prop) 
				print ( getattr ( self ,  prop) ) 
		print ( "A2" ) 
 
 
a =  A1( 5 ,  6 )  # a = 5, b= 6, c = 10 
b =  A2( 1 ,  2 )  # a = 1, b = 2, c = 12, d = 10 
 
def  copy_properties( source,  target) :
    for  prop in  dir ( source) :
        if  prop.startswith ( '__' )  and  prop.endswith ( '__' ) :
            continue   # Skip built-in properties 
        if  hasattr ( target,  prop) :
            print ( 'LOL :' ) 
            print ( prop) 
            setattr ( target,  prop,  getattr ( source,  prop) ) 
 
    print ( "CP" ) 
a.pnt1 ( ) 
b.pnt2 ( ) 
copy_properties( a,  b) 
b.pnt2 ( ) 
# b.pnt1() 
print ( b.d ) 
 
 
				IyB5b3VyIGNvZGUgZ29lcyBoZXJlCgpjbGFzcyBBMToKCWRlZiBfX2luaXRfXyhzZWxmLCBhLCBiKToKCQlzZWxmLmEgPSBhCgkJc2VsZi5iID0gYgoJCXNlbGYuYyA9IDEwCglkZWYgcG50MShzZWxmKToKCQlmb3IgcHJvcCBpbiBkaXIoc2VsZik6CgkJCWlmIHByb3Auc3RhcnRzd2l0aCgnX18nKSBhbmQgcHJvcC5lbmRzd2l0aCgnX18nKToKCQkJCWNvbnRpbnVlCgkJCWlmIGhhc2F0dHIoc2VsZiwgcHJvcCk6CgkJCQlwcmludChwcm9wKQoJCQkJcHJpbnQoZ2V0YXR0cihzZWxmLCBwcm9wKSkKCQlwcmludCgiQTEiKQoJCQpjbGFzcyBBMjoKCWRlZiBfX2luaXRfXyhzZWxmLCBhLCBiKToKCQlzZWxmLmEgPSBhCgkJc2VsZi5iID0gYgoJCXNlbGYuYyA9IDEyCgkJc2VsZi5kID0gMzQKCWRlZiBwbnQyKHNlbGYpOgoJCWZvciBwcm9wIGluIGRpcihzZWxmKToKCQkJaWYgcHJvcC5zdGFydHN3aXRoKCdfXycpIGFuZCBwcm9wLmVuZHN3aXRoKCdfXycpOgoJCQkJY29udGludWUKCQkJaWYgaGFzYXR0cihzZWxmLCBwcm9wKToKCQkJCXByaW50KHByb3ApCgkJCQlwcmludChnZXRhdHRyKHNlbGYsIHByb3ApKQoJCXByaW50KCJBMiIpCiAgICAgICAgICAgIAoKYSA9IEExKDUsIDYpICMgYSA9IDUsIGI9IDYsIGMgPSAxMApiID0gQTIoMSwgMikgIyBhID0gMSwgYiA9IDIsIGMgPSAxMiwgZCA9IDEwCgpkZWYgY29weV9wcm9wZXJ0aWVzKHNvdXJjZSwgdGFyZ2V0KToKICAgIGZvciBwcm9wIGluIGRpcihzb3VyY2UpOgogICAgICAgIGlmIHByb3Auc3RhcnRzd2l0aCgnX18nKSBhbmQgcHJvcC5lbmRzd2l0aCgnX18nKToKICAgICAgICAgICAgY29udGludWUgICMgU2tpcCBidWlsdC1pbiBwcm9wZXJ0aWVzCiAgICAgICAgaWYgaGFzYXR0cih0YXJnZXQsIHByb3ApOgogICAgICAgICAgICBwcmludCgnTE9MIDonKQogICAgICAgICAgICBwcmludChwcm9wKQogICAgICAgICAgICBzZXRhdHRyKHRhcmdldCwgcHJvcCwgZ2V0YXR0cihzb3VyY2UsIHByb3ApKQogICAgICAgICAgICAKICAgIHByaW50KCJDUCIpCmEucG50MSgpCmIucG50MigpCmNvcHlfcHJvcGVydGllcyhhLCBiKQpiLnBudDIoKQojIGIucG50MSgpCnByaW50KGIuZCkK