Merge pull request #11 from ahassany/links_status

Add reading Mininet links status to the driver
diff --git a/TestON/drivers/common/cli/emulator/mininetclidriver.py b/TestON/drivers/common/cli/emulator/mininetclidriver.py
index 8ce53c8..a003f1b 100644
--- a/TestON/drivers/common/cli/emulator/mininetclidriver.py
+++ b/TestON/drivers/common/cli/emulator/mininetclidriver.py
@@ -676,8 +676,11 @@
         else:
             main.log.error("Connection failed to the Mininet host")
     
-    def check_flows(self, sw):
-        command = "sh ovs-ofctl dump-flows "+str(sw)
+    def check_flows(self, sw, dump_format=None):
+        if dump_format:
+          command = "sh ovs-ofctl -F " + dump_format + " dump-flows " + str(sw)
+        else:
+          command = "sh ovs-ofctl dump-flows "+str(sw)
         try:
             response=self.execute(cmd=command,prompt="mininet>",timeout=10)
             return response
diff --git a/TestON/drivers/common/cli/onosclidriver.py b/TestON/drivers/common/cli/onosclidriver.py
index db01cc2..7878378 100644
--- a/TestON/drivers/common/cli/onosclidriver.py
+++ b/TestON/drivers/common/cli/onosclidriver.py
@@ -1195,7 +1195,7 @@
                 self.handle.sendline("git pull " + comp1)
            
             uptodate = 0
-            i=self.handle.expect(['fatal','Username\sfor\s(.*):\s','\sfile(s*) changed,\s',pexpect.TIMEOUT,'Already up-to-date','Aborting','You\sare\snot\scurrently\son\sa\sbranch'],timeout=1700)
+            i=self.handle.expect(['fatal','Username\sfor\s(.*):\s','\sfile(s*) changed,\s',pexpect.TIMEOUT,'Already up-to-date','Aborting','You\sare\snot\scurrently\son\sa\sbranch', 'You\sasked\sme\sto\spull\swithout\stelling\sme\swhich\sbranch\syou'],timeout=1700)
             #debug
            #main.log.report(self.name +": \n"+"git pull response: " + str(self.handle.before) + str(self.handle.after))
             if i==0:
@@ -1221,6 +1221,9 @@
             elif i==6:
                 main.log.info(self.name + ": Git Pull - You are not currently on a branch so git pull failed!")
                 return main.ERROR
+            elif i==7:
+                main.log.info(self.name + ": Git Pull - You have not configured an upstream branch to pull from. Git pull failed!")
+                return main.ERROR
             else:
                 main.log.error(self.name + ": Git Pull - Unexpected response, check for pull errors")
                 return main.ERROR
@@ -1471,14 +1474,11 @@
                 return (retcode, "Rest API has an error", retport)
             else:
                 for host in enumerate(parsedResult):
-                    print host
                     if (host[1] != []):
                         try:
                             foundHost = host[1]['mac']
                         except:
                             print "Error in detecting MAC address."
-                        print foundHost
-                        print hostMAC
                         if foundHost == hostMAC:
                             for switch in enumerate(host[1]['attachmentPoints']):
                                 retswitch.append(switch[1]['dpid'])
@@ -1569,3 +1569,84 @@
             main.log.info(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::")
             main.cleanup()
             main.exit()
+
+
+    def block_peer(self, ip_address):
+        '''
+        Block traffic to the destination IP address.
+        '''
+        try:
+            for chain in ['INPUT', 'OUTPUT']:
+                check_block_cmd = "sudo iptables -L %s -n | grep \"DROP.*%s\"" % (chain, ip_address)
+                add_block_cmd = "sudo iptables -I %s 1 -s %s -j DROP" % (chain, ip_address)
+                response1 = self.execute(cmd=check_block_cmd,prompt="\$",timeout=10)
+                if ip_address in response1:
+                    main.log.error("Already blocked: %s" % response1)
+                    return main.TRUE
+                response2 = self.execute(cmd=add_block_cmd,prompt="\$",timeout=10)
+                main.log.info("add_block_cmd: %s" % response2)
+                return main.TRUE
+        except pexpect.EOF:
+            main.log.error(self.name + ": EOF exception found")
+            main.log.error(self.name + ":     " + self.handle.before)
+            main.cleanup()
+            main.exit()
+        except:
+            main.log.info(self.name + ":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::")
+            main.log.error( traceback.print_exc() )
+            main.log.info(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::")
+            main.cleanup()
+            main.exit()
+
+    def unblock_peer(self, ip_address):
+        '''
+        Unblock traffic to the destination IP address.
+        '''
+        try:
+            for chain in ['INPUT', 'OUTPUT']:
+                # To make sure all rules are deleted in case there were multiple
+                # installed in the iptables
+                max_iterations = 10
+                for i in range(max_iterations):
+                    check_block_cmd = "sudo iptables -L %s -n | grep \"DROP.*%s\"" % (chain, ip_address)
+                    remove_block_cmd = "sudo iptables -D %s -s %s -j DROP" % (chain, ip_address)
+                    response1 = self.execute(cmd=check_block_cmd,prompt="\$",timeout=10)
+                    if ip_address not in response1:
+                        main.log.warn("Already unblocked: %s" % response1)
+                        return main.TRUE
+                    response2 = self.execute(cmd=remove_block_cmd,prompt="\$",timeout=10)
+                    main.log.info("remove_block_cmd: %s" % response2)
+                return main.TRUE
+        except pexpect.EOF:
+            main.log.error(self.name + ": EOF exception found")
+            main.log.error(self.name + ":     " + self.handle.before)
+            main.cleanup()
+            main.exit()
+        except:
+            main.log.info(self.name + ":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::")
+            main.log.error( traceback.print_exc() )
+            main.log.info(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::")
+            main.cleanup()
+            main.exit()
+
+
+    def unblock_all(self):
+        '''
+        Remove all controller block rules
+        '''
+        try:
+            unblock_cmd = "sudo iptables --flush"
+            response = self.execute(cmd=unblock_cmd,prompt="\$", timeout=10)
+            return main.TRUE
+        except pexpect.EOF:
+            main.log.error(self.name + ": EOF exception found")
+            main.log.error(self.name + ":     " + self.handle.before)
+            main.cleanup()
+            main.exit()
+        except:
+            main.log.info(self.name + ":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::")
+            main.log.error( traceback.print_exc() )
+            main.log.info(":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::")
+            main.cleanup()
+            main.exit()
+        return main.ERROR
diff --git a/TestON/tests/RCOnosCHO4nodes/RCOnosCHO4nodes.params b/TestON/tests/RCOnosCHO4nodes/RCOnosCHO4nodes.params
index 4d83c41..4ac9aea 100644
--- a/TestON/tests/RCOnosCHO4nodes/RCOnosCHO4nodes.params
+++ b/TestON/tests/RCOnosCHO4nodes/RCOnosCHO4nodes.params
@@ -1,5 +1,5 @@
 <PARAMS>
-    <testcases>1,2,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,9,8,9,21,9,61,9,71,9,3,9,4,9,5,9,6,9,7,3,4,5,6,7</testcases>
+    <testcases>1,2,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,9,8,9,3,9,4,9,5,9,6,9,7,3,4,5,6,7</testcases>
     <pingSleep>1</pingSleep>
     <pingAttempts>60</pingAttempts>
     <CASE1>       
@@ -18,14 +18,23 @@
     <CTRL>
         <ip1>10.128.5.1</ip1>
         <port1>6633</port1>
+        <restPort1>8080</restPort1>
         <ip2>10.128.5.2</ip2>
         <port2>6633</port2>
+        <restPort2>8080</restPort2>
         <ip3>10.128.5.3</ip3>
         <port3>6633</port3>
+        <restPort3>8080</restPort3>
         <ip4>10.128.5.4</ip4>
         <port4>6633</port4>
+        <restPort4>8080</restPort4>
     </CTRL>
     <RestIP> 10.128.5.1 </RestIP>
+    <INTENTS>
+        <intentPort>8080</intentPort>
+        <intentURL>wm/onos/intent</intentURL>
+    </INTENTS>
+    <TopoRest>/wm/onos/topology</TopoRest>
     <NR_Switches>25</NR_Switches>
     <NR_Links>50</NR_Links>
     <YANK>
diff --git a/TestON/tests/RCOnosCHO4nodes/RCOnosCHO4nodes.py b/TestON/tests/RCOnosCHO4nodes/RCOnosCHO4nodes.py
index 3543b65..fdc5f57 100644
--- a/TestON/tests/RCOnosCHO4nodes/RCOnosCHO4nodes.py
+++ b/TestON/tests/RCOnosCHO4nodes/RCOnosCHO4nodes.py
@@ -9,10 +9,10 @@
 #Tests the startup of Zookeeper1, RamCloud1, and ONOS1 to be certain that all started up successfully
     def CASE1(self,main) :  #Check to be sure ZK, Cass, and ONOS are up, then get ONOS version
         import time
-        main.ONOS1.handle.sendline("cp ~/onos.properties.reactive ~/ONOS/conf/onos.properties")
-        main.ONOS2.handle.sendline("cp ~/onos.properties.reactive ~/ONOS/conf/onos.properties")
-        main.ONOS3.handle.sendline("cp ~/onos.properties.reactive ~/ONOS/conf/onos.properties")
-        main.ONOS4.handle.sendline("cp ~/onos.properties.reactive ~/ONOS/conf/onos.properties")
+        main.ONOS1.handle.sendline("cp ~/onos.properties.proactive ~/ONOS/conf/onos.properties")
+        main.ONOS2.handle.sendline("cp ~/onos.properties.proactive ~/ONOS/conf/onos.properties")
+        main.ONOS3.handle.sendline("cp ~/onos.properties.proactive ~/ONOS/conf/onos.properties")
+        main.ONOS4.handle.sendline("cp ~/onos.properties.proactive ~/ONOS/conf/onos.properties")
 
         main.ONOS1.stop_all()
         main.ONOS2.stop_all()
@@ -187,21 +187,68 @@
                 main.ONOS3.check_status_report(main.params['RestIP'],main.params['NR_Switches'],main.params['NR_Links'])
                 main.ONOS4.check_status_report(main.params['RestIP'],main.params['NR_Switches'],main.params['NR_Links'])
                 break
-        utilities.assert_equals(expect=main.TRUE,actual=result,onpass="Topology check pass",onfail="Topology check FAIL")
 
+        ####New Topo Check
+        ctrls = []
+        count = 1
+        while True:
+            temp = ()
+            if ('ip' + str(count)) in main.params['CTRL']:
+                temp = temp + (getattr(main,('ONOS' + str(count))),)
+                temp = temp + ("ONOS"+str(count),)
+                temp = temp + (main.params['CTRL']['ip'+str(count)],)
+                temp = temp + (eval(main.params['CTRL']['port'+str(count)]),)
+                ctrls.append(temp)
+                count = count + 1
+            else:
+                break
+        from sts.topology.teston_topology import TestONTopology # assumes that sts is already in you PYTHONPATH
+        global MNTopo
+        MNTopo = TestONTopology(main.Mininet1, ctrls) # can also add Intent API info for intent operations
+
+
+        topo_result = main.TRUE
+        for n in range(1,5):
+            temp_result = main.Mininet1.compare_topo(MNTopo, main.ONOS1.get_json(main.params['CTRL']['ip'+str(n)]+":"+main.params['CTRL']['restPort'+str(n)]+main.params['TopoRest']))
+            topo_result = topo_result and temp_result
+        print "Topoology check results: " + str(topo_result) 
+        ###End New Topo Check
+        utilities.assert_equals(expect=main.TRUE,actual=result,onpass="Topology check pass",onfail="Topology check FAIL")
+       
         main.case("Taking care of these flows!") 
         main.step("Cleaning out any leftover flows...")
+        intentIP = main.params['CTRL']['ip1']
+        intentPort=main.params['INTENTS']['intentPort']
+        intentURL=main.params['INTENTS']['intentURL']
         #main.ONOS1.delete_flow("all")
-        main.ONOS1.rm_intents()
+        main.ONOS1.del_intent(intentIP=intentIP)
         time.sleep(5)
-        main.ONOS1.purge_intents()
         strtTime = time.time()
-        main.ONOS1.add_intents()
-        main.case("Checking flows with pings")
+        main.step("Adding Intents")
+        count=1
+        for i in range(6,16):
+            srcMac = '00:00:00:00:00:' + str(hex(i)[2:]).zfill(2)
+            dstMac = '00:00:00:00:00:'+str(hex(i+10)[2:])
+            srcDPID = '00:00:00:00:00:00:10:'+str(i).zfill(2)
+            dstDPID= '00:00:00:00:00:00:20:' +str(i+25)
+            main.ONOS1.add_intent(intent_id=str(count),src_dpid=srcDPID,dst_dpid=dstDPID,
+                    src_mac=srcMac,dst_mac=dstMac,intentIP=intentIP,intentPort=intentPort,
+                    intentURL=intentURL)
+            count=count +1
+            dstDPID = '00:00:00:00:00:00:10:'+str(i).zfill(2)
+            srcDPID= '00:00:00:00:00:00:20:' +str(i+25)
+            dstMac = '00:00:00:00:00:' + str(hex(i)[2:]).zfill(2)
+            srcMac = '00:00:00:00:00:'+str(hex(i+10)[2:])
+            main.ONOS1.add_intent(intent_id=str(count),src_dpid=srcDPID,dst_dpid=dstDPID,
+                    src_mac=srcMac,dst_mac=dstMac,intentIP=intentIP,intentPort=intentPort,
+                    intentURL=intentURL)
+            count=count +1
+        main.step("Checking flows with pings")
         
         pingAttempts = main.params['pingAttempts']
         pingSleep = main.params['pingSleep']
 
+
         count = 1
         i = 6
         while i < 16 :
@@ -277,6 +324,31 @@
                 main.ONOS3.check_status_report(main.params['RestIP'],main.params['NR_Switches'],main.params['NR_Links'])
                 main.ONOS4.check_status_report(main.params['RestIP'],main.params['NR_Switches'],main.params['NR_Links'])
                 break
+        ####New Topo Check
+        ctrls = []
+        count = 1
+        while True:
+            temp = ()
+            if ('ip' + str(count)) in main.params['CTRL']:
+                temp = temp + (getattr(main,('ONOS' + str(count))),)
+                temp = temp + ("ONOS"+str(count),)
+                temp = temp + (main.params['CTRL']['ip'+str(count)],)
+                temp = temp + (eval(main.params['CTRL']['port'+str(count)]),)
+                ctrls.append(temp)
+                count = count + 1
+            else:
+                break
+        from sts.topology.teston_topology import TestONTopology # assumes that sts is already in you PYTHONPATH
+        global MNTopo
+        MNTopo = TestONTopology(main.Mininet1, ctrls) # can also add Intent API info for intent operations
+
+
+        topo_result = main.TRUE
+        for n in range(1,5):
+            temp_result = main.Mininet1.compare_topo(MNTopo, main.ONOS1.get_json(main.params['CTRL']['ip'+str(n)]+":"+main.params['CTRL']['restPort'+str(n)]+main.params['TopoRest']))
+            topo_result = topo_result and temp_result
+        print "Topoology check results: " + str(topo_result) 
+        ###End New Topo Check
         utilities.assert_equals(expect=main.TRUE,actual=result,onpass="Topology check pass",onfail="Topology check FAIL")
 
         pingAttempts = main.params['pingAttempts']
@@ -338,6 +410,31 @@
                 main.ONOS3.check_status_report(main.params['RestIP'],main.params['NR_Switches'],main.params['NR_Links'])
                 main.ONOS4.check_status_report(main.params['RestIP'],main.params['NR_Switches'],main.params['NR_Links'])
                 break
+        ####New Topo Check
+        ctrls = []
+        count = 1
+        while True:
+            temp = ()
+            if ('ip' + str(count)) in main.params['CTRL']:
+                temp = temp + (getattr(main,('ONOS' + str(count))),)
+                temp = temp + ("ONOS"+str(count),)
+                temp = temp + (main.params['CTRL']['ip'+str(count)],)
+                temp = temp + (eval(main.params['CTRL']['port'+str(count)]),)
+                ctrls.append(temp)
+                count = count + 1
+            else:
+                break
+        from sts.topology.teston_topology import TestONTopology # assumes that sts is already in you PYTHONPATH
+        global MNTopo
+        MNTopo = TestONTopology(main.Mininet1, ctrls) # can also add Intent API info for intent operations
+
+
+        topo_result = main.TRUE
+        for n in range(1,5):
+            temp_result = main.Mininet1.compare_topo(MNTopo, main.ONOS1.get_json(main.params['CTRL']['ip'+str(n)]+":"+main.params['CTRL']['restPort'+str(n)]+main.params['TopoRest']))
+            topo_result = topo_result and temp_result
+        print "Topoology check results: " + str(topo_result) 
+        ###End New Topo Check
         utilities.assert_equals(expect=main.TRUE,actual=result,onpass="Topology check pass",onfail="Topology check FAIL")
 
         pingAttempts = main.params['pingAttempts']
@@ -395,6 +492,31 @@
                 main.ONOS3.check_status_report(main.params['RestIP'],main.params['NR_Switches'],str(int(main.params['NR_Links'])-2))
                 main.ONOS4.check_status_report(main.params['RestIP'],main.params['NR_Switches'],str(int(main.params['NR_Links'])-2))
                 break
+        ####New Topo Check
+        ctrls = []
+        count = 1
+        while True:
+            temp = ()
+            if ('ip' + str(count)) in main.params['CTRL']:
+                temp = temp + (getattr(main,('ONOS' + str(count))),)
+                temp = temp + ("ONOS"+str(count),)
+                temp = temp + (main.params['CTRL']['ip'+str(count)],)
+                temp = temp + (eval(main.params['CTRL']['port'+str(count)]),)
+                ctrls.append(temp)
+                count = count + 1
+            else:
+                break
+        from sts.topology.teston_topology import TestONTopology # assumes that sts is already in you PYTHONPATH
+        global MNTopo
+        MNTopo = TestONTopology(main.Mininet1, ctrls) # can also add Intent API info for intent operations
+
+
+        topo_result = main.TRUE
+        for n in range(1,5):
+            temp_result = main.Mininet1.compare_topo(MNTopo, main.ONOS1.get_json(main.params['CTRL']['ip'+str(n)]+":"+main.params['CTRL']['restPort'+str(n)]+main.params['TopoRest']))
+            topo_result = topo_result and temp_result
+        print "Topoology check results: " + str(topo_result) 
+        ###End New Topo Check
         utilities.assert_equals(expect=main.TRUE,actual=result1,onpass="Topology check pass",onfail="Topology check FAIL")
 
         pingAttempts = main.params['pingAttempts']
@@ -452,6 +574,31 @@
                 main.ONOS3.check_status_report(main.params['RestIP'],main.params['NR_Switches'],main.params['NR_Links'])
                 main.ONOS4.check_status_report(main.params['RestIP'],main.params['NR_Switches'],main.params['NR_Links'])
                 break
+        ####New Topo Check
+        ctrls = []
+        count = 1
+        while True:
+            temp = ()
+            if ('ip' + str(count)) in main.params['CTRL']:
+                temp = temp + (getattr(main,('ONOS' + str(count))),)
+                temp = temp + ("ONOS"+str(count),)
+                temp = temp + (main.params['CTRL']['ip'+str(count)],)
+                temp = temp + (eval(main.params['CTRL']['port'+str(count)]),)
+                ctrls.append(temp)
+                count = count + 1
+            else:
+                break
+        from sts.topology.teston_topology import TestONTopology # assumes that sts is already in you PYTHONPATH
+        global MNTopo
+        MNTopo = TestONTopology(main.Mininet1, ctrls) # can also add Intent API info for intent operations
+
+
+        topo_result = main.TRUE
+        for n in range(1,5):
+            temp_result = main.Mininet1.compare_topo(MNTopo, main.ONOS1.get_json(main.params['CTRL']['ip'+str(n)]+":"+main.params['CTRL']['restPort'+str(n)]+main.params['TopoRest']))
+            topo_result = topo_result and temp_result
+        print "Topoology check results: " + str(topo_result) 
+        ###End New Topo Check
         utilities.assert_equals(expect=main.TRUE,actual=result1,onpass="Topology check pass",onfail="Topology check FAIL")
 
         pingAttempts = main.params['pingAttempts']
@@ -509,6 +656,31 @@
                 main.ONOS3.check_status_report(main.params['RestIP'],main.params['NR_Switches'],main.params['NR_Links'])
                 main.ONOS4.check_status_report(main.params['RestIP'],main.params['NR_Switches'],main.params['NR_Links'])
                 break
+        ####New Topo Check
+        ctrls = []
+        count = 1
+        while True:
+            temp = ()
+            if ('ip' + str(count)) in main.params['CTRL']:
+                temp = temp + (getattr(main,('ONOS' + str(count))),)
+                temp = temp + ("ONOS"+str(count),)
+                temp = temp + (main.params['CTRL']['ip'+str(count)],)
+                temp = temp + (eval(main.params['CTRL']['port'+str(count)]),)
+                ctrls.append(temp)
+                count = count + 1
+            else:
+                break
+        from sts.topology.teston_topology import TestONTopology # assumes that sts is already in you PYTHONPATH
+        global MNTopo
+        MNTopo = TestONTopology(main.Mininet1, ctrls) # can also add Intent API info for intent operations
+
+
+        topo_result = main.TRUE
+        for n in range(1,5):
+            temp_result = main.Mininet1.compare_topo(MNTopo, main.ONOS1.get_json(main.params['CTRL']['ip'+str(n)]+":"+main.params['CTRL']['restPort'+str(n)]+main.params['TopoRest']))
+            topo_result = topo_result and temp_result
+        print "Topoology check results: " + str(topo_result) 
+        ###End New Topo Check
         utilities.assert_equals(expect=main.TRUE,actual=result,onpass="Topology check pass",onfail="Topology check FAIL")
 
         pingAttempts = main.params['pingAttempts']
@@ -573,6 +745,31 @@
                 main.ONOS3.check_status_report(main.params['RestIP'],main.params['NR_Switches'],str(int(main.params['NR_Links'])-2))
                 main.ONOS4.check_status_report(main.params['RestIP'],main.params['NR_Switches'],str(int(main.params['NR_Links'])-2))
                 break
+        ####New Topo Check
+        ctrls = []
+        count = 1
+        while True:
+            temp = ()
+            if ('ip' + str(count)) in main.params['CTRL']:
+                temp = temp + (getattr(main,('ONOS' + str(count))),)
+                temp = temp + ("ONOS"+str(count),)
+                temp = temp + (main.params['CTRL']['ip'+str(count)],)
+                temp = temp + (eval(main.params['CTRL']['port'+str(count)]),)
+                ctrls.append(temp)
+                count = count + 1
+            else:
+                break
+        from sts.topology.teston_topology import TestONTopology # assumes that sts is already in you PYTHONPATH
+        global MNTopo
+        MNTopo = TestONTopology(main.Mininet1, ctrls) # can also add Intent API info for intent operations
+
+
+        topo_result = main.TRUE
+        for n in range(1,5):
+            temp_result = main.Mininet1.compare_topo(MNTopo, main.ONOS1.get_json(main.params['CTRL']['ip'+str(n)]+":"+main.params['CTRL']['restPort'+str(n)]+main.params['TopoRest']))
+            topo_result = topo_result and temp_result
+        print "Topoology check results: " + str(topo_result) 
+        ###End New Topo Check
         utilities.assert_equals(expect=main.TRUE,actual=result1,onpass="Topology check pass",onfail="Topology check FAIL")
 
         pingAttempts = main.params['pingAttempts']
@@ -632,6 +829,31 @@
                 main.ONOS3.check_status_report(main.params['RestIP'],main.params['NR_Switches'],main.params['NR_Links'])
                 main.ONOS4.check_status_report(main.params['RestIP'],main.params['NR_Switches'],main.params['NR_Links'])
                 break
+        ####New Topo Check
+        ctrls = []
+        count = 1
+        while True:
+            temp = ()
+            if ('ip' + str(count)) in main.params['CTRL']:
+                temp = temp + (getattr(main,('ONOS' + str(count))),)
+                temp = temp + ("ONOS"+str(count),)
+                temp = temp + (main.params['CTRL']['ip'+str(count)],)
+                temp = temp + (eval(main.params['CTRL']['port'+str(count)]),)
+                ctrls.append(temp)
+                count = count + 1
+            else:
+                break
+        from sts.topology.teston_topology import TestONTopology # assumes that sts is already in you PYTHONPATH
+        global MNTopo
+        MNTopo = TestONTopology(main.Mininet1, ctrls) # can also add Intent API info for intent operations
+
+
+        topo_result = main.TRUE
+        for n in range(1,5):
+            temp_result = main.Mininet1.compare_topo(MNTopo, main.ONOS1.get_json(main.params['CTRL']['ip'+str(n)]+":"+main.params['CTRL']['restPort'+str(n)]+main.params['TopoRest']))
+            topo_result = topo_result and temp_result
+        print "Topoology check results: " + str(topo_result) 
+        ###End New Topo Check
         utilities.assert_equals(expect=main.TRUE,actual=result1,onpass="Topology check pass",onfail="Topology check FAIL")
 
         pingAttempts = main.params['pingAttempts']
@@ -753,7 +975,7 @@
         url = main.params['RESTCALL']['restURL']
        
         t_topowait = 5
-        t_restwait = 0
+        t_restwait = 5
         main.log.report( "Wait time from topo change to ping set to " + str(t_topowait))
         main.log.report( "Wait time from ping to rest call set to " + str(t_restwait))
         #print "host=" + host + ";  RestIP=" + RestIP1 + ";  RestPort=" + str(RestPort)
diff --git a/TestON/tests/RCOnosCHO4nodes/RCOnosCHO4nodes.topo b/TestON/tests/RCOnosCHO4nodes/RCOnosCHO4nodes.topo
index a9c85ed..d97e541 100644
--- a/TestON/tests/RCOnosCHO4nodes/RCOnosCHO4nodes.topo
+++ b/TestON/tests/RCOnosCHO4nodes/RCOnosCHO4nodes.topo
@@ -130,7 +130,7 @@
             <COMPONENTS>
                 # Specify the Option for mininet
                 <arg1> --custom ~/mininet/custom/topo-onos4node.py </arg1>
-                <arg2> --topo mytopo </arg2>
+                <arg2> --topo mytopo --arp</arg2>
                 <controller> remote </controller>
              </COMPONENTS>
         </Mininet1>
diff --git a/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.params b/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.params
index b5d7628..dc9aed2 100644
--- a/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.params
+++ b/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.params
@@ -1,5 +1,5 @@
 <PARAMS>
-    <testcases>1,31,4,41,5,51,6,61,7,71,103,100,8,61,9,51,10,41,11,31,104,101</testcases>
+    <testcases>1,31,33,4,41,43,5,51,53,6,61,63,7,71,73,103,105,8,61,63,9,51,53,10,41,43,11,31,33,104,106</testcases>
     <tcpdump> 
         <intf>eth0</intf>
         <port>port 6633</port>
@@ -68,18 +68,25 @@
 	<restPort>8080</restPort>
 	<restURL>/wm/onos/topology/hosts</restURL>
     </RESTCALL>
+    <url1>http://10.128.10.1:8080/wm/onos/metrics</url1>
+    <url2>http://10.128.10.2:8080/wm/onos/metrics</url2>
+    <url3>http://10.128.10.3:8080/wm/onos/metrics</url3>
+    <url4>http://10.128.10.4:8080/wm/onos/metrics</url4>
+    <url5>http://10.128.10.5:8080/wm/onos/metrics</url5>
+    <url6>http://10.128.10.6:8080/wm/onos/metrics</url6>
+    <url7>http://10.128.10.7:8080/wm/onos/metrics</url7>
     <switches_num>30</switches_num>
     <RATE1>100</RATE1>
-    <RUN_DUR>240</RUN_DUR>
-    <sleep_t>8</sleep_t>
+    <RUN_DUR>600</RUN_DUR>
+    <sleep_t>6</sleep_t>
     <loop>10</loop>
     <port>10</port>
-    <sleep_init>160</sleep_init>
-    <int_num>1000</int_num>
-    <addrate>1000</addrate>
-    <NBdur>60</NBdur>
-    <NBsleep>10</NBsleep>
-    <NBloop>6</NBloop>
-    <NBsleep_init>10</NBsleep_init>
+    <sleep_init>540</sleep_init>
+    <int_num>40</int_num>
+    <addrate>1</addrate>
+    <NBdur>100</NBdur>
+    <NBsleep>5</NBsleep>
+    <NBloop>7</NBloop>
+    <NBsleep_init>60</NBsleep_init>
     <db_script>/home/admin/TestON/scripts/./scaleoutdatagraph.py</db_script>
 </PARAMS>      
diff --git a/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.py b/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.py
index 2dbe03c..ba21e61 100644
--- a/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.py
+++ b/TestON/tests/scaleONOS7nodes/scaleONOS7nodes.py
@@ -13,6 +13,7 @@
 #Tests the startup of Zookeeper1, RamCloud1, and ONOS1 to be certain that all started up successfully
     def CASE1(self,main) :  #Check to be sure ZK, Cass, and ONOS are up, then get ONOS version
         main.case("Initial setup")
+        main.log.report("Starting 3-node ONOS cluster.")
         main.step("Stop ONOS")
         import time
         main.log.info("Stopping all ONOS nodes...")
@@ -43,7 +44,7 @@
         
         time.sleep(5)
         
-        
+        """        
         main.RamCloud1.del_db()
         main.RamCloud2.del_db()
         main.RamCloud3.del_db()
@@ -52,7 +53,7 @@
         time.sleep(5)
         #main.log.report("Pulling latest code from github to all nodes")
           
-        """
+        
         for i in range(2):
             uptodate = main.ONOS1.git_pull()
             main.ONOS2.git_pull()
@@ -86,7 +87,7 @@
        # main.ONOS3.start_all()
        # main.ONOS4.start_all()
 
-        """
+        
         main.RamCloud1.start_coor()
         main.RamCloud1.start_serv()
         main.RamCloud2.start_serv()
@@ -97,10 +98,10 @@
         main.ONOS3.start()
         #main.ONOS4.start()
         time.sleep(5)
-        
-        #main.ONOS1.handle.sendline("./onos.sh core start")
-        #main.ONOS1.handle.sendline("./onos.sh core start")
-        #main.ONOS1.handle.sendline("./onos.sh core start")
+        """
+        main.ONOS1.handle.sendline("./onos.sh core start")
+        main.ONOS2.handle.sendline("./onos.sh core start")
+        main.ONOS3.handle.sendline("./onos.sh core start")
 
         main.ONOS1.start_rest()
         main.ONOS2.start_rest()
@@ -109,11 +110,11 @@
         if test == main.FALSE:
             main.ONOS1.start_rest()
         main.ONOS1.get_version()
-        main.log.report("Startup check Zookeeper1, RamCloud1, and ONOS1 connections")
+        main.log.report("Startup check Zookeeper, and ONOS connections")
         main.step("Testing startup Zookeeper")   
         data =  main.Zookeeper1.isup() and main.Zookeeper2.isup() and main.Zookeeper3.isup()
         utilities.assert_equals(expect=main.TRUE,actual=data,onpass="Zookeeper is up!",onfail="Zookeeper is down...")
-        
+        """
         main.step("Testing startup RamCloud")   
         data =  main.RamCloud1.status_serv() and main.RamCloud2.status_serv() and main.RamCloud3.status_serv() #and main.RamCloud4.status_serv()
         if data == main.FALSE:
@@ -135,7 +136,7 @@
 
         
         utilities.assert_equals(expect=main.TRUE,actual=data,onpass="RamCloud is up!",onfail="RamCloud is down...")
-        
+        """
         main.step("Testing startup ONOS")   
         data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() #and main.ONOS4.isup()
         for i in range(3):
@@ -153,6 +154,7 @@
 
 
     def CASE31(self,main):
+        main.log.report("SB Throughput test: loading ONOS cluster with 740 Topo Events/s")
         main.case("Staring SB load with 3 ONOS nodes")
         ip1 = main.params['CTRL']['ip1']
         ip2 = main.params['CTRL']['ip2']
@@ -175,9 +177,9 @@
         import math
         time.sleep(sleep_init)
         open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale3nodesrate1", 'w').close()
-        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
-        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
-        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
+        url1 = main.params['url1']
+        url2 = main.params['url2']
+        url3 = main.params['url3']
         f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale3nodesrate1", "a")
         #time.sleep(10)
         tpval = 0.0
@@ -227,124 +229,50 @@
         print("\n")
         tpavg3n = round(tpval)/loop
         print tpavg3n
+        main.log.report("Topology Event Throughput for 3-node ONOS cluster = " +str(tpavg3n) + " Events/sec")
         main.Mininet2.handle.expect("\$", timeout=900)
-       # main.Mininet2.handle.sendline("sudo mn -c")
-        #main.Mininet2.handle.expect("\$")
-       # main.Mininet2.handle.expect("\$", timeout=900)
         time.sleep(180)
         
-
-    def CASE32(self,main):
-        ip1 = main.params['CTRL']['ip1']
-        ip2 = main.params['CTRL']['ip2']
-        ip3 = main.params['CTRL']['ip3']
-        import time
-        rate2 = main.params['RATE2']
-        run_dur = main.params['RUN_DUR']
-        loop = int(main.params['loop'])
-        sleep_init = int(main.params['sleep_init'])
-        sleep_t = int(main.params['sleep_t'])
-        port = main.params['port']
-        switches_num = main.params['switches_num']
-        main.case("Starting SB load on 3 nodes from mininet with " + rate2 +"  added/removed/s for " + run_dur)
-        #main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"" + ip1 + " " + ip2 + " " + ip3 + "\"" + " " + switches_num + " " + port + " " + rate2 + " " + run_dur +  "  \"11\"")
-        main.Mininet2.handle.sendline("sudo ./loadgen_SB.py -u \"" + ip1 + " " + ip2 + " " + ip3 + "\"" + " -s " + switches_num + " -p " + port + " -a " + rate2 + " -d " + rate2 + " -l " + run_dur)
-       #main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"10.128.10.1\" 100 50 1200 \"11\"")
-        main.Mininet2.handle.expect("Starting SB load....", timeout=900 )
-        time.sleep(sleep_init )
-        import json
-        time.sleep(sleep_init)
-        open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale3nodesrate2", 'w').close()
-        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
-        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
-        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
-        f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale3nodesrate2", "a")
-        for i in range(int (loop)):
-            j1 = main.ONOS1.get_json(url1)
-            j2 = main.ONOS1.get_json(url2)
-            j3 = main.ONOS1.get_json(url3)
-            json_str = []
-            json_str.append(0)
-            json_str.append(j1)
-            json_str.append(j2)
-            json_str.append(j3)
-            if json_str[1] != "" and json_str[2] != "" and json_str[3] != "":
-                # write_str = str(json_str["meters"][4]["meter"][2])
-                #print str(json_str["meters"][4])
-                #f.write(str(json_str["meters"][4]))
-                #f.write('\n')
-                #time.sleep(3)
-                for j in range(1,4):
-                    f.write("ONOS" + str(j) + "\n")
-                    f.write(str(json_str[j]["meters"][4]['meter']['count']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['m1_rate']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['m5_rate']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['m15_rate']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['mean_rate']))
-                    f.write('\n')
-                
-                f.write('\n')
-                f.write('\n')
-                
-                f.write("--------------------------------------------------------------------------------- \n") 
-                time.sleep(sleep_t)
-        f.close() 
-        #time.sleep(10)
-        main.Mininet2.handle.expect("\$", timeout=900)
-        time.sleep(180)
-       # main.Mininet2.handle.sendline("sudo mn -c")
-        #time.sleep(5)
-       # main.Mininet2.handle.expect("\$", timeout=900)
-
-
     def CASE33(self,main):
         
-        main.case("Starting NB Throughput test")
         ip1 = main.params['CTRL']['ip1']
         ip2 = main.params['CTRL']['ip2']
         ip3 = main.params['CTRL']['ip3']
         import time
         import json
-        int_num = main.params['int_num']
+        int_num = int(main.params['int_num'])
         addrate = main.params['addrate']
         NBdur = main.params['NBdur']
         NBsleep = int(main.params['NBsleep'])
         NBsleep_init = int(main.params['NBsleep_init'])
         NBloop = int(main.params['NBloop'])
-        
+        int_r = 3 * int_num
+        main.log.report("Starting NB Throughput test: loading 3-node ONOS cluster with " + str(int_num) + " Intents/s on each node" )
         main.Mininet4.handle.expect("\$")
-        #main.Mininet2.handle.sendline("sudo mn --custom topo-intentTPtest.py --topo mytopo --mac --arp")
-        #main.Mininet2.handle.expect("mininet>" , timeout=400)
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s1 tcp:10.128.10.1:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s2 tcp:10.128.10.1:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s3 tcp:10.128.10.2:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s4 tcp:10.128.10.2:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s5 tcp:10.128.10.3:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s6 tcp:10.128.10.3:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s7 tcp:10.128.10.3:6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s1 tcp:" + ip1 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s2 tcp:" + ip1 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s3 tcp:" + ip2 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s4 tcp:" + ip2 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s5 tcp:" + ip3 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s6 tcp:" + ip3 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s7 tcp:" + ip3 + ":6633")
         
         main.ONOS3.handle.sendline("cd ~admin/suibin-dev")
         main.ONOS3.handle.expect("\$")
 
-        main.ONOS3.handle.sendline("./loadgen_NB.py -n 3 -u \"10.128.10.1:8080 10.128.10.2:8080 10.128.10.3:8080 \" -i " + int_num + " -a " + addrate + " -l " + NBdur + " -p 20")
+        main.ONOS3.handle.sendline("./loadgen_NB.py -n 3 -u \"" + ip1 + ":8080 " + ip2 + ":8080 " + ip3 + ":8080 \" -i " + str(int_r) + " -a " + addrate + " -l " + NBdur + " -p 20")
         main.ONOS3.handle.expect("Pause between add and delete:", timeout=900)
         time.sleep(NBsleep_init)
-        #time.sleep(60)
         import json
         nbtpval = 0.0
         global nbtpavg3n
         nbtpavg3n = 0.0
         
         open("/home/admin/TestON/tests/scaleONOS7nodes/logs/NBscale3nodesrate1", 'w').close()
-        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
-        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
-        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
+        url1 = main.params['url1']
+        url2 = main.params['url2']
+        url3 = main.params['url3']
         f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/NBscale3nodesrate1", "a")
-        #time.sleep(10)
         for i in range(NBloop):
             j1 = main.ONOS1.get_json(url1)
             j2 = main.ONOS1.get_json(url2)
@@ -385,22 +313,23 @@
                     f.write('\n')
                     f.write('\n')
                     f.write('\n')
-                    if j == 3:
-                        nbtpval += float(json_str[j]["meters"][1]['meter']['m1_rate']) 
+                    nbtpval += float(json_str[j]["meters"][1]['meter']['m1_rate']) 
 
                     f.write("--------------------------------------------------------------------------------- \n") 
                     f.write("--------------------------------------------------------------------------------- \n \n") 
                     time.sleep(NBsleep)
         f.close()
         print("\n")
-        nbtpavg3n = round(nbtpval)/NBloop
+        nbtpavg3n = round(round(nbtpval)/NBloop,2)
         print nbtpavg3n
         
         main.ONOS3.handle.expect("\$", timeout=900)
-        time.sleep(180) 
+        #time.sleep(180) 
+        main.log.report("Intent Throughput for 3-node ONOS cluster = " + str(nbtpavg3n) + " Intents/sec")
         
     def CASE4(self,main):
         
+        main.log.report("Scale-up ONOS to 4-nodes ")
         main.case("Starting ONOS scale-up to 4 nodes ")
         import time
        # main.RamCloud4.start_serv()
@@ -411,129 +340,112 @@
             
         main.Zookeeper4.start()
         time.sleep(5)
-        
+        """ 
         main.RamCloud4.del_db()
         time.sleep(3)
         main.RamCloud4.start_serv()
         time.sleep(3)
+        """
         main.ONOS4.start()
         main.ONOS4.start_rest()
         time.sleep(5)
         data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup()
         for i in range(3):
             if data == main.FALSE: 
-                #main.log.report("Something is funny... restarting ONOS")
-                #main.ONOS1.stop()
                 time.sleep(3)
-                #main.ONOS1.start()
-                #time.sleep(5) 
                 data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup()
             else:
                 break
-        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="ONOS is up and running!",onfail="ONOS didn't start...")
+        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="Scale up successful - 4-node ONOS cluster is up and running!",onfail="ONOS didn't start...")
         
         time.sleep(10)
     
     def CASE5(self,main):
-        
+        main.log.report("Scale-up ONOS to 5-nodes")
         main.case("Starting ONOS scale-up/down to 5 nodes ")
         import time
-       # main.RamCloud4.start_serv()
         main.ONOS6.handle.sendline("./onos.sh core stop")
         main.ONOS7.handle.sendline("./onos.sh core stop")
-        #pdata = main.ONOS5.isup()
     
         main.Zookeeper5.start()
         time.sleep(5)
-        
+        """
         main.RamCloud5.del_db()
         time.sleep(3)
         main.RamCloud5.start_serv()
         time.sleep(3)
+        """
         main.ONOS5.start()
         main.ONOS5.start_rest()
         time.sleep(5)
         data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup() and main.ONOS5.isup()
         for i in range(3):
             if data == main.FALSE: 
-                #main.log.report("Something is funny... restarting ONOS")
-                #main.ONOS1.stop()
                 time.sleep(3)
-                #main.ONOS1.start()
-                #time.sleep(5) 
                 data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup() and main.ONOS5.isup() 
             else:
                 break
-        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="ONOS is up and running!",onfail="ONOS didn't start...")
+        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="Scale up successful - 5-node ONOS cluster is up and running!",onfail="ONOS didn't start...")
         time.sleep(10)
 
     def CASE6(self,main):
-        
+        main.log.report("Scale-up ONOS to 6-nodes")
         main.case("Starting ONOS scale-up/down to 6 nodes ")
         import time
-       # main.RamCloud4.start_serv()
         main.ONOS7.handle.sendline("./onos.sh core stop")
-        #pdata = main.ONOS6.isup()
 
         main.Zookeeper6.start()
         time.sleep(5)
-        
+        """
         main.RamCloud6.del_db()
         time.sleep(3)
         main.RamCloud6.start_serv()
         time.sleep(3)
+        """
         main.ONOS6.start()
         main.ONOS6.start_rest()
         time.sleep(5)
         data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup() and main.ONOS5.isup() and main.ONOS6.isup()
         for i in range(3):
             if data == main.FALSE: 
-                #main.log.report("Something is funny... restarting ONOS")
-                #main.ONOS1.stop()
                 time.sleep(3)
-                #main.ONOS1.start()
-                #time.sleep(5) 
                 data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup() and main.ONOS5.isup() and main.ONOS6.isup()
             else:
                 break
-        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="ONOS is up and running!",onfail="ONOS didn't start...")
+        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="Scale up successful - 6-node ONOS cluster is up and running!",onfail="ONOS didn't start...")
         time.sleep(10)
 
     def CASE7(self,main):
-        
+        main.log.report("Scale-up ONOS to 7-nodes")
         main.case("Starting ONOS scale-up/down to 7 nodes ")
         import time
-       # main.RamCloud4.start_serv()
-        #pdata = main.ONOS7.isup()
     
         main.Zookeeper7.start()
         time.sleep(5)
-        
+        """
         main.RamCloud7.del_db()            
         time.sleep(3)
         main.RamCloud7.start_serv()
         time.sleep(3)
+        """
         main.ONOS7.start()
         main.ONOS7.start_rest()
         time.sleep(5)
         data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup() and main.ONOS5.isup() and main.ONOS6.isup() and main.ONOS7.isup()
         for i in range(3):
             if data == main.FALSE: 
-                #main.log.report("Something is funny... restarting ONOS")
-                #main.ONOS1.stop()
                 time.sleep(3)
-                #main.ONOS1.start()
-                #time.sleep(5) 
                 data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup() and main.ONOS5.isup() and main.ONOS6.isup() and main.ONOS7.isup()
             else:
                 break
-        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="ONOS is up and running!",onfail="ONOS didn't start...")
+        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="Scale up successful - 7-node ONOS cluster is up and running!",onfail="ONOS didn't start...")
         time.sleep(10)
 
 
 
     def CASE41(self,main):
         main.case("Starting SB test for 4 nodes")
+        main.log.report("SB Throughput test: loading 4-node ONOS cluster with 740 Topo Events/s")
         ip1 = main.params['CTRL']['ip1']
         ip2 = main.params['CTRL']['ip2']
         ip3 = main.params['CTRL']['ip3']
@@ -547,7 +459,6 @@
         sleep_init = int(main.params['sleep_init'])
         sleep_t =int( main.params['sleep_t'])
         main.case("Starting SB load on 4 nodes from mininet with " + rate1 +"  added/removed/s for " + run_dur)
-        #main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 + "\"" + " " + switches_num + " " + port + " " + rate1 + " " + run_dur +  "  \"11\"")
         main.Mininet2.handle.sendline("sudo ./loadgen_SB.py -u \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 +  "\"" + " -s " + switches_num + " -p " + port + " -a " + rate1 + " -d " + rate1 + " -l " + run_dur)
         main.Mininet2.handle.expect("Starting SB load....", timeout=900)
         import time
@@ -555,16 +466,15 @@
         import math
         time.sleep(sleep_init)
         open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale4nodesrate1", 'w').close()
-        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
-        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
-        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
-        url4 = "http://10.128.10.4:8080/wm/onos/metrics"
+        url1 = main.params['url1']
+        url2 = main.params['url2']
+        url3 = main.params['url3']
+        url4 = main.params['url4']
         tpval = 0.0
         global tpavg4n 
         tpavg4n = 0.0
 
         f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale4nodesrate1", "a")
-        #time.sleep(10)
         for i in range(int (loop)):
             j1 = main.ONOS2.get_json(url1)
             j2 = main.ONOS2.get_json(url2)
@@ -577,11 +487,6 @@
             json_str.append(j3)
             json_str.append(j4)
             if json_str[1] != "" and json_str[2] != "" and json_str[3] != "" and json_str[4] != "":
-                # write_str = str(json_str["meters"][4]["meter"][2])
-                #print str(json_str["meters"][4])
-                #f.write(str(json_str["meters"][4]))
-                #f.write('\n')
-                #time.sleep(3)
                 for j in range(1,5):
                     f.write("ONOS" + str(j) + "\n")
                     f.write(str(json_str[j]["meters"][4]['meter']['count']))
@@ -594,9 +499,8 @@
                     f.write('\t')
                     f.write(str(json_str[j]["meters"][4]['meter']['mean_rate']))
                     f.write('\n')
-                    if j == 3:
+                    if j == 4:
                         tpval += float(json_str[j]["meters"][4]['meter']['m1_rate']) 
-                       # print tpval
                 
                 f.write('\n')
                 f.write('\n')
@@ -604,85 +508,16 @@
                 f.write("--------------------------------------------------------------------------------- \n") 
                 time.sleep(sleep_t)
         f.close() 
-       # print tpval
         print("\n")
         tpavg4n = round(tpval)/loop
         print tpavg4n
+        main.log.report("Topology Event Throughput for 4-node ONOS cluster = " + str(tpavg4n) + " Events/sec")
         
-        #main.Mininet2.handle.expect("\$", timeout=900)
-        #main.Mininet2.handle.sendline("sudo mn -c")
-        #main.Mininet2.handle.expect("\$")
         time.sleep(5)
         main.Mininet2.handle.expect("\$", timeout=900)
         time.sleep(180)
         
 
-    def CASE42(self,main):
-        
-        ip1 = main.params['CTRL']['ip1']
-        ip2 = main.params['CTRL']['ip2']
-        ip3 = main.params['CTRL']['ip3']
-        ip4 = main.params['CTRL']['ip4']
-        
-        import time
-        import json
-        rate2 = main.params['RATE2']
-        run_dur = main.params['RUN_DUR']
-        loop = int(main.params['loop'])
-        sleep_init = int(main.params['sleep_init'])
-        sleep_t = int(main.params['sleep_t'])
-        switches_num = main.params['switches_num']
-        port = main.params['port']
-        main.case("Starting SB load on 4 nodes from mininet with " + rate2 +"  added/removed/s for " + run_dur)
-        #main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 +  "\"" + " " + switches_num + " " + port +  " " + rate2 + " " + run_dur +  "  \"11\"")
-        main.Mininet2.handle.sendline("sudo ./loadgen_SB.py -u \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 +  "\"" + " -s " + switches_num + " -p " + port + " -a " + rate2 + " -d " + rate2 + " -l " + run_dur)
-        main.Mininet2.handle.expect("Starting SB load....", timeout=900 )
-        time.sleep(sleep_init)
-        open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale4nodesrate2", 'w').close()
-        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
-        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
-        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
-        url4 = "http://10.128.10.4:8080/wm/onos/metrics"
-        f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale4nodesrate2", "a")
-        #time.sleep(10)
-        for i in range(int (loop)):
-            j1 = main.ONOS2.get_json(url1)
-            j2 = main.ONOS2.get_json(url2)
-            j3 = main.ONOS2.get_json(url3)
-            j4 = main.ONOS2.get_json(url4)
-            json_str = []
-            json_str.append(0)
-            json_str.append(j1)
-            json_str.append(j2)
-            json_str.append(j3)
-            json_str.append(j4)
-            if json_str[1] != "" and json_str[2] != "" and json_str[3] != "" and json_str[4] != "":
-                # write_str = str(json_str["meters"][4]["meter"][2])
-                #print str(json_str["meters"][4])
-                #f.write(str(json_str["meters"][4]))
-                #f.write('\n')
-                #time.sleep(3)
-                for j in range(1,5):
-                    f.write("ONOS" + str(j) + "\n")
-                    f.write(str(json_str[j]["meters"][4]['meter']['count']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['m1_rate']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['m5_rate']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['m15_rate']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['mean_rate']))
-                    f.write('\n')
-                
-                f.write('\n')
-                f.write('\n')
-                
-                f.write("--------------------------------------------------------------------------------- \n") 
-                time.sleep(sleep_t)
-        f.close() 
-        time.sleep(180)
-
     def CASE43(self,main):
         
         main.case("Starting NB Throughput test after scaling up to 4 onos nodes")
@@ -693,31 +528,30 @@
 
         import time
         import json
-        int_num = main.params['int_num']
+        int_num = int(main.params['int_num'])
         addrate = main.params['addrate']
         NBdur = main.params['NBdur']
         NBsleep = int(main.params['NBsleep'])
         NBsleep_init = int(main.params['NBsleep_init'])
         NBloop = int(main.params['NBloop'])
         nbtpval = 0.0
+        main.log.report("Starting NB Throughput test: loading 4-node ONOS cluster with " +str(int_num) + " Intents/s on each node" )
         global nbtpavg4n
         nbtpavg4n = 0.0
-
+        int_r = 4 * int_num
         main.Mininet4.handle.expect("\$")
-        #main.Mininet2.handle.sendline("sudo mn --custom topo-intentTPtest.py --topo mytopo --mac --arp")
-        #main.Mininet2.handle.expect("mininet>" , timeout=400)
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s1 tcp:10.128.10.1:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s2 tcp:10.128.10.2:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s3 tcp:10.128.10.3:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s4 tcp:10.128.10.4:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s5 tcp:10.128.10.1:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s6 tcp:10.128.10.2:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s7 tcp:10.128.10.4:6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s1 tcp:" + ip1 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s2 tcp:" + ip2 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s3 tcp:" + ip3 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s4 tcp:" + ip4 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s5 tcp:" + ip1 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s6 tcp:" + ip2 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s7 tcp:" + ip4 + ":6633")
         
         main.ONOS3.handle.sendline("cd ~admin/suibin-dev")
         main.ONOS3.handle.expect("\$")
 
-        main.ONOS3.handle.sendline("./loadgen_NB.py -n 4 -u \"10.128.10.1:8080 10.128.10.2:8080 10.128.10.3:8080 10.128.10.4:8080  \" -i " + int_num + " -a " + addrate + " -l " + NBdur + " -p 20")
+        main.ONOS3.handle.sendline("./loadgen_NB.py -n 4 -u \"" + ip1 + ":8080 " + ip2 + ":8080 " + ip3 + ":8080 " + ip4 + ":8080  \" -i " + str(int_r) + " -a " + addrate + " -l " + NBdur + " -p 20")
         main.ONOS3.handle.expect("Pause between add and delete:", timeout=900)
 
         
@@ -725,12 +559,11 @@
         import json
         
         open("/home/admin/TestON/tests/scaleONOS7nodes/logs/NBscale4nodesrate1", 'w').close()
-        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
-        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
-        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
-        url4 = "http://10.128.10.4:8080/wm/onos/metrics"
+        url1 = main.params['url1']
+        url2 = main.params['url2']
+        url3 = main.params['url3']
+        url4 = main.params['url4']
         f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/NBscale4nodesrate1", "a")
-        #time.sleep(10)
         for i in range(NBloop):
             j1 = main.ONOS2.get_json(url1)
             j2 = main.ONOS2.get_json(url2)
@@ -773,23 +606,25 @@
                     f.write('\n')
                     f.write('\n')
                     f.write('\n')
-                    if j == 3:
-                        nbtpval += float(json_str[j]["meters"][1]['meter']['m1_rate']) 
+                    
+                    nbtpval += float(json_str[j]["meters"][1]['meter']['m1_rate']) 
 
                     f.write("--------------------------------------------------------------------------------- \n") 
                     f.write("--------------------------------------------------------------------------------- \n \n") 
                     time.sleep(NBsleep)
         f.close()
         print("\n")
-        nbtpavg4n = round(nbtpval)/NBloop
+        nbtpavg4n = round(round(nbtpval)/NBloop,2)
         print nbtpavg4n
         
 
         main.ONOS3.handle.expect("\$", timeout=900)
         time.sleep(180)
+        main.log.report("Intent Throughput for 4-node ONOS cluster = " + str(nbtpavg4n) + " Intents/sec")
     
     def CASE51(self,main):
         main.case("Starting SB test for 5 nodes")
+        main.log.report("SB Throughput test: loading 5-node ONOS cluster with 740 Topo Events/s")
         ip1 = main.params['CTRL']['ip1']
         ip2 = main.params['CTRL']['ip2']
         ip3 = main.params['CTRL']['ip3']
@@ -804,7 +639,6 @@
         sleep_init = int(main.params['sleep_init'])
         sleep_t =int( main.params['sleep_t'])
         main.case("Starting SB load on 5 nodes from mininet with " + rate1 +"  added/removed/s for " + run_dur)
-        #main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 + "\"" + " " + switches_num + " " + port + " " + rate1 + " " + run_dur +  "  \"11\"")
         main.Mininet2.handle.sendline("sudo ./loadgen_SB.py -u \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 + " " + ip5 + "\"" + " -s " + switches_num + " -p " + port + " -a " + rate1 + " -d " + rate1 + " -l " + run_dur)
         main.Mininet2.handle.expect("Starting SB load....", timeout=900)
         import time
@@ -815,14 +649,12 @@
         time.sleep(sleep_init)
 
         open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale5nodesrate1", 'w').close()
-        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
-        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
-        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
-        url4 = "http://10.128.10.4:8080/wm/onos/metrics"
-        url5 = "http://10.128.10.5:8080/wm/onos/metrics"
-
+        url1 = main.params['url1']
+        url2 = main.params['url2']
+        url3 = main.params['url3']
+        url4 = main.params['url4']
+        url5 = main.params['url5']
         f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale5nodesrate1", "a")
-        #time.sleep(10)
         for i in range(int (loop)):
             j1 = main.ONOS2.get_json(url1)
             j2 = main.ONOS2.get_json(url2)
@@ -837,11 +669,6 @@
             json_str.append(j4)
             json_str.append(j5)
             if json_str[1] != "" and json_str[2] != "" and json_str[3] != "" and json_str[4] != "" and json_str[5] != "":
-                # write_str = str(json_str["meters"][4]["meter"][2])
-                #print str(json_str["meters"][4])
-                #f.write(str(json_str["meters"][4]))
-                #f.write('\n')
-                #time.sleep(3)
                 for j in range(1,6):
                     f.write("ONOS" + str(j) + "\n")
                     f.write(str(json_str[j]["meters"][4]['meter']['count']))
@@ -854,9 +681,8 @@
                     f.write('\t')
                     f.write(str(json_str[j]["meters"][4]['meter']['mean_rate']))
                     f.write('\n')
-                    if j == 3:
+                    if j == 4:
                         tpval += float(json_str[j]["meters"][4]['meter']['m1_rate']) 
-                        #print tpval
                 
                 f.write('\n')
                 f.write('\n')
@@ -864,89 +690,16 @@
                 f.write("--------------------------------------------------------------------------------- \n") 
                 time.sleep(sleep_t)
         f.close() 
-        #print tpval
         print("\n")
         tpavg5n = round(tpval)/loop
         print tpavg5n
         
-        #main.Mininet2.handle.expect("\$", timeout=900)
-        #main.Mininet2.handle.sendline("sudo mn -c")
-        #main.Mininet2.handle.expect("\$")
         time.sleep(5)
         main.Mininet2.handle.expect("\$", timeout=900)
         time.sleep(180)
+        main.log.report("Topology Event Throughput for 5-node ONOS cluster = " + str(tpavg5n) + " Events/sec")
         
 
-    def CASE52(self,main):
-        
-        ip1 = main.params['CTRL']['ip1']
-        ip2 = main.params['CTRL']['ip2']
-        ip3 = main.params['CTRL']['ip3']
-        ip4 = main.params['CTRL']['ip4']
-        ip5 = main.params['CTRL']['ip5']
-        
-        import time
-        import json
-        rate2 = main.params['RATE2']
-        run_dur = main.params['RUN_DUR']
-        loop = int(main.params['loop'])
-        sleep_t = int(main.params['sleep_t'])
-        sleep_init = int(main.params['sleep_init'])
-        switches_num = main.params['switches_num']
-        port = main.params['port']
-        main.case("Starting SB load on 4 nodes from mininet with " + rate2 +"  added/removed/s for " + run_dur)
-        #main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 +  "\"" + " " + switches_num + " " + port +  " " + rate2 + " " + run_dur +  "  \"11\"")
-        main.Mininet2.handle.sendline("sudo ./loadgen_SB.py -u \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 + " " + ip5 + "\"" + " -s " + switches_num + " -p " + port + " -a " + rate2 + " -d " + rate2 + " -l " + run_dur)
-        main.Mininet2.handle.expect("Starting SB load....", timeout=900 )
-        time.sleep(sleep_init)
-        open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale5nodesrate2", 'w').close()
-        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
-        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
-        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
-        url4 = "http://10.128.10.4:8080/wm/onos/metrics"
-        url5 = "http://10.128.10.5:8080/wm/onos/metrics"
-        f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale5nodesrate2", "a")
-        #time.sleep(10)
-        for i in range(int (loop)):
-            j1 = main.ONOS2.get_json(url1)
-            j2 = main.ONOS2.get_json(url2)
-            j3 = main.ONOS2.get_json(url3)
-            j4 = main.ONOS2.get_json(url4)
-            j5 = main.ONOS2.get_json(url5)
-            json_str = []
-            json_str.append(0)
-            json_str.append(j1)
-            json_str.append(j2)
-            json_str.append(j3)
-            json_str.append(j4)
-            json_str.append(j5)
-            if json_str[1] != "" and json_str[2] != "" and json_str[3] != "" and json_str[4] != "" and json_str[4] != "":
-                # write_str = str(json_str["meters"][4]["meter"][2])
-                #print str(json_str["meters"][4])
-                #f.write(str(json_str["meters"][4]))
-                #f.write('\n')
-                #time.sleep(3)
-                for j in range(1,6):
-                    f.write("ONOS" + str(j) + "\n")
-                    f.write(str(json_str[j]["meters"][4]['meter']['count']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['m1_rate']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['m5_rate']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['m15_rate']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['mean_rate']))
-                    f.write('\n')
-                
-                f.write('\n')
-                f.write('\n')
-                
-                f.write("--------------------------------------------------------------------------------- \n") 
-                time.sleep(sleep_t)
-        f.close() 
-        time.sleep(180)
-
     def CASE53(self,main):
         
         main.case("Starting NB Throughput test after scaling up to 5 onos nodes")
@@ -954,34 +707,34 @@
         ip2 = main.params['CTRL']['ip2']
         ip3 = main.params['CTRL']['ip3']
         ip4 = main.params['CTRL']['ip4']
+        ip5 = main.params['CTRL']['ip5']
 
         import time
         import json
-        int_num = main.params['int_num']
+        int_num = int(main.params['int_num'])
         addrate = main.params['addrate']
         NBdur = main.params['NBdur']
         NBsleep = int(main.params['NBsleep'])
         NBsleep_init = int(main.params['NBsleep_init'])
         NBloop = int(main.params['NBloop'])
         nbtpval = 0.0
+        main.log.report("Starting NB Throughput test: loading 5-node ONOS cluster with " + str(int_num) + " Intents/s on each node" )
         global nbtpavg5n
         nbtpavg5n = 0.0
-
+        int_r = 5 * int_num
         main.Mininet4.handle.expect("\$")
-        #main.Mininet2.handle.sendline("sudo mn --custom topo-intentTPtest.py --topo mytopo --mac --arp")
-        #main.Mininet2.handle.expect("mininet>" , timeout=400)
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s1 tcp:10.128.10.1:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s2 tcp:10.128.10.2:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s3 tcp:10.128.10.3:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s4 tcp:10.128.10.4:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s5 tcp:10.128.10.5:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s6 tcp:10.128.10.3:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s7 tcp:10.128.10.5:6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s1 tcp:" + ip1 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s2 tcp:" + ip2 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s3 tcp:" + ip3 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s4 tcp:" + ip4 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s5 tcp:" + ip5 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s6 tcp:" + ip3 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s7 tcp:" + ip5 + ":6633")
         
         main.ONOS3.handle.sendline("cd ~admin/suibin-dev")
         main.ONOS3.handle.expect("\$")
 
-        main.ONOS3.handle.sendline("./loadgen_NB.py -n 5 -u \"10.128.10.1:8080 10.128.10.2:8080 10.128.10.3:8080 10.128.10.4:8080 10.128.10.5:8080  \" -i " + int_num + " -a " + addrate + " -l " + NBdur + " -p 20")
+        main.ONOS3.handle.sendline("./loadgen_NB.py -n 5 -u \"" + ip1 + ":8080 " + ip2 + ":8080 " + ip3 + ":8080 " + ip4 + ":8080 " + ip5 + ":8080  \" -i " + str(int_r) + " -a " + addrate + " -l " + NBdur + " -p 20")
         main.ONOS3.handle.expect("Pause between add and delete:", timeout=900)
 
         
@@ -989,13 +742,12 @@
         import json
         
         open("/home/admin/TestON/tests/scaleONOS7nodes/logs/NBscale5nodesrate1", 'w').close()
-        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
-        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
-        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
-        url4 = "http://10.128.10.4:8080/wm/onos/metrics"
-        url5 = "http://10.128.10.5:8080/wm/onos/metrics"
+        url1 = main.params['url1']
+        url2 = main.params['url2']
+        url3 = main.params['url3']
+        url4 = main.params['url4']
+        url5 = main.params['url5']
         f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/NBscale5nodesrate1", "a")
-        #time.sleep(10)
         for i in range(NBloop):
             j1 = main.ONOS2.get_json(url1)
             j2 = main.ONOS2.get_json(url2)
@@ -1040,8 +792,8 @@
                     f.write('\n')
                     f.write('\n')
                     f.write('\n')
-                    if j == 3:
-                        nbtpval += float(json_str[j]["meters"][1]['meter']['m1_rate']) 
+                    
+                    nbtpval += float(json_str[j]["meters"][1]['meter']['m1_rate']) 
 
 
                     f.write("--------------------------------------------------------------------------------- \n") 
@@ -1049,16 +801,18 @@
                     time.sleep(NBsleep)
         f.close()
         print("\n")
-        nbtpavg5n = round(nbtpval)/NBloop
+        nbtpavg5n = round(round(nbtpval)/NBloop,2)
         print nbtpavg5n
         
 
         main.ONOS3.handle.expect("\$", timeout=900)
         time.sleep(180)
+        main.log.report("Intent Throughput for 5-node ONOS cluster = " + str(nbtpavg5n) + " Intents/sec")
     
     def CASE61(self,main):
         main.case("Starting SB test for 5 nodes")
         ip1 = main.params['CTRL']['ip1']
+        main.log.report("SB Throughput test: loading 6-node ONOS cluster with 740 Topo Events/s")
         ip2 = main.params['CTRL']['ip2']
         ip3 = main.params['CTRL']['ip3']
         ip4 = main.params['CTRL']['ip4']
@@ -1073,7 +827,6 @@
         sleep_t =int( main.params['sleep_t'])
         sleep_init = int(main.params['sleep_init'])
         main.case("Starting SB load on 6 nodes from mininet with " + rate1 +"  added/removed/s for " + run_dur)
-        #main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 + "\"" + " " + switches_num + " " + port + " " + rate1 + " " + run_dur +  "  \"11\"")
         main.Mininet2.handle.sendline("sudo ./loadgen_SB.py -u \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 + " " + ip5 + " " + ip6 +  "\"" + " -s " + switches_num + " -p " + port + " -a " + rate1 + " -d " + rate1 + " -l " + run_dur)
         main.Mininet2.handle.expect("Starting SB load....", timeout=900)
         
@@ -1084,16 +837,13 @@
         tpavg6n = 0.0
         time.sleep(sleep_init)
         open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale6nodesrate1", 'w').close()
-        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
-        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
-        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
-        url4 = "http://10.128.10.4:8080/wm/onos/metrics"
-        url5 = "http://10.128.10.5:8080/wm/onos/metrics"
-        url5 = "http://10.128.10.5:8080/wm/onos/metrics"
-        url6 = "http://10.128.10.6:8080/wm/onos/metrics"
-
+        url1 = main.params['url1']
+        url2 = main.params['url2']
+        url3 = main.params['url3']
+        url4 = main.params['url4']
+        url5 = main.params['url5']
+        url6 = main.params['url6']
         f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale6nodesrate1", "a")
-        #time.sleep(10)
         for i in range(int (loop)):
             j1 = main.ONOS2.get_json(url1)
             j2 = main.ONOS2.get_json(url2)
@@ -1110,11 +860,6 @@
             json_str.append(j5)
             json_str.append(j6)
             if json_str[1] != "" and json_str[2] != "" and json_str[3] != "" and json_str[4] != "" and json_str[5] != "" and json_str[6] != "":
-                # write_str = str(json_str["meters"][4]["meter"][2])
-                #print str(json_str["meters"][4])
-                #f.write(str(json_str["meters"][4]))
-                #f.write('\n')
-                #time.sleep(3)
                 for j in range(1,7):
                     f.write("ONOS" + str(j) + "\n")
                     f.write(str(json_str[j]["meters"][4]['meter']['count']))
@@ -1127,9 +872,8 @@
                     f.write('\t')
                     f.write(str(json_str[j]["meters"][4]['meter']['mean_rate']))
                     f.write('\n')
-                    if j == 3:
+                    if j == 4:
                         tpval += float(json_str[j]["meters"][4]['meter']['m1_rate']) 
-                        #print tpval
                 
                 f.write('\n')
                 f.write('\n')
@@ -1137,93 +881,16 @@
                 f.write("--------------------------------------------------------------------------------- \n") 
                 time.sleep(sleep_t)
         f.close() 
-        #print tpval
         print("\n")
         tpavg6n = round(tpval)/loop
         print tpavg6n
         
-        #main.Mininet2.handle.expect("\$", timeout=900)
-        #main.Mininet2.handle.sendline("sudo mn -c")
-        #main.Mininet2.handle.expect("\$")
         time.sleep(5)
         main.Mininet2.handle.expect("\$", timeout=900)
         time.sleep(180)
+        main.log.report("Topology Event Throughput for 6-node ONOS cluster = " + str(tpavg6n) + " Events/sec")
         
 
-    def CASE62(self,main):
-        
-        ip1 = main.params['CTRL']['ip1']
-        ip2 = main.params['CTRL']['ip2']
-        ip3 = main.params['CTRL']['ip3']
-        ip4 = main.params['CTRL']['ip4']
-        ip5 = main.params['CTRL']['ip5']
-        ip6 = main.params['CTRL']['ip6']
-        
-        import time
-        import json
-        rate2 = main.params['RATE2']
-        run_dur = main.params['RUN_DUR']
-        loop = int(main.params['loop'])
-        sleep_t = int(main.params['sleep_t'])
-        switches_num = main.params['switches_num']
-        sleep_init = int(main.params['sleep_init'])
-        port = main.params['port']
-        main.case("Starting SB load on 4 nodes from mininet with " + rate2 +"  added/removed/s for " + run_dur)
-        #main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 +  "\"" + " " + switches_num + " " + port +  " " + rate2 + " " + run_dur +  "  \"11\"")
-        main.Mininet2.handle.sendline("sudo ./loadgen_SB.py -u \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 + " " + ip5 + " " + ip6 + "\"" + " -s " + switches_num + " -p " + port + " -a " + rate2 + " -d " + rate2 + " -l " + run_dur)
-        main.Mininet2.handle.expect("Starting SB load....", timeout=900 )
-        time.sleep(sleep_init)
-        open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale6nodesrate2", 'w').close()
-        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
-        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
-        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
-        url4 = "http://10.128.10.4:8080/wm/onos/metrics"
-        url5 = "http://10.128.10.5:8080/wm/onos/metrics"
-        url6 = "http://10.128.10.6:8080/wm/onos/metrics"
-        f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale6nodesrate2", "a")
-        #time.sleep(10)
-        for i in range(int (loop)):
-            j1 = main.ONOS2.get_json(url1)
-            j2 = main.ONOS2.get_json(url2)
-            j3 = main.ONOS2.get_json(url3)
-            j4 = main.ONOS2.get_json(url4)
-            j5 = main.ONOS2.get_json(url5)
-            j6 = main.ONOS2.get_json(url6)
-            json_str = []
-            json_str.append(0)
-            json_str.append(j1)
-            json_str.append(j2)
-            json_str.append(j3)
-            json_str.append(j4)
-            json_str.append(j5)
-            json_str.append(j6)
-            if json_str[1] != "" and json_str[2] != "" and json_str[3] != "" and json_str[4] != "" and json_str[5] != "" and json_str[6] != "":
-                # write_str = str(json_str["meters"][4]["meter"][2])
-                #print str(json_str["meters"][4])
-                #f.write(str(json_str["meters"][4]))
-                #f.write('\n')
-                #time.sleep(3)
-                for j in range(1,7):
-                    f.write("ONOS" + str(j) + "\n")
-                    f.write(str(json_str[j]["meters"][4]['meter']['count']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['m1_rate']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['m5_rate']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['m15_rate']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['mean_rate']))
-                    f.write('\n')
-                
-                f.write('\n')
-                f.write('\n')
-                
-                f.write("--------------------------------------------------------------------------------- \n") 
-                time.sleep(sleep_t)
-        f.close() 
-        time.sleep(180)
-
     def CASE63(self,main):
         
         main.case("Starting NB Throughput test after scaling up to 4 onos nodes")
@@ -1231,34 +898,35 @@
         ip2 = main.params['CTRL']['ip2']
         ip3 = main.params['CTRL']['ip3']
         ip4 = main.params['CTRL']['ip4']
+        ip5 = main.params['CTRL']['ip5']
+        ip6 = main.params['CTRL']['ip6']
 
         import time
         import json
-        int_num = main.params['int_num']
+        int_num = int(main.params['int_num'])
         addrate = main.params['addrate']
         NBdur = main.params['NBdur']
         NBsleep = int(main.params['NBsleep'])
         NBsleep_init = int(main.params['NBsleep_init'])
         NBloop = int(main.params['NBloop'])
         nbtpval = 0.0
+        main.log.report("Starting NB Throughput test: loading 6-node ONOS cluster with " + str(int_num) + " Intents/s" )
         global nbtpavg6n
         nbtpavg6n = 0.0
-
+        int_r = 6 * int_num
         main.Mininet4.handle.expect("\$")
-        #main.Mininet2.handle.sendline("sudo mn --custom topo-intentTPtest.py --topo mytopo --mac --arp")
-        #main.Mininet2.handle.expect("mininet>" , timeout=400)
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s1 tcp:10.128.10.1:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s2 tcp:10.128.10.2:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s3 tcp:10.128.10.3:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s4 tcp:10.128.10.4:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s5 tcp:10.128.10.5:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s6 tcp:10.128.10.6:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s7 tcp:10.128.10.6:6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s1 tcp:" + ip1 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s2 tcp:" + ip2 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s3 tcp:" + ip3 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s4 tcp:" + ip4 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s5 tcp:" + ip5 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s6 tcp:" + ip6 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s7 tcp:" + ip6 + ":6633")
         
         main.ONOS3.handle.sendline("cd ~admin/suibin-dev")
         main.ONOS3.handle.expect("\$")
 
-        main.ONOS3.handle.sendline("./loadgen_NB.py -n 6 -u \"10.128.10.1:8080 10.128.10.2:8080 10.128.10.3:8080 10.128.10.4:8080 10.128.10.5:8080 10.128.10.6:8080 \" -i " + int_num + " -a " + addrate + " -l " + NBdur + " -p 20")
+        main.ONOS3.handle.sendline("./loadgen_NB.py -n 6 -u \"" + ip1 + ":8080 " + ip2 + ":8080 " + ip3 + ":8080 " + ip4 + ":8080 " + ip5 + ":8080 " + ip6 + ":8080 \" -i " + str(int_r) + " -a " + addrate + " -l " + NBdur + " -p 20")
         main.ONOS3.handle.expect("Pause between add and delete:", timeout=900)
 
         
@@ -1266,14 +934,13 @@
         import json
         
         open("/home/admin/TestON/tests/scaleONOS7nodes/logs/NBscale6nodesrate1", 'w').close()
-        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
-        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
-        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
-        url4 = "http://10.128.10.4:8080/wm/onos/metrics"
-        url5 = "http://10.128.10.5:8080/wm/onos/metrics"
-        url6 = "http://10.128.10.6:8080/wm/onos/metrics"
+        url1 = main.params['url1']
+        url2 = main.params['url2']
+        url3 = main.params['url3']
+        url4 = main.params['url4']
+        url5 = main.params['url5']
+        url6 = main.params['url6']
         f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/NBscale6nodesrate1", "a")
-        #time.sleep(10)
         for i in range(NBloop):
             j1 = main.ONOS2.get_json(url1)
             j2 = main.ONOS2.get_json(url2)
@@ -1320,8 +987,8 @@
                     f.write('\n')
                     f.write('\n')
                     f.write('\n')
-                    if j == 3:
-                        nbtpval += float(json_str[j]["meters"][1]['meter']['m1_rate']) 
+                    
+                    nbtpval += float(json_str[j]["meters"][1]['meter']['m1_rate']) 
 
 
                     f.write("--------------------------------------------------------------------------------- \n") 
@@ -1329,16 +996,18 @@
                     time.sleep(NBsleep)
         f.close()
         print("\n")
-        nbtpavg6n = round(nbtpval)/NBloop
+        nbtpavg6n = round(round(nbtpval)/NBloop,2)
         print nbtpavg6n
         
         
 
         main.ONOS3.handle.expect("\$", timeout=900)
         time.sleep(180)
+        main.log.report("Intent Throughput for 6-node ONOS cluster = " + str(nbtpavg6n) + " Intents/sec")
     
     def CASE71(self,main):
         main.case("Starting SB test for 7 nodes")
+        main.log.report("SB Throughput test: loading 7-node ONOS cluster with 740 Topo Events/s")
         ip1 = main.params['CTRL']['ip1']
         ip2 = main.params['CTRL']['ip2']
         ip3 = main.params['CTRL']['ip3']
@@ -1355,7 +1024,6 @@
         sleep_t =int( main.params['sleep_t'])
         sleep_init = int(main.params['sleep_init'])
         main.case("Starting SB load on 6 nodes from mininet with " + rate1 +"  added/removed/s for " + run_dur)
-        #main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 + "\"" + " " + switches_num + " " + port + " " + rate1 + " " + run_dur +  "  \"11\"")
         main.Mininet2.handle.sendline("sudo ./loadgen_SB.py -u \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 + " " + ip5 +  " " + ip6 + " " + ip7 + "\"" + " -s " + switches_num + " -p " + port + " -a " + rate1 + " -d " + rate1 + " -l " + run_dur)
         main.Mininet2.handle.expect("Starting SB load....", timeout=900)
         import time
@@ -1366,17 +1034,15 @@
         time.sleep(sleep_init)
         
         open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale7nodesrate1", 'w').close()
-        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
-        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
-        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
-        url4 = "http://10.128.10.4:8080/wm/onos/metrics"
-        url5 = "http://10.128.10.5:8080/wm/onos/metrics"
-        url5 = "http://10.128.10.5:8080/wm/onos/metrics"
-        url6 = "http://10.128.10.6:8080/wm/onos/metrics"
-        url7 = "http://10.128.10.7:8080/wm/onos/metrics"
+        url1 = main.params['url1']
+        url2 = main.params['url2']
+        url3 = main.params['url3']
+        url4 = main.params['url4']
+        url5 = main.params['url5']
+        url6 = main.params['url6']
+        url7 = main.params['url7']
 
         f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale7nodesrate1", "a")
-        #time.sleep(10)
         for i in range(int (loop)):
             j1 = main.ONOS2.get_json(url1)
             j2 = main.ONOS2.get_json(url2)
@@ -1395,11 +1061,6 @@
             json_str.append(j6)
             json_str.append(j7)
             if json_str[1] != "" and json_str[2] != "" and json_str[3] != "" and json_str[4] != "" and json_str[5] != "" and json_str[6] != "" and json_str[7] != "":
-                # write_str = str(json_str["meters"][4]["meter"][2])
-                #print str(json_str["meters"][4])
-                #f.write(str(json_str["meters"][4]))
-                #f.write('\n')
-                #time.sleep(3)
                 for j in range(1,8):
                     f.write("ONOS" + str(j) + "\n")
                     f.write(str(json_str[j]["meters"][4]['meter']['count']))
@@ -1412,9 +1073,8 @@
                     f.write('\t')
                     f.write(str(json_str[j]["meters"][4]['meter']['mean_rate']))
                     f.write('\n')
-                    if j == 3:
+                    if j == 4:
                         tpval += float(json_str[j]["meters"][4]['meter']['m1_rate']) 
-                        #print tpval
                 
                 f.write('\n')
                 f.write('\n')
@@ -1422,21 +1082,19 @@
                 f.write("--------------------------------------------------------------------------------- \n") 
                 time.sleep(sleep_t)
         f.close() 
-        #print tpval
         print("\n")
         tpavg7n = round(tpval)/loop
         print tpavg7n
         
-        #main.Mininet2.handle.expect("\$", timeout=900)
-        #main.Mininet2.handle.sendline("sudo mn -c")
-        #main.Mininet2.handle.expect("\$")
         time.sleep(5)
         main.Mininet2.handle.expect("\$", timeout=900)
         time.sleep(180)
+        main.log.report("Topology Event Throughput for 7-node ONOS cluster = " + str(tpavg7n) + " Events/sec")
         
 
-    def CASE72(self,main):
+    def CASE73(self,main):
         
+        main.case("Starting NB Throughput test after scaling up to 7 onos nodes")
         ip1 = main.params['CTRL']['ip1']
         ip2 = main.params['CTRL']['ip2']
         ip3 = main.params['CTRL']['ip3']
@@ -1444,112 +1102,33 @@
         ip5 = main.params['CTRL']['ip5']
         ip6 = main.params['CTRL']['ip6']
         ip7 = main.params['CTRL']['ip7']
-        
-        import time
-        import json
-        rate2 = main.params['RATE2']
-        run_dur = main.params['RUN_DUR']
-        loop = int(main.params['loop'])
-        sleep_t = int(main.params['sleep_t'])
-        sleep_init = int(main.params['sleep_init'])
-        switches_num = main.params['switches_num']
-        port = main.params['port']
-        main.case("Starting SB load on 7 nodes from mininet with " + rate2 +"  added/removed/s for " + run_dur)
-        #main.Mininet2.handle.sendline("./loadgen_SB.sh startload \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 +  "\"" + " " + switches_num + " " + port +  " " + rate2 + " " + run_dur +  "  \"11\"")
-        main.Mininet2.handle.sendline("sudo ./loadgen_SB.py -u \"" + ip1 + " " + ip2 + " " + ip3 + " " + ip4 + " " + ip5 + " " + ip6 + " " + ip7 + "\"" + " -s " + switches_num + " -p " + port + " -a " + rate2 + " -d " + rate2 + " -l " + run_dur)
-        main.Mininet2.handle.expect("Starting SB load....", timeout=900 )
-        
-        time.sleep(sleep_init)
-
-        open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale7nodesrate2", 'w').close()
-        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
-        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
-        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
-        url4 = "http://10.128.10.4:8080/wm/onos/metrics"
-        url5 = "http://10.128.10.5:8080/wm/onos/metrics"
-        url6 = "http://10.128.10.6:8080/wm/onos/metrics"
-        url7 = "http://10.128.10.7:8080/wm/onos/metrics"
-        f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/scale6nodesrate2", "a")
-        #time.sleep(10)
-        for i in range(int (loop)):
-            j1 = main.ONOS2.get_json(url1)
-            j2 = main.ONOS2.get_json(url2)
-            j3 = main.ONOS2.get_json(url3)
-            j4 = main.ONOS2.get_json(url4)
-            j5 = main.ONOS2.get_json(url5)
-            j6 = main.ONOS2.get_json(url6)
-            j7 = main.ONOS2.get_json(url7)
-            json_str = []
-            json_str.append(0)
-            json_str.append(j1)
-            json_str.append(j2)
-            json_str.append(j3)
-            json_str.append(j4)
-            json_str.append(j5)
-            json_str.append(j6)
-            json_str.append(j7)
-            if json_str[1] != "" and json_str[2] != "" and json_str[3] != "" and json_str[4] != "" and json_str[5] != "" and json_str[6] != "" and json_str[7] != "":
-                # write_str = str(json_str["meters"][4]["meter"][2])
-                #print str(json_str["meters"][4])
-                #f.write(str(json_str["meters"][4]))
-                #f.write('\n')
-                #time.sleep(3)
-                for j in range(1,8):
-                    f.write("ONOS" + str(j) + "\n")
-                    f.write(str(json_str[j]["meters"][4]['meter']['count']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['m1_rate']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['m5_rate']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['m15_rate']))
-                    f.write('\t')
-                    f.write(str(json_str[j]["meters"][4]['meter']['mean_rate']))
-                    f.write('\n')
-                
-                f.write('\n')
-                f.write('\n')
-                
-                f.write("--------------------------------------------------------------------------------- \n") 
-                time.sleep(sleep_t)
-        f.close() 
-        time.sleep(180)
-
-    def CASE73(self,main):
-        
-        main.case("Starting NB Throughput test after scaling up to 4 onos nodes")
-        ip1 = main.params['CTRL']['ip1']
-        ip2 = main.params['CTRL']['ip2']
-        ip3 = main.params['CTRL']['ip3']
-        ip4 = main.params['CTRL']['ip4']
 
         import time
         import json
-        int_num = main.params['int_num']
+        int_num = int(main.params['int_num'])
         addrate = main.params['addrate']
         NBdur = main.params['NBdur']
         NBsleep = int(main.params['NBsleep'])
         NBsleep_init = int(main.params['NBsleep_init'])
         NBloop = int(main.params['NBloop'])
+        main.log.report("Starting NB Throughput test: loading 7-node ONOS cluster with " + str(int_num) + " Intents/s" )
         nbtpval = 0.0
         global nbtpavg7n
         nbtpavg7n = 0.0
-
+        int_r = 7 * int_num
         main.Mininet4.handle.expect("\$")
-        #main.Mininet2.handle.sendline("sudo mn --custom topo-intentTPtest.py --topo mytopo --mac --arp")
-        #main.Mininet2.handle.expect("mininet>" , timeout=400)
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s1 tcp:10.128.10.1:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s2 tcp:10.128.10.2:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s3 tcp:10.128.10.3:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s4 tcp:10.128.10.4:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s5 tcp:10.128.10.5:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s6 tcp:10.128.10.6:6633")
-        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s7 tcp:10.128.10.7:6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s1 tcp:" + ip1 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s2 tcp:" + ip2 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s3 tcp:" + ip3 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s4 tcp:" + ip4 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s5 tcp:" + ip5 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s6 tcp:" + ip6 + ":6633")
+        main.Mininet4.handle.sendline("sudo ovs-vsctl set-controller s7 tcp:" + ip7 + ":6633")
         
         main.ONOS3.handle.sendline("cd ~admin/suibin-dev")
         main.ONOS3.handle.expect("\$")
 
-        main.ONOS3.handle.sendline("./loadgen_NB.py -n 7 -u \"10.128.10.1:8080 10.128.10.2:8080 10.128.10.3:8080 10.128.10.4:8080 10.128.10.6:8080 10.128.10.5:8080 10.128.10.7:8080  \" -i " + int_num + " -a " + addrate + " -l " + NBdur + " -p 20")
+        main.ONOS3.handle.sendline("./loadgen_NB.py -n 7 -u \"" + ip1 + ":8080 " + ip2 + ":8080 " + ip3 + ":8080 " + ip4 + ":8080 " + ip6 + ":8080 " + ip5 + ":8080 " + ip7 + ":8080  \" -i " + str(int_r) + " -a " + addrate + " -l " + NBdur + " -p 20")
         main.ONOS3.handle.expect("Pause between add and delete:", timeout=900)
 
         
@@ -1557,15 +1136,14 @@
         import json
         
         open("/home/admin/TestON/tests/scaleONOS7nodes/logs/NBscale7nodesrate1", 'w').close()
-        url1 = "http://10.128.10.1:8080/wm/onos/metrics"
-        url2 = "http://10.128.10.2:8080/wm/onos/metrics"
-        url3 = "http://10.128.10.3:8080/wm/onos/metrics"
-        url4 = "http://10.128.10.4:8080/wm/onos/metrics"
-        url5 = "http://10.128.10.5:8080/wm/onos/metrics"
-        url6 = "http://10.128.10.6:8080/wm/onos/metrics"
-        url7 = "http://10.128.10.7:8080/wm/onos/metrics"
+        url1 = main.params['url1']
+        url2 = main.params['url2']
+        url3 = main.params['url3']
+        url4 = main.params['url4']
+        url5 = main.params['url5']
+        url6 = main.params['url6']
+        url7 = main.params['url7']
         f = open("/home/admin/TestON/tests/scaleONOS7nodes/logs/NBscale7nodesrate1", "a")
-        #time.sleep(10)
         for i in range(NBloop):
             j1 = main.ONOS2.get_json(url1)
             j2 = main.ONOS2.get_json(url2)
@@ -1614,8 +1192,8 @@
                     f.write('\n')
                     f.write('\n')
                     f.write('\n')
-                    if j == 3:
-                        nbtpval += float(json_str[j]["meters"][1]['meter']['m1_rate']) 
+                    
+                    nbtpval += float(json_str[j]["meters"][1]['meter']['m1_rate']) 
 
 
                     f.write("--------------------------------------------------------------------------------- \n") 
@@ -1623,16 +1201,17 @@
                     time.sleep(NBsleep)
         f.close()
         print("\n")
-        nbtpavg7n = round(nbtpval)/NBloop
+        nbtpavg7n = round(round(nbtpval)/NBloop,2)
         print nbtpavg7n
         
 
         main.ONOS3.handle.expect("\$", timeout=900)
         time.sleep(180)
+        main.log.report("Intent Throughput for 7-node ONOS cluster = " + str(nbtpavg7n) + " Intents/sec")
     
     def CASE8(self,main):
         import time
-        main.case("Scaling ONOS down to 6 ONOS instances")
+        main.log.report("Scaling ONOS down to 6 ONOS instances")
         main.ONOS7.handle.sendline("./onos.sh core stop")
         time.sleep(8)
         pdata = main.ONOS7.isup()
@@ -1641,19 +1220,15 @@
         data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup() and main.ONOS5.isup() and main.ONOS6.isup()
         for i in range(3):
             if data == main.FALSE: 
-                #main.log.report("Something is funny... restarting ONOS")
-                #main.ONOS1.stop()
                 time.sleep(3)
-                #main.ONOS1.start()
-                #time.sleep(5) 
                 data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup() and main.ONOS5.isup() and main.ONOS6.isup()
             else:
                 break
-        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="ONOS is up and running!",onfail="ONOS didn't start...")
+        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="Scale down successfull -6-node ONOS cluster is up and running!",onfail="ONOS didn't start...")
     
     def CASE9(self,main):
 
-        main.case("Scaling ONOS down to 5 ONOS instances")
+        main.log.report("Scaling ONOS down to 5 ONOS instances")
         main.ONOS6.handle.sendline("./onos.sh core stop")
         time.sleep(8)
         pdata = main.ONOS6.isup() and main.ONOS7.isup()
@@ -1661,19 +1236,15 @@
         data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup() and main.ONOS5.isup()
         for i in range(3):
             if data == main.FALSE: 
-                #main.log.report("Something is funny... restarting ONOS")
-                #main.ONOS1.stop()
                 time.sleep(3)
-                #main.ONOS1.start()
-                #time.sleep(5) 
                 data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup() and main.ONOS5.isup()
             else:
                 break
-        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="ONOS is up and running!",onfail="ONOS didn't start...")
+        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="Scale down successfull - 5 node ONOS clsuter is up and running!",onfail="ONOS didn't start...")
 
     def CASE10(self,main):
 
-        main.case("Scaling ONOS down to 4 ONOS instances")
+        main.log.report("Scaling ONOS down to 4 ONOS instances")
         
         main.ONOS5.handle.sendline("./onos.sh core stop ")
         time.sleep(5)
@@ -1682,19 +1253,15 @@
         data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup()
         for i in range(3):
             if data == main.FALSE: 
-                #main.log.report("Something is funny... restarting ONOS")
-                #main.ONOS1.stop()
                 time.sleep(3)
-                #main.ONOS1.start()
-                #time.sleep(5) 
                 data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup() and main.ONOS4.isup()
             else:
                 break
-        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="ONOS is up and running!",onfail="ONOS didn't start...")
+        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="Scale down successful - 4 node ONOS cluster is up and running!",onfail="ONOS didn't start...")
 
     def CASE11(self,main):
 
-        main.case("Scaling ONOS down to 3 ONOS instances")
+        main.log.report("Scaling ONOS down to 3 ONOS instances")
         main.ONOS4.handle.sendline("./onos.sh core stop ")
         time.sleep(5)
         pdata = main.ONOS4.isup() and main.ONOS5.isup() and  main.ONOS6.isup() and main.ONOS7.isup()
@@ -1702,15 +1269,11 @@
         data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup()
         for i in range(3):
             if data == main.FALSE: 
-                #main.log.report("Something is funny... restarting ONOS")
-                #main.ONOS1.stop()
                 time.sleep(3)
-                #main.ONOS1.start()
-                #time.sleep(5) 
                 data = main.ONOS1.isup() and main.ONOS2.isup() and main.ONOS3.isup()
             else:
                 break
-        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="ONOS is up and running!",onfail="ONOS didn't start...")
+        utilities.assert_equals(expect=main.TRUE,actual=data,onpass="Scale down successful - 3 node ONOS cluster is up and running!",onfail="ONOS didn't start...")
 
     def CASE100(self,main):
         import os
@@ -1748,31 +1311,36 @@
     def CASE103(self,main):
         import os
         import time
-        main.case("Posting the results to http://10.128.5.54/scale.html ....")
+        main.log.report("Posting the results to http://10.128.5.54/scale.html")
         db_script = main.params['db_script']
         os.system(db_script + " -n='100SwitchScaleUp" + "' -rate3='" + str(tpavg3n) + "' -rate4='" + str(tpavg4n) + "' -rate5='" + str(tpavg5n) + "' -rate6='" + str(tpavg6n) + "' -rate7='" + str(tpavg7n) + "' -table='onos_scale'")
-
+        main.log.report("The graphical view of the tests can be viewed at http://10.128.5.54/scale.html")
+    
     def CASE104(self,main):
         import os
         import time
-        main.case("Posting the results to http://10.128.5.54/scale.html ....")
+        main.log.report("Posting the results to http://10.128.5.54/scale.html ....")
         db_script = main.params['db_script']
         os.system(db_script + " -n='100SwitchScaleDown" + "' -rate3='" + str(tpavg3n) + "' -rate4='" + str(tpavg4n) + "' -rate5='" + str(tpavg5n) + "' -rate6='" + str(tpavg6n) + "' -rate7='" + str(tpavg7n) + "' -table='onos_scale'")
 
+        main.log.report("The graphical view of the tests can be viewed at http://10.128.5.54/scale.html")
 
     def CASE105(self,main):
         import os
         import time
-        main.case("Posting the results to http://10.128.5.54/scale.html ....")
+        main.log.report("Posting the results to http://10.128.5.54/scale.html ....")
         db_script = main.params['db_script']
         os.system(db_script + " -n='1000IntentsScaleUp" + "' -rate3='" + str(nbtpavg3n) + "' -rate4='" + str(nbtpavg4n) + "' -rate5='" + str(nbtpavg5n) + "' -rate6='" + str(nbtpavg6n) + "' -rate7='" + str(nbtpavg7n) + "' -table='onos_scale'")
 
+        main.log.report("The graphical view of the tests can be viewed at http://10.128.5.54/scale.html")
+
     def CASE106(self,main):
         import os
         import time
-        main.case("Posting the results to http://10.128.5.54/scale.html ....")
+        main.log.report("Posting the results to http://10.128.5.54/scale.html ....")
         db_script = main.params['db_script']
         os.system(db_script + " -n='1000IntentsScaleDown" + "' -rate3='" + str(nbtpavg3n) + "' -rate4='" + str(nbtpavg4n) + "' -rate5='" + str(nbtpavg5n) + "' -rate6='" + str(nbtpavg6n) + "' -rate7='" + str(nbtpavg7n) + "' -table='onos_scale'")
 
+        main.log.report("The graphical view of the tests can be viewed at http://10.128.5.54/scale.html")