diff options
author | nice | 2014-10-09 18:07:00 +0530 |
---|---|---|
committer | nice | 2014-10-09 18:07:00 +0530 |
commit | 8048392490bd2efe0fdfa001945f663cba969841 (patch) | |
tree | c298682dfb22073b17d86791c5e7a756f4aa1a92 /Programming_in_C_using_ANSI_C | |
parent | b9ebc3adfe1cd0b17f061dd639a5c76329e09afa (diff) | |
download | Python-Textbook-Companions-8048392490bd2efe0fdfa001945f663cba969841.tar.gz Python-Textbook-Companions-8048392490bd2efe0fdfa001945f663cba969841.tar.bz2 Python-Textbook-Companions-8048392490bd2efe0fdfa001945f663cba969841.zip |
updated books
Diffstat (limited to 'Programming_in_C_using_ANSI_C')
21 files changed, 67198 insertions, 0 deletions
diff --git a/Programming_in_C_using_ANSI_C/KamthaneChapter10.ipynb b/Programming_in_C_using_ANSI_C/KamthaneChapter10.ipynb new file mode 100755 index 00000000..68503d70 --- /dev/null +++ b/Programming_in_C_using_ANSI_C/KamthaneChapter10.ipynb @@ -0,0 +1,2940 @@ +{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 10: Functions<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.1, Page number: 320<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#user defined function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = 1\n",
+ "y = 2\n",
+ "\n",
+ "#Function definition\n",
+ "def add(a,b):\n",
+ " return a+b\n",
+ "\n",
+ "#Function call\n",
+ "z = add(x,y)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"z = %d\"%(z))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "z = 3"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.2, Page number: 321<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Call user-defined function at different places.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definitions\n",
+ "def y():\n",
+ " sys.stdout.write(\" Y\")\n",
+ " return\n",
+ "\n",
+ "def a():\n",
+ " sys.stdout.write(\" A\")\n",
+ " y()\n",
+ " return\n",
+ "\n",
+ "def b():\n",
+ " sys.stdout.write(\" B\")\n",
+ " a()\n",
+ " return\n",
+ "\n",
+ "def c():\n",
+ " a()\n",
+ " b()\n",
+ " sys.stdout.write(\" C\")\n",
+ " return\n",
+ "\n",
+ "def d():\n",
+ " sys.stdout.write(\" D\")\n",
+ " c()\n",
+ " b()\n",
+ " a()\n",
+ " return\n",
+ "\n",
+ "#Function calls\n",
+ "y()\n",
+ "a()\n",
+ "b()\n",
+ "c()\n",
+ "d()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Y A Y B A Y A Y B A Y C D A Y B A Y C B A Y A Y"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.3, Page number: 323<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Using similar variable names in different functions.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definition\n",
+ "def fun():\n",
+ " b = 20\n",
+ " c = 10\n",
+ " sys.stdout.write(\"\\nIn fun() B = %d C = %d\"%(b,c))\n",
+ " return\n",
+ "\n",
+ "#Variable Initialization\n",
+ "b = 10\n",
+ "c = 5\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nIn main() B = %d C = %d\"%(b,c))\n",
+ "fun()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "In main() B = 10 C = 5\n",
+ "In fun() B = 20 C = 10"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.4, Page number: 323<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Global variables on different functions.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Global Variable Initialization\n",
+ "b = 10\n",
+ "c = 5\n",
+ "\n",
+ "def fun():\n",
+ " global b \n",
+ " b += 1\n",
+ " global c \n",
+ " c -= 1\n",
+ " sys.stdout.write(\"\\nIn fun() B = %d C = %d\"%(b,c))\n",
+ " return\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nIn main() B = %d C = %d\"%(b,c))\n",
+ "fun()\n",
+ "b += 1\n",
+ "c -= 1\n",
+ "sys.stdout.write(\"\\nAgain In main() B = %d C = %d\"%(b,c))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "In main() B = 10 C = 5\n",
+ "In fun() B = 11 C = 4\n",
+ "Again In main() B = 12 C = 3"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.5, Page number: 325<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Using return statement in different ways\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definition\n",
+ "def pass1(a):\n",
+ " if a == 0:\n",
+ " return;\n",
+ " else:\n",
+ " return a*a*a\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = int(raw_input(\"Enter value of x : \"))\n",
+ "\n",
+ "#Function call & Result\n",
+ "if x != 1 or x > 0:\n",
+ " y = pass1(x)\n",
+ "\n",
+ "#There is no switch statement in python, so if..else statement\n",
+ "if y == 1:\n",
+ " sys.stdout.write(\"The value returned is %d\"%(y))\n",
+ "else:\n",
+ " sys.stdout.write(\"The Cube of %d is : %d\"%(x,y))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value of x : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Cube of 5 is : 125"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.6, Page number: 327<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display message using user defined function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definition\n",
+ "def message():\n",
+ " sys.stdout.write(\"Have a nice day\")\n",
+ "\n",
+ "#function call\n",
+ "message()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Have a nice day"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.7, Page number: 328<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display Alphabets 'A','B' and 'C' using functions\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Functions definitions\n",
+ "def a():\n",
+ " sys.stdout.write(\"\\nA\")\n",
+ " \n",
+ "def b():\n",
+ " sys.stdout.write(\" B\")\n",
+ " \n",
+ "def c():\n",
+ " sys.stdout.write(\" C\")\n",
+ " \n",
+ "#Function call\n",
+ "a()\n",
+ "b()\n",
+ "c()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "A B C"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.8, Page number: 329<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Send value to user defined function and display results\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def dat(x,y,z):\n",
+ " sys.stdout.write(\"Date = %d/%d/%d\"%(x,y,z))\n",
+ " \n",
+ "#Variable Initialization\n",
+ "d = int(raw_input(\"Enter date dd/mm/yy\"))\n",
+ "m = int(raw_input(\"Enter date dd/mm/yy\"))\n",
+ "y = int(raw_input(\"Enter date dd/mm/yy\"))\n",
+ "\n",
+ "#function call & Result\n",
+ "dat(d,m,y)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter date dd/mm/yy12\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter date dd/mm/yy12\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter date dd/mm/yy2001\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Date = 12/12/2001"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.9, Page number: 330<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Square of number using user defined function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#function definition\n",
+ "def sqr(k):\n",
+ " sys.stdout.write(\"\\n%d\"%(k*k))\n",
+ " \n",
+ "#Variable Initialization\n",
+ "j = 0\n",
+ "\n",
+ "#Function call & Result\n",
+ "for j in range(1,5):\n",
+ " sqr(j)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "1\n",
+ "4\n",
+ "9\n",
+ "16"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.10, Page number: 330<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Pass the value to main() function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#There is no main function in python\n",
+ "sys.stdout.write(\"\\nNumber of command line arguments J = %d\"%(len(sys.argv)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Number of command line arguments J = 6"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.11, Page number: 331<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Pass and return values to user defined function. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definitions\n",
+ "def dat(x,y,z):\n",
+ " sys.stdout.write(\"\\nToday = %d/%d/%d\"%(x,y,z))\n",
+ " x += 1\n",
+ " return x\n",
+ "\n",
+ "#Variable Initialization\n",
+ "d = int(raw_input(\"Enter Date dd/mm/yy : \"))\n",
+ "m = int(raw_input(\"Enter Date dd/mm/yy : \"))\n",
+ "y = int(raw_input(\"Enter Date dd/mm/yy : \"))\n",
+ "\n",
+ "#Function call\n",
+ "t = dat(d,m,y)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nTomorrow = %d/%d/%d\"%(t,m,y))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Date dd/mm/yy : 12\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Date dd/mm/yy : 12\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Date dd/mm/yy : 2001\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Today = 12/12/2001\n",
+ "Tomorrow = 13/12/2001"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.12, Page number: 332<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Send and recieve values to user defined function \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definition\n",
+ "def sum1(x,y,z):\n",
+ " return x+y+z\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = int(raw_input(\"Enter Three Numbers : \"))\n",
+ "b = int(raw_input(\"Enter Three Numbers : \"))\n",
+ "c = int(raw_input(\"Enter Three Numbers : \"))\n",
+ "\n",
+ "#Function call\n",
+ "s = sum1(a,b,c)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Sum = %d\"%(s))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three Numbers : 7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three Numbers : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three Numbers : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum = 16"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.13, Page number: 333<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Recieve values from user defined function without passing any \n",
+ "#value through main().\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definition\n",
+ "def sum1():\n",
+ " x = int(raw_input(\"Enter Three Numbers : \"))\n",
+ " y = int(raw_input(\"Enter Three Numbers : \"))\n",
+ " z = int(raw_input(\"Enter Three Numbers : \"))\n",
+ " return x+y+z\n",
+ "\n",
+ "#Function call\n",
+ "s = sum1()\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Sum = %d\"%(s))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three Numbers : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three Numbers : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three Numbers : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum = 12"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.14, Page number: 333<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Return value in the form of address.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definition\n",
+ "def sum1():\n",
+ " x = int(raw_input(\"Enter Three Values : \"))\n",
+ " y = int(raw_input(\"Enter Three Values : \"))\n",
+ " z = int(raw_input(\"Enter Three Values : \"))\n",
+ " k = x + y + z\n",
+ " return k\n",
+ "\n",
+ "#There is no pointer concept in python\n",
+ "\n",
+ "#Function call\n",
+ "s = sum1()\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Sum = %d\"%(s))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three Values : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three Values : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three Values : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum = 12"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.15, Page number: 334<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Call by value\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def change(a,b):\n",
+ " k = a\n",
+ " a = b\n",
+ " b = k\n",
+ " sys.stdout.write(\"\\nIn Change() X = %d Y = %d\"%(a,b))\n",
+ " \n",
+ "#Variable Initialization\n",
+ "x = int(raw_input(\"Enter Values of X & Y : \"))\n",
+ "y = int(raw_input(\"Enter Values of X & Y : \"))\n",
+ "\n",
+ "#Function call\n",
+ "change(x,y)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nIn main() X = %d Y = %d\"%(x,y))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values of X & Y : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values of X & Y : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "In Change() X = 4 Y = 5\n",
+ "In main() X = 5 Y = 4"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.16, Page number: 335<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Call by reference \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def change(a,b):\n",
+ " k = a\n",
+ " a = b\n",
+ " b = k\n",
+ " sys.stdout.write(\"\\nIn Change() X = %d Y = %d\"%(a,b))\n",
+ " \n",
+ "#There is no pointer concept in python\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = int(raw_input(\"Enter Values of X & Y : \"))\n",
+ "y = int(raw_input(\"Enter Values of X & Y : \"))\n",
+ "\n",
+ "#Function call\n",
+ "change(x,y)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nIn main() X = %d Y = %d\"%(y,x))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values of X & Y : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values of X & Y : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "In Change() X = 4 Y = 5\n",
+ "In main() X = 4 Y = 5"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.17, Page number: 336<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Return by reference\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def change(a,b):\n",
+ " c = a + b\n",
+ " d = a - b\n",
+ " return c,d\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = int(raw_input(\"Enter Values of X & Y : \"))\n",
+ "y = int(raw_input(\"Enter Values of X & Y : \"))\n",
+ "\n",
+ "#Function call\n",
+ "add,sub = change(x,y)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nAddition : %d\"%(add))\n",
+ "sys.stdout.write(\"\\nSubtraction : %d\"%(sub))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values of X & Y : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values of X & Y : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Addition : 9\n",
+ "Subtraction : 1"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.18, Page number: 337<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Call by value and reference\n",
+ "\n",
+ "k = 0\n",
+ "m = 0\n",
+ "\n",
+ "#Function Definition\n",
+ "def other(k,m):\n",
+ " sys.stdout.write(\"\\nAddress of k & m in other() : %u %u\"%(id(k),id(m)))\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nAddress of k & m in main() : %u %u\"%(id(k),id(m)))\n",
+ "\n",
+ "#Function call\n",
+ "other(k,m)\n",
+ "\n",
+ "#there is no pointer concept in python and it uses value tagged method in data storage\n",
+ "#instead of addressing the memory location, values of same variables are tagged together"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Address of k & m in main() : 30922996 30922996\n",
+ "Address of k & m in other() : 30922996 30922996"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.19, Page number: 338<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#User defined function as an argument to another function.\n",
+ "\n",
+ "#Variable Initialization\n",
+ "y = 2\n",
+ "\n",
+ "#Function Definitions\n",
+ "def double(m):\n",
+ " return m*2\n",
+ "\n",
+ "def square(k):\n",
+ " return k*k\n",
+ "\n",
+ "#Function call\n",
+ "x = double(square(y))\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"x = %d\"%(x))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x = 8"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.20, Page number: 338<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Two functions as arguments for another functions\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definitions\n",
+ "def x(a,b):\n",
+ " return abs(a-b)\n",
+ "\n",
+ "def y():\n",
+ " y = int(raw_input(\"Enter First Number : \"))\n",
+ " return y\n",
+ "\n",
+ "def z():\n",
+ " z = int(raw_input(\"Enter Second Number : \"))\n",
+ " return z\n",
+ "\n",
+ "#Function call\n",
+ "d = x(y(),z())\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nz() - y() = %d\"%(d))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter First Number : 25\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Second Number : 50\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "z() - y() = 25"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.21, Page number: 339<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Return only absolute value like abs() function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def uabs(y):\n",
+ " if y < 0:\n",
+ " return y * -1\n",
+ " else:\n",
+ " return y\n",
+ " \n",
+ "#Variable Initialization\n",
+ "x = int(raw_input(\"Enter a Negative Value : \"))\n",
+ "\n",
+ "#Function call\n",
+ "x = uabs(x)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nX = %d\"%(x))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Negative Value : -5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "X = 5"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.22, Page number: 340<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Square and cube of an entered number. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definitions\n",
+ "def input1(): #Since input() is a built in function in python, input1() is used\n",
+ " k = int(raw_input(\"Number : \"))\n",
+ " return k\n",
+ "\n",
+ "def sqr(m):\n",
+ " sys.stdout.write(\"\\nSquare : %d\"%(m*m))\n",
+ " return m\n",
+ "\n",
+ "def cube(m):\n",
+ " return m*m*m\n",
+ "\n",
+ "#Function call and Result\n",
+ "sys.stdout.write(\"\\nCube : %d\"%(cube(sqr(input1()))))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number : 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Square : 4\n",
+ "Cube : 8"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.23, Page number: 341<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Assign return value of a function to variable.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def input1():\n",
+ " k = int(raw_input(\"Enter Value of x = \"))\n",
+ " return k\n",
+ "\n",
+ "#Function call\n",
+ "x = input1()\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nx = %d\"%(x))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Value of x = 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "x = 5"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.24, Page number: 342<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Addition and subtraction of numbers with return value of function.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def input1():\n",
+ " k = int(raw_input(\"Enter Value of x = \"))\n",
+ " return k\n",
+ "\n",
+ "def sqr(m):\n",
+ " return pow(m,2)\n",
+ "\n",
+ "#Function call\n",
+ "x = sqr(1 - input1() + 1)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nSquare = %d\"%(x))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Value of x = 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Square = 9"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.25, Page number: 343<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Multiplication and division of numbers with return value of function.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def input1():\n",
+ " k = int(raw_input(\"Enter Value of x = \"))\n",
+ " return k\n",
+ "\n",
+ "def sqr(m):\n",
+ " return pow(m,2)\n",
+ "\n",
+ "#Function call\n",
+ "x = sqr(5 * input1()/2)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nSquare = %d\"%(x))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Value of x = 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Square = 144"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.26, Page number: 344<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "# ++ operator with return value of function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def input1():\n",
+ " k = int(raw_input(\"Enter Value of x = \"))\n",
+ " return k\n",
+ "\n",
+ "def sqr(m):\n",
+ " return pow(m,2)\n",
+ "\n",
+ "#Function call\n",
+ "#There is no ++ operator in python. so += operator is used\n",
+ "y = input1()\n",
+ "y += 1\n",
+ "x = sqr(y)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nSquare = %d\"%(x))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Value of x = 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Square = 64"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.27, Page number: 345<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Use mod(%) with function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def j():\n",
+ " x = int(raw_input(\"Enter a Number : \"))\n",
+ " return x\n",
+ " \n",
+ "#Function call & Result\n",
+ "if j() %2 == 0:\n",
+ " sys.stdout.write(\"\\nNumber is Even.\")\n",
+ "else:\n",
+ " sys.stdout.write(\"\\nNumber is Odd.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Number is Odd."
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.28, Page number: 346<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Conditional operator(?) with function.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definitions\n",
+ "def sqr(x):\n",
+ " sys.stdout.write(\"Square \")\n",
+ " return pow(x,2)\n",
+ "\n",
+ "def cube(x):\n",
+ " sys.stdout.write(\"Cube \")\n",
+ " return pow(x,3)\n",
+ "\n",
+ "def y():\n",
+ " return 10\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = int(raw_input(\"Enter a Number : \"))\n",
+ "\n",
+ "#Function call\n",
+ "z = sqr(x) if x > y() else cube(x)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\" = %d\"%(z))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Cube = 125"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.29, Page number: 346<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#compare two return values of functions\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definitions\n",
+ "def a():\n",
+ " x = int(raw_input(\"Enter a Number a() : \"))\n",
+ " return x\n",
+ "\n",
+ "def b():\n",
+ " x = int(raw_input(\"Enter a Number b() : \"))\n",
+ " return x\n",
+ "\n",
+ "#Function call and Result\n",
+ "if a() == b():\n",
+ " sys.stdout.write(\"\\nValue of a() & b() are equal\")\n",
+ "else:\n",
+ " sys.stdout.write(\"\\nValue of a() & b() are unique\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number a() : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number b() : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Value of a() & b() are equal"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.30, Page number: 347<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Evaluate the equation s = sqr(a() + b()) using function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definitions\n",
+ "def a():\n",
+ " a = int(raw_input(\"Enter value of a : \"))\n",
+ " return a\n",
+ "\n",
+ "def b():\n",
+ " b = int(raw_input(\"Enter value of b : \"))\n",
+ " return b\n",
+ "\n",
+ "def sqr(x):\n",
+ " return x*x\n",
+ "\n",
+ "#Function call\n",
+ "s = sqr(a() + b())\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nSquare of Sum = %d\"%(s))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value of a : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value of b : 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Square of Sum = 64"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.31, Page number: 348<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Evaluate the equation y = x^1+x^2..x^n using function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def b(m):\n",
+ " m += 1\n",
+ " #sys.stdout.write(\"%d\"%(m))\n",
+ " return m\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = int(raw_input(\"Values of 'x' and 'n' : \"))\n",
+ "n = int(raw_input(\"Values of 'x' and 'n' : \"))\n",
+ "y = 0\n",
+ "z = 1\n",
+ "m = 0\n",
+ "\n",
+ "while(z <= n):\n",
+ " m = b(m)\n",
+ " y = y + pow(x,m)\n",
+ " sys.stdout.write(\"%d + \"%(y))\n",
+ " z += 1\n",
+ " \n",
+ "if z >= n:\n",
+ " sys.stdout.write(\"\\nValue of y = %d\"%(y))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Values of 'x' and 'n' : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Values of 'x' and 'n' : 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3 + 12 + 39 + \n",
+ "Value of y = 39"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.32, Page number: 350<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Call user defined function through if statement\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def a():\n",
+ " a = int(raw_input(\"Enter value of a :\"))\n",
+ " return a\n",
+ "\n",
+ "#Function call and Result\n",
+ "if a()%2 == 0:\n",
+ " sys.stdout.write(\"\\nThe number is even.\")\n",
+ "else:\n",
+ " sys.stdout.write(\"\\nThe number is odd.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value of a :5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The number is odd."
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.33, Page number: 351<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Call user defined function through switch() statement\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def a():\n",
+ " c = raw_input(\"Enter Your Choice Square(s), Cube(c), Double(d) : \")\n",
+ " c = c.lower()\n",
+ " return c\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = 5\n",
+ "\n",
+ "#There is no switch() statement in python.\n",
+ "c = a()\n",
+ "if c == 's':\n",
+ " sys.stdout.write(\"\\nSquare of %d is %d\"%(x,pow(x,2)))\n",
+ "else:\n",
+ " if c == 'c':\n",
+ " sys.stdout.write(\"\\nCube of %d is %d\"%(x,pow(x,3)))\n",
+ " else:\n",
+ " if c == 'd':\n",
+ " sys.stdout.write(\"\\nDouble of %d is %d\"%(x,x*2))\n",
+ " else:\n",
+ " sys.stdout.write(\"\\nUnexpected Choice printed as it is : %d\"%(x))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Your Choice Square(s), Cube(c), Double(d) : D\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Double of 5 is 10"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.34, Page number: 353<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Call function through the for loop\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def plus(k):\n",
+ " if k == 10:\n",
+ " return 0\n",
+ " else:\n",
+ " return k\n",
+ " \n",
+ "#Variable Initialization\n",
+ "m = 1\n",
+ "\n",
+ "#Function call & Result\n",
+ "#in python, for loop iterates through a range of number. so while loop is used instead.\n",
+ "while plus(m) != 0:\n",
+ " sys.stdout.write(\"%3d\"%(m))\n",
+ " m += 1\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1 2 3 4 5 6 7 8 9"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.35, Page number: 354<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Call user defined function through while() loop\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def y():\n",
+ " x = int(raw_input(\"Enter a Number : \"))\n",
+ " return x\n",
+ "\n",
+ "#Function call & Result\n",
+ "while y() != 0:\n",
+ " sys.stdout.write(\"Value enter is non-zero\\n\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value enter is non-zero\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number : 0\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.36, Page number: 355<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Call user defined function through do while() loop\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def y():\n",
+ " x = int(raw_input(\"Enter a Number : \"))\n",
+ " return x\n",
+ "\n",
+ "#Function call and Result\n",
+ "#There is no do-while loop in python\n",
+ "\n",
+ "while y() != 0:\n",
+ " sys.stdout.write(\"\\nValue entered is non-zero\\n\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Value entered is non-zero\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number : 0\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.37, Page number: 356<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Initialize an array using functions.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def c(m):\n",
+ " n = int(raw_input(\"Enter Number d[%d]\"%(m+1)))\n",
+ " return n\n",
+ "\n",
+ "#Variable Initialization\n",
+ "d = [c(i) for i in range(0,5)]\n",
+ "\n",
+ "sys.stdout.write(\"\\nArray d[] elements are : \")\n",
+ "for k in range(0,5):\n",
+ " sys.stdout.write(\"%2d\"%d[k])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number d[1]4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number d[2]5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number d[3]6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number d[4]7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number d[5]8\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Array d[] elements are : 4 5 6 7 8"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.38, Page number: 357<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Pass array element to the function using call by value method.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def show(m,u):\n",
+ " sys.stdout.write(\"\\nnum[%d] = %d\"%(m+1,u))\n",
+ " \n",
+ "#Variable initialization\n",
+ "num = [12,13,14,15,16,17,18]\n",
+ "\n",
+ "#Function call & Result\n",
+ "for k in range(0,7):\n",
+ " show(k,num[k])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "num[1] = 12\n",
+ "num[2] = 13\n",
+ "num[3] = 14\n",
+ "num[4] = 15\n",
+ "num[5] = 16\n",
+ "num[6] = 17\n",
+ "num[7] = 18"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.39, Page number: 358<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Pass array element to the function using call by reference\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def show(u):\n",
+ " m = 0\n",
+ " sys.stdout.write(\"\\nnum[7] = {\")\n",
+ " while m != 7:\n",
+ " #There is no pointer concept in python\n",
+ " sys.stdout.write(\"%2d,\"%(u[m]))\n",
+ " m += 1\n",
+ " sys.stdout.write(\"\\b}\")\n",
+ " \n",
+ "#Variable Initialization\n",
+ "num = [12,13,14,15,16,17,18]\n",
+ "\n",
+ "#Function call\n",
+ "show(num)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "num[7] = {12,13,14,15,16,17,18,\b}"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.40, Page number: 359<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Array elements in reverse order.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def show(u):\n",
+ " m = 6\n",
+ " while m != -1:\n",
+ " sys.stdout.write(\"\\nnum[%d] = %d\"%(m,u[m]))\n",
+ " m -= 1\n",
+ " \n",
+ "#Variable Initialization\n",
+ "num = [12,13,14,15,16,17,18]\n",
+ "\n",
+ "#Function call\n",
+ "#There is no pointer concept in python\n",
+ "show(num)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "num[6] = 18\n",
+ "num[5] = 17\n",
+ "num[4] = 16\n",
+ "num[3] = 15\n",
+ "num[2] = 14\n",
+ "num[1] = 13\n",
+ "num[0] = 12"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.41, Page number: 360<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Copy array elements using user defined function.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def cpy(p,m):\n",
+ " j = 0\n",
+ " while j != 5:\n",
+ " m[j] = p[j]\n",
+ " j += 1\n",
+ " \n",
+ "#Variable Initialization\n",
+ "a1 = [1,2,3,4,5]\n",
+ "a2 = [0 for i in range(0,5)]\n",
+ "\n",
+ "#Function call\n",
+ "cpy(a1,a2)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Source Target\")\n",
+ "for h in range(0,5):\n",
+ " sys.stdout.write(\"\\n%5d\\t%d\"%(a1[h],a2[h]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Source Target\n",
+ " 1\t1\n",
+ " 2\t2\n",
+ " 3\t3\n",
+ " 4\t4\n",
+ " 5\t5"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.42, Page number: 361<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read array of other function in main()\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definition\n",
+ "def arry(k):\n",
+ " b = [1,2,3,4,5]\n",
+ " return b[k]\n",
+ "\n",
+ "#main() function\n",
+ "for k in range(0,5):\n",
+ " sys.stdout.write(\"\\t%d\"%(arry(k)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t1\t2\t3\t4\t5"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.43, Page number: 361<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Interchange array elements of two arrays using function.\n",
+ "\n",
+ "import sys\n",
+ "global a\n",
+ "global b\n",
+ "\n",
+ "#Function Definitions\n",
+ "def read():\n",
+ " x = int(raw_input(\"\"))\n",
+ " return x\n",
+ "\n",
+ "def change(a,b):\n",
+ "#Since there is no pointer concept in python, exchange is done in the function using global variables.\n",
+ " for x in range(0,5):\n",
+ " a[x] = a[x] + b[x]\n",
+ " b[x] = a[x] - b[x]\n",
+ " a[x] = a[x] - b[x]\n",
+ " \n",
+ "#Variable Initialization\n",
+ "a = [0 for i in range(0,5)]\n",
+ "b = [0 for i in range(0,5)]\n",
+ "\n",
+ "for x in range(0,10):\n",
+ " if x < 5:\n",
+ " a[x] = read()\n",
+ " else:\n",
+ " b[x-5] = read()\n",
+ "\n",
+ "#Swapping and Result\n",
+ "sys.stdout.write(\"\\nArray A & B \")\n",
+ "\n",
+ "for x in range(0,5):\n",
+ " sys.stdout.write(\"\\n%7d%8d\"%(a[x],b[x]))\n",
+ " \n",
+ "#There is no pointer concept in python.\n",
+ "change(a,b)\n",
+ " \n",
+ "sys.stdout.write(\"\\nNow A & B\")\n",
+ "for x in range(0,5):\n",
+ " sys.stdout.write(\"\\n%7d%8d\"%(a[x],b[x]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "9\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Array A & B \n",
+ " 1 6\n",
+ " 2 7\n",
+ " 3 8\n",
+ " 4 9\n",
+ " 5 0\n",
+ "Now A & B\n",
+ " 6 1\n",
+ " 7 2\n",
+ " 8 3\n",
+ " 9 4\n",
+ " 0 5"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.44, Page number: 363<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read array elements declared in different functions using global\n",
+ "#pointer declaration\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def call(j):\n",
+ " m = 0\n",
+ " u = [5,1,6,0,6]\n",
+ " q = u\n",
+ " while m != j:\n",
+ " sys.stdout.write(\"%3d\"%(u[m]))\n",
+ " m += 1\n",
+ " sys.stdout.write(\"\\n\")\n",
+ " \n",
+ "#Variable Initialization\n",
+ "m = 0\n",
+ "k = [3,8,5,2,5]\n",
+ "q = k\n",
+ "\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "while m != 5:\n",
+ " sys.stdout.write(\"%3d\"%(q[m]))\n",
+ " m += 1\n",
+ "\n",
+ "sys.stdout.write(\"\\n\")\n",
+ "call(5)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 3 8 5 2 5\n",
+ " 5 1 6 0 6\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.45, Page number: 364<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Sum of 1 to 5 numbers using recursion\n",
+ "\n",
+ "import sys\n",
+ "global s\n",
+ "\n",
+ "s = 0\n",
+ "#Function definition\n",
+ "def main(x,s):\n",
+ " s = s + x\n",
+ " sys.stdout.write(\"\\nx = %d s = %d\"%(x,s))\n",
+ " if x == 5:\n",
+ " return\n",
+ " x += 1\n",
+ " main(x,s)\n",
+ " \n",
+ "main(1,s)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "x = 1 s = 1\n",
+ "x = 2 s = 3\n",
+ "x = 3 s = 6\n",
+ "x = 4 s = 10\n",
+ "x = 5 s = 15"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.46, Page number: 365<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate triangular number of a given number with recursion function method\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definition\n",
+ "def tri_num(m):\n",
+ " f = 0\n",
+ " if m == 0:\n",
+ " return f\n",
+ " else:\n",
+ " f = f + m + tri_num(m-1)\n",
+ " return f\n",
+ "\n",
+ "#Variable Initialization\n",
+ "n = int(raw_input(\"Enter a Number : \"))\n",
+ "\n",
+ "#Function call\n",
+ "t = tri_num(n)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nTriangular number of %d is %d\"%(n,t))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Triangular number of 5 is 15"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.47, Page number: 366<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the given string using recursion\n",
+ "\n",
+ "import sys\n",
+ "import os\n",
+ "global x\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = 0\n",
+ "str1 = \"Have a Good Day\"\n",
+ "\n",
+ "#Function Definition\n",
+ "def main(x):\n",
+ " if x == len(str1): #There is no null terminating character in python string\n",
+ " return\n",
+ " else:\n",
+ " if str1[x] == 'H':\n",
+ " os.system('cls')\n",
+ " sys.stdout.write(\"%c\"%(str1[x]))\n",
+ " else:\n",
+ " sys.stdout.write(\"%c\"%(str1[x]))\n",
+ " x += 1\n",
+ " main(x)\n",
+ " \n",
+ "#Function call\n",
+ "main(x)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Have a Good Day"
+ ]
+ }
+ ],
+ "prompt_number": 47
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.48, Page number: 367<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the given string 10 times using recursion\n",
+ "\n",
+ "import sys\n",
+ "import os\n",
+ "\n",
+ "#Function definition\n",
+ "def main(x):\n",
+ " sys.stdout.write(\"\\n%.2d] %s\"%(x,str1))\n",
+ " x += 1\n",
+ " if x == 11:\n",
+ " return\n",
+ " else:\n",
+ " if x == 1:\n",
+ " os.system('cls')\n",
+ " main(x)\n",
+ " else:\n",
+ " main(x)\n",
+ " \n",
+ " \n",
+ "#Variable Initialization\n",
+ "x = 0\n",
+ "str1 = \"Have a Good Day\"\n",
+ "\n",
+ "#Function call\n",
+ "main(x)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "00] Have a Good Day\n",
+ "01] Have a Good Day"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "02] Have a Good Day\n",
+ "03] Have a Good Day\n",
+ "04] Have a Good Day\n",
+ "05] Have a Good Day\n",
+ "06] Have a Good Day\n",
+ "07] Have a Good Day\n",
+ "08] Have a Good Day\n",
+ "09] Have a Good Day\n",
+ "10] Have a Good Day"
+ ]
+ }
+ ],
+ "prompt_number": 51
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.49, Page number: 368<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Factorial using recursive function.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function Definition\n",
+ "def fact(m):\n",
+ " f = 1\n",
+ " if m == 1:\n",
+ " return 1\n",
+ " else:\n",
+ " f = m * fact(m-1)\n",
+ " return f\n",
+ " \n",
+ "#Variable Initialization\n",
+ "x = int(raw_input(\"Enter a Number : \"))\n",
+ "\n",
+ "#Function call\n",
+ "f = fact (x)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nFactorial of %d is %d\"%(x,f))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Factorial of 5 is 120"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.50, Page number: 369<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display address of user defined function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definition\n",
+ "def show():\n",
+ " sys.stdout.write(\"\\nAddress of function show() is : \")\n",
+ " \n",
+ "#Function call\n",
+ "show()\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"%u\"%(id(show)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Address of function show() is : 95041520"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.51, Page number: 369<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Call function using pointer\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definition\n",
+ "def show():\n",
+ " sys.stdout.write(\"\\nAddress of function show() is : \")\n",
+ " \n",
+ "#There is no pointer concept in python\n",
+ "p = id(show)\n",
+ "show()\n",
+ "sys.stdout.write(\"%u\"%(id(show)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Address of function show() is : 95041200"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.52, Page number: 370<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the address of library function.\n",
+ "\n",
+ "import sys\n",
+ "import os\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nAddress of printf() is %u\"%(id(sys.stdout.write)))\n",
+ "sys.stdout.write(\"\\nAddress of scanf() is %u\"%(id(sys.stdout.read)))\n",
+ "sys.stdout.write(\"\\nAddress of clrscr() is %u\"%(id(os.system('cls'))))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Address of printf() is 60743848\n",
+ "Address of scanf() is 60743848\n",
+ "Address of clrscr() is 4774132"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 10.53, Page number: 371<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Call main() using pointer to main() function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initilization\n",
+ "x = 0\n",
+ "\n",
+ "#Function definition\n",
+ "def main(x):\n",
+ " p = id(main)\n",
+ " x += 1\n",
+ " sys.stdout.write(\"\\nCall %d Address of main() %u\"%(x,id(main)))\n",
+ " if x == 3:\n",
+ " return\n",
+ " main(x)\n",
+ " \n",
+ "#function call\n",
+ "main(x)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Call 1 Address of main() 95040880\n",
+ "Call 2 Address of main() 95040880\n",
+ "Call 3 Address of main() 95040880"
+ ]
+ }
+ ],
+ "prompt_number": 59
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Programming_in_C_using_ANSI_C/KamthaneChapter11.ipynb b/Programming_in_C_using_ANSI_C/KamthaneChapter11.ipynb new file mode 100755 index 00000000..c8fac375 --- /dev/null +++ b/Programming_in_C_using_ANSI_C/KamthaneChapter11.ipynb @@ -0,0 +1,446 @@ +{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 11: Storage Class<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 11.1, Page number: 376<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Working of auto variable\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Functio definitions\n",
+ "def call1():\n",
+ " v = 20\n",
+ " sys.stdout.write(\"\\nV = %d\"%(v))\n",
+ " \n",
+ "def call2():\n",
+ " v = 30\n",
+ " call1()\n",
+ " sys.stdout.write(\"\\nV = %d\"%(v))\n",
+ " \n",
+ "#Variable Initialization\n",
+ "v = 10\n",
+ "\n",
+ "#Function call\n",
+ "call2()\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nV = %d\"%(v))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "V = 20\n",
+ "V = 30\n",
+ "V = 10"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 11.2, Page number: 376<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Working of auto variables in different blocks\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = 10\n",
+ "\n",
+ "sys.stdout.write(\"\\nX = %d\"%(x))\n",
+ "\n",
+ "x = 20\n",
+ "sys.stdout.write(\"\\nX = %d\"%(x))\n",
+ "\n",
+ "x = 10\n",
+ "sys.stdout.write(\"\\nX = %d\"%(x))\n",
+ "\n",
+ "#In python, block of statements are indicated using intendation.\n",
+ "#block of statements can be written for conditional,loop or function statements"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "X = 10\n",
+ "X = 20\n",
+ "X = 10"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 11.3, Page number: 377<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Use same variable in different blocks with different data types\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization & Result\n",
+ "x = 10\n",
+ "sys.stdout.write(\"\\nX = %d\"%(x))\n",
+ "\n",
+ "x = 2.22\n",
+ "sys.stdout.write(\"\\nX = %g\"%(x))\n",
+ "\n",
+ "x = \"Auto Storage Class\"\n",
+ "sys.stdout.write(\"\\nX = %s\"%(x))\n",
+ "\n",
+ "x = 10\n",
+ "sys.stdout.write(\"\\nX = %d\"%(x))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "X = 10\n",
+ "X = 2.22\n",
+ "X = Auto Storage Class\n",
+ "X = 10"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 11.4, Page number: 378<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Working of external variables\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definitions\n",
+ "def call1():\n",
+ " sys.stdout.write(\"\\nIn Call1() V = %d\"%(v))\n",
+ " \n",
+ "def call2():\n",
+ " sys.stdout.write(\"\\nIn call2() V = %d\"%(v))\n",
+ " \n",
+ "#Variable Initialization\n",
+ "global v\n",
+ "v = 10\n",
+ "\n",
+ "call1()\n",
+ "call2()\n",
+ "sys.stdout.write(\"\\nIn main() V = %d\"%(v))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "In Call1() V = 10\n",
+ "In call2() V = 10\n",
+ "In main() V = 10"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 11.5, Page number: 379<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Working of auto and global variables with same name\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definitions\n",
+ "def call1():\n",
+ " v = 20\n",
+ " sys.stdout.write(\"\\nIn Call1() V = %d\"%(v))\n",
+ " \n",
+ "def call2():\n",
+ " sys.stdout.write(\"\\nIn call2() V = %d\"%(v))\n",
+ " \n",
+ "#Variable Initialization\n",
+ "global v\n",
+ "v = 10\n",
+ "\n",
+ "#Function call\n",
+ "call1()\n",
+ "call2()\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nIn main() V = %d\"%(v))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "In Call1() V = 20\n",
+ "In call2() V = 10\n",
+ "In main() V = 10"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 11.6, Page number: 380<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Declare external variables using extern keyword\n",
+ "\n",
+ "#Variable Initialization\n",
+ "global m\n",
+ "m = 10\n",
+ "\n",
+ "#There is no extern keyword in python, global is used instead\n",
+ "sys.stdout.write(\"\\nM = %d\"%(m))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "M = 10"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 11.7, Page number: 380<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Use of static variable\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definition\n",
+ "def print1(m):\n",
+ " sys.stdout.write(\"\\nm = %d\"%(m))\n",
+ " if m == 3:\n",
+ " return\n",
+ " \n",
+ "m = 0\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " m += 1\n",
+ " print1(m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "m = 1\n",
+ "m = 2\n",
+ "m = 3"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 11.8, Page number: 381<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Difference between variables of auto and static class\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Result\n",
+ "y = 0\n",
+ "sys.stdout.write(\"\\nx = %d & y = %d\"%(x,y))\n",
+ "\n",
+ "#Since x display the junk value which stored already, it differs in different systems"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "x = 10 & y = 0"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 11.9, Page number: 382<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Register class variable\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#There is no register keyword in python\n",
+ "m = 1\n",
+ "\n",
+ "#Result\n",
+ "for m in range(1,5+1):\n",
+ " sys.stdout.write(\"\\t%d\"%(m))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t1\t2\t3\t4\t5"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 11.10, Page number: 382<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Register class variable\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#There is no register class variable in python\n",
+ "m = 1\n",
+ "\n",
+ "for m in range(1,6):\n",
+ " sys.stdout.write(\"\\t%d\"%(m))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t1\t2\t3\t4\t5"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Programming_in_C_using_ANSI_C/KamthaneChapter12.ipynb b/Programming_in_C_using_ANSI_C/KamthaneChapter12.ipynb new file mode 100755 index 00000000..e1acaa2c --- /dev/null +++ b/Programming_in_C_using_ANSI_C/KamthaneChapter12.ipynb @@ -0,0 +1,849 @@ +{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 12: Preprocessor Directives<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 12.1, Page number: 386<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Area of circle\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Defining the macro\n",
+ "#There is no macro definitions/preprocessors in python\n",
+ "PI = 3.14\n",
+ "\n",
+ "#Variable Initialization\n",
+ "r = float(raw_input(\"Enter radius of circle in cms.\"))\n",
+ "\n",
+ "#Calculation\n",
+ "area = PI * r * r\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Area of a Circle = %.2f cm2\"%(area))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter radius of circle in cms.7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Area of a Circle = 153.86 cm2"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 12.2, Page number: 387<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Identifers for 'c' statements and variables\n",
+ "\n",
+ "import sys\n",
+ "import os\n",
+ "\n",
+ "#Macro definitions\n",
+ "#in python, function definitions are used instead of macros\n",
+ "def N():\n",
+ " return 10\n",
+ "\n",
+ "def cls():\n",
+ " os.system('cls')\n",
+ " \n",
+ "def wait():\n",
+ " t = raw_input(\"\")\n",
+ " \n",
+ "def display(s):\n",
+ " sys.stdout.write(s)\n",
+ "\n",
+ "for k in range(1,N()+1):\n",
+ " display(\"%d\\t\"%(k))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\t2\t3\t4\t5\t6\t7\t8\t9\t10\t"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 12.3, Page number: 387<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Macros for logical operators\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Macro definitions\n",
+ "#in python, function definitions are used as macros\n",
+ "\n",
+ "#There is no preprocessors in python\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = int(raw_input(\"Enter Three Numbers : \"))\n",
+ "b = int(raw_input(\"Enter Three Numbers : \"))\n",
+ "c = int(raw_input(\"Enter Three Numbers : \"))\n",
+ "\n",
+ "if a > b and a > c:\n",
+ " sys.stdout.write(\"%d is the larger number\"%(a))\n",
+ "else:\n",
+ " if b > a and b > c:\n",
+ " sys.stdout.write(\"%d is the larger number\"%(b))\n",
+ " else:\n",
+ " if c > a and c > b:\n",
+ " sys.stdout.write(\"%d is the larger number\"%(c))\n",
+ " else:\n",
+ " if a == b and b == c:\n",
+ " sys.stdout.write(\"\\nNumbers are same.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three Numbers : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three Numbers : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three Numbers : 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7 is the larger number"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 12.4, Page number: 388<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Identifier for displaying double and triple of a number.\n",
+ "\n",
+ "#Macro definitions\n",
+ "#Function definitions are used as macros in python\n",
+ "\n",
+ "def DOUBLE(a):\n",
+ " return a*2\n",
+ "\n",
+ "def TRIPLE(a):\n",
+ " return a*3\n",
+ "\n",
+ "#Variable initialization\n",
+ "a = 1\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nSINGLE\\tDOUBLE\\tTRIPLE\")\n",
+ "\n",
+ "for a in range(1,5+1):\n",
+ " sys.stdout.write(\"\\n%d\\t%d\\t%d\"%(a,DOUBLE(a),TRIPLE(a)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "SINGLE\tDOUBLE\tTRIPLE\n",
+ "1\t2\t3\n",
+ "2\t4\t6\n",
+ "3\t6\t9\n",
+ "4\t8\t12\n",
+ "5\t10\t15"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 12.5, Page number: 389<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Undefine a macro\n",
+ "\n",
+ "#There is no preprocessor directives in python\n",
+ "\n",
+ "def wait():\n",
+ " return (raw_input(\"\"))\n",
+ "\n",
+ "#Result\n",
+ "for k in range(1,5+1):\n",
+ " sys.stdout.write(\"%d\\t\"%(k))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\t2\t3\t4\t5\t"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 12.6, Page number: 389<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Stringizing operation\n",
+ "\n",
+ "#Macro definition\n",
+ "#in python, function definition can be used as macro\n",
+ "\n",
+ "def say(m):\n",
+ " sys.stdout.write(m)\n",
+ " \n",
+ "#Function call\n",
+ "say(\"Hello\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Hello"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 12.7, Page number: 390<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Stringizing operation and macro arguments\n",
+ "\n",
+ "#There is no macro in python, function definitions can be used as macros\n",
+ "\n",
+ "def DOUBLE(x):\n",
+ " sys.stdout.write(\"Double of m = %d\\n\"%(x*2))\n",
+ " \n",
+ "def TRIPLE(x):\n",
+ " sys.stdout.write(\"Triple of m = %d\\n\"%(x*3))\n",
+ " \n",
+ "#Variable Initialization\n",
+ "m = int(raw_input(\"Enter a number : \"))\n",
+ "\n",
+ "#Function call & Result\n",
+ "DOUBLE(m)\n",
+ "TRIPLE(m)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Double of m = 10\n",
+ "Triple of m = 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 12.8, Page number: 390<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Larger of two numbers using macro with arguments.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Macro definition //function definition itself is used as macro\n",
+ "def MAX(x,y):\n",
+ " if x > y:\n",
+ " c = x\n",
+ " else:\n",
+ " c = y\n",
+ " return c\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = 5\n",
+ "y = 8\n",
+ "\n",
+ "#Function call\n",
+ "c = MAX(x,y)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nLarger of two numbers = %d\"%(c))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Larger of two numbers = 8"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 12.9, Page number: 391<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Function defined in \"udf.c\" file.\n",
+ "\n",
+ "import sys\n",
+ "#since ipython notebook does not support this function, function is used\n",
+ "#in python, the udf.c file can be written and saved in udf.py and import command\n",
+ "#can be used to include that file in this program\n",
+ "\n",
+ "def display():\n",
+ " sys.stdout.write(\"\\nFunction Called\")\n",
+ " \n",
+ "#Function call\n",
+ "display()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Function Called"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 12.10, Page number: 392<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Conditional compilation \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#There is no preprocessor directives in python\n",
+ "\n",
+ "LINE = 1\n",
+ "\n",
+ "if LINE:\n",
+ " sys.stdout.write(\"This is line number one\")\n",
+ "else:\n",
+ " sys.stdout.write(\"This is line number two\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "This is line number one"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 12.11, Page number: 393<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Conditional compilation \n",
+ "import sys\n",
+ "\n",
+ "#There is no preprocessor directives in python\n",
+ "def E():\n",
+ " return 1\n",
+ "\n",
+ "#Function call\n",
+ "if E():\n",
+ " a = 2\n",
+ " b = 3\n",
+ " sys.stdout.write(\"A = %d & B = %d\"%(a,b))\n",
+ "else:\n",
+ " c = 2\n",
+ " d = 3\n",
+ " sys.stdout.write(\"C = %d & D = %d\"%(c,d))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A = 2 & B = 3"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 12.12, Page number: 394<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Conditional compilation directives \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#There is no preprocessor directives in python\n",
+ "T = 8\n",
+ "\n",
+ "#Result\n",
+ "if T == 0:\n",
+ " sys.stdout.write(\"\\nMacro is not defined.\")\n",
+ "else:\n",
+ " sys.stdout.write(\"\\nMacro is defined\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Macro is defined"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 12.13, Page number: 394<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#User defined error message \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#There is no preprocessor directives in python\n",
+ "B = 1\n",
+ "A = 0\n",
+ "\n",
+ "#Result\n",
+ "if A == 0:\n",
+ " sys.stdout.write(\"MACRO A IS NOT DEFINED.\")\n",
+ "else:\n",
+ " sys.stdout.write(\"Macro found.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "MACRO A IS NOT DEFINED."
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 12.14, Page number: 397<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Set off certain errors \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#There is no preprocessor directives in python\n",
+ "x = 2\n",
+ "y = 1\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\ny = %d\"%(y))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "y = 1"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 12.15, Page number: 398<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Predefined macros \n",
+ "\n",
+ "import sys\n",
+ "import datetime\n",
+ "\n",
+ "#Variable Initialization\n",
+ "FILE = 'PRE_MA~1.C'\n",
+ "LINE = 10\n",
+ "STDC = 1\n",
+ "\n",
+ "#Date/time can be set using datetime.date(2001,5,12)\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nDATE : %s\"%('Dec 05 2001')) \n",
+ "sys.stdout.write(\"\\nTIME : %s\"%(datetime.time(21,7,39)))\n",
+ "sys.stdout.write(\"\\nFILE NAME : %s\"%(FILE))\n",
+ "sys.stdout.write(\"\\nLINE NO : %d\"%(LINE))\n",
+ "sys.stdout.write(\"\\n_STDC_ : %x\"%(STDC))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "DATE : Dec 05 2001\n",
+ "TIME : 21:07:39\n",
+ "FILE NAME : PRE_MA~1.C\n",
+ "LINE NO : 10\n",
+ "_STDC_ : 1"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 12.16, Page number: 399<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the name of memory model that is currently in use.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#There is no formal memory model and preprocessor directives in python\n",
+ "\n",
+ "TINY = 0\n",
+ "SMALL = 0\n",
+ "MEDIUM = 0\n",
+ "COMPACT = 0\n",
+ "LARGE = 1\n",
+ "HUGE = 0\n",
+ "\n",
+ "#Result\n",
+ "if TINY:\n",
+ " sys.stdout.write(\"\\nTINY %d\"%(TINY))\n",
+ "else:\n",
+ " if SMALL:\n",
+ " sys.stdout.write(\"\\nSMALL %d\"%(SMALL))\n",
+ " else:\n",
+ " if MEDIUM:\n",
+ " sys.stdout.write(\"\\nMEDIUM %d\"%(MEDIUM))\n",
+ " else:\n",
+ " if COMPACT:\n",
+ " sys.stdout.write(\"\\nCOMPACT %d\"%(COMPACT))\n",
+ " else:\n",
+ " if LARGE:\n",
+ " sys.stdout.write(\"\\nLARGE %d\"%(LARGE))\n",
+ " else:\n",
+ " sys.stdout.write(\"\\nHUGE %d\"%(HUGE))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "LARGE 1"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 12.17, Page number: 400<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Macro expansions\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#There is no preprocessor directives in python\n",
+ "ch = raw_input(\"Input a Text : \")\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Text Input : %s\"%(ch))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Input a Text : Programming\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Text Input : Programming"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 12.18, Page number: 401<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Predefined macros.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "d = raw_input(\"Enter any character : \")\n",
+ "\n",
+ "#Result\n",
+ "f = d.isalpha()\n",
+ "\n",
+ "if f != 0:\n",
+ " sys.stdout.write(\"\\n%c is a letter in\"%(d))\n",
+ " f = d.isupper()\n",
+ " if f != 0:\n",
+ " sys.stdout.write(\" Capital case\")\n",
+ " else:\n",
+ " sys.stdout.write(\" Small case\")\n",
+ "else:\n",
+ " f = d.isdigit()\n",
+ " if f != 0:\n",
+ " sys.stdout.write(\"\\n%c is a digit\"%(d))\n",
+ " else:\n",
+ " f = d.ispunct()\n",
+ " if f != 0:\n",
+ " sys.stdout.write(\"\\n%c is a punctuation symbol\"%(d))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any character : C\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "C is a letter in Capital case"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Programming_in_C_using_ANSI_C/KamthaneChapter13.ipynb b/Programming_in_C_using_ANSI_C/KamthaneChapter13.ipynb new file mode 100755 index 00000000..f9222003 --- /dev/null +++ b/Programming_in_C_using_ANSI_C/KamthaneChapter13.ipynb @@ -0,0 +1,2367 @@ +{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 13: Structure and Union<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.1, Page number: 409<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display size of structure elements\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class is used instead of structure in python\n",
+ "class book1:\n",
+ " book = ''\n",
+ " pages = 0\n",
+ " price = 0.00\n",
+ "\n",
+ "#Python variables uses value tagged methods for storing the values\n",
+ "\n",
+ "#Class variable declaration\n",
+ "bk1 = book1()\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nSize of Structure Elements\")\n",
+ "sys.stdout.write(\"\\nBook : %d\"%(sys.getsizeof(bk1.book)))\n",
+ "sys.stdout.write(\"\\nPages : %d\"%(sys.getsizeof(bk1.pages)))\n",
+ "sys.stdout.write(\"\\nPrice : %d\"%(sys.getsizeof(bk1.price)))\n",
+ "sys.stdout.write(\"\\nTotal Bytes : %d\"%(sys.getsizeof(bk1)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Size of Structure Elements\n",
+ "Book : 21\n",
+ "Pages : 12\n",
+ "Price : 16\n",
+ "Total Bytes : 36"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.2, Page number: 410<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Define a structure and initialize its member variables\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class book1:\n",
+ " book = ''\n",
+ " pages = 0\n",
+ " price = 0.0\n",
+ " \n",
+ "#Class variable declaration and Initialization\n",
+ "bk1 = book1()\n",
+ "bk1.book = \"C++\"\n",
+ "bk1.pages = 300\n",
+ "bk1.price = 285\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nBook Name : %s\"%(bk1.book))\n",
+ "sys.stdout.write(\"\\nNo. of Pages : %d\"%(bk1.pages))\n",
+ "sys.stdout.write(\"\\nBook Price : %d\"%(bk1.price))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Book Name : C++\n",
+ "No. of Pages : 300\n",
+ "Book Price : 285"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.3, Page number: 411<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Copy structure elements from one object to another object\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class disk:\n",
+ " co = ''\n",
+ " type1 = 0.0\n",
+ " price = 0\n",
+ " \n",
+ "#Class variable declaration\n",
+ "d1 = disk()\n",
+ "d2 = disk()\n",
+ "d3 = disk()\n",
+ "\n",
+ "#Class variable initialization\n",
+ "d1.co = \"SONY\"\n",
+ "d1.type1 = 1.44\n",
+ "d1.price = 20\n",
+ "\n",
+ "#Copying\n",
+ "d2.co = d1.co\n",
+ "d2.type1 = d1.type1\n",
+ "d2.price = d1.price\n",
+ "\n",
+ "d3 = d2\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\n%s %g %d\"%(d1.co,d1.type1,d1.price))\n",
+ "sys.stdout.write(\"\\n%s %g %d\"%(d2.co,d2.type1,d2.price))\n",
+ "sys.stdout.write(\"\\n%s %g %d\"%(d3.co,d3.type1,d3.price))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "SONY 1.44 20\n",
+ "SONY 1.44 20\n",
+ "SONY 1.44 20"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.4, Page number: 412<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read values and assign them to structure variables\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class book1:\n",
+ " book = ''\n",
+ " pages = 0\n",
+ " price = 0.0\n",
+ " \n",
+ "#Class variable declaration\n",
+ "bk1 = book1()\n",
+ "\n",
+ "#Variable initialization\n",
+ "bk1.book = raw_input(\"Enter Book name,pages,price : \")\n",
+ "bk1.pages = int(raw_input(\"Enter Book name,pages,price : \"))\n",
+ "bk1.price = float(raw_input(\"Enter Book name, pages,price : \"))\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nBook Name : %s\"%(bk1.book))\n",
+ "sys.stdout.write(\"\\nNo. of Pages : %d\"%(bk1.pages))\n",
+ "sys.stdout.write(\"\\nBook Price : %d\"%(bk1.price))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Book name,pages,price : C\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Book name,pages,price : 500\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Book name, pages,price : 450\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Book Name : C\n",
+ "No. of Pages : 500\n",
+ "Book Price : 450"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.5, Page number: 414<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read and display car details\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class time:\n",
+ " second = 0\n",
+ " minute = 0\n",
+ " hour = 0\n",
+ " \n",
+ "class t:\n",
+ " carno = 0\n",
+ " st = time()\n",
+ " rt = time()\n",
+ " \n",
+ "#Class variable declaration\n",
+ "r1 = t()\n",
+ "\n",
+ "#Variable Initialization\n",
+ "r1.carno = int(raw_input(\"Car No., Starting Time, Reaching Time :\"))\n",
+ "r1.st.hour = int(raw_input(\"Car No., Starting Time, Reaching Time :\"))\n",
+ "r1.st.minute = int(raw_input(\"Car No., Starting Time, Reaching Time :\"))\n",
+ "r1.st.second = int(raw_input(\"Car No., Starting Time, Reaching Time :\"))\n",
+ "r1.rt.hour = int(raw_input(\"Car No., Starting Time, Reaching Time :\"))\n",
+ "r1.rt.minute = int(raw_input(\"Car No., Starting Time, Reaching Time :\"))\n",
+ "r1.rt.second = int(raw_input(\"Car No., Starting Time, Reaching Time :\"))\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nCar No. \\tStarting Time \\tReaching Time\\n\")\n",
+ "sys.stdout.write(\"%d\\t\"%(r1.carno))\n",
+ "sys.stdout.write(\"\\t%d:%d:%d\\t\\t\"%(r1.st.hour,r1.st.minute,r1.st.second))\n",
+ "sys.stdout.write(\"%d:%d:%d\"%(r1.rt.hour,r1.rt.minute,r1.rt.second))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No., Starting Time, Reaching Time :125\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No., Starting Time, Reaching Time :2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No., Starting Time, Reaching Time :50\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No., Starting Time, Reaching Time :30\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No., Starting Time, Reaching Time :3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No., Starting Time, Reaching Time :50\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No., Starting Time, Reaching Time :25\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Car No. \tStarting Time \tReaching Time\n",
+ "125\t\t2:50:30\t\t3:50:25"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.6, Page number: 415<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read and display the details of a person\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class name:\n",
+ " first = ''\n",
+ " second = ''\n",
+ " last = ''\n",
+ " \n",
+ "class b_date:\n",
+ " day = 0\n",
+ " month = 0\n",
+ " year = 0\n",
+ " \n",
+ "class data:\n",
+ " nm = name()\n",
+ " bt = b_date()\n",
+ " \n",
+ "#Class variable declaration\n",
+ "r1 = data()\n",
+ "\n",
+ "#Variable Initialization\n",
+ "r1.nm.first = raw_input(\"Enter Name (First/Second/Last)\")\n",
+ "r1.nm.second = raw_input(\"Enter Name (First/Second/Last)\")\n",
+ "r1.nm.last = raw_input(\"Enter Name (First/Second/Last)\")\n",
+ "r1.bt.day = int(raw_input(\"Enter Birth Date Day/Month/Year\"))\n",
+ "r1.bt.month = int(raw_input(\"Enter Birth Date Day/Month/Year\"))\n",
+ "r1.bt.year = int(raw_input(\"Enter Birth Date Day/Month/Year\"))\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Name : %s %s %s\\n\"%(r1.nm.first,r1.nm.second,r1.nm.last))\n",
+ "sys.stdout.write(\"Birth Date : %d.%d.%d\"%(r1.bt.day,r1.bt.month,r1.bt.year))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name (First/Second/Last)Ram\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name (First/Second/Last)Sham\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name (First/Second/Last)Pande\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Birth Date Day/Month/Year12\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Birth Date Day/Month/Year12\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Birth Date Day/Month/Year1980\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name : Ram Sham Pande\n",
+ "Birth Date : 12.12.1980"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.7, Page number: 416<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Create array of structure objects\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class time:\n",
+ " second = 0\n",
+ " minute = 0\n",
+ " hour = 0\n",
+ " \n",
+ "class t:\n",
+ " carno = 0\n",
+ " st = time()\n",
+ " rt = time()\n",
+ " \n",
+ "#Class variable declaration\n",
+ "r1 = [t() for i in range(0,3)]\n",
+ "\n",
+ "#Variable Initialization\n",
+ "for k in range(0,3):\n",
+ " r1[k].carno = int(raw_input(\"Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)\"))\n",
+ " r1[k].st.hour = int(raw_input(\"Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)\"))\n",
+ " r1[k].st.minute = int(raw_input(\"Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)\"))\n",
+ " r1[k].st.second = int(raw_input(\"Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)\"))\n",
+ " r1[k].rt.hour = int(raw_input(\"Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)\"))\n",
+ " r1[k].rt.minute = int(raw_input(\"Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)\"))\n",
+ " r1[k].rt.second = int(raw_input(\"Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)\"))\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nCar No.\\t\\tStarting Time\\tReaching Time\")\n",
+ "for k in range(0,3):\n",
+ " sys.stdout.write(\"\\n%d\\t\"%(r1[k].carno))\n",
+ " sys.stdout.write(\"\\t%d:%d:%d\\t\"%(r1[k].st.hour,r1[k].st.minute,r1[k].st.second))\n",
+ " sys.stdout.write(\"\\t%d:%d:%d\\t\"%(r1[k].rt.hour,r1[k].rt.minute,r1[k].rt.second))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)120\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)25\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)25\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)58\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)121\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)25\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)40\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)40\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)25\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)122\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)30\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)52\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)40\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Car No. Starting Time(hh:mm:ss),Reaching Time(hh:mm:ss)10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Car No.\t\tStarting Time\tReaching Time\n",
+ "120\t\t4:30:52\t\t5:40:10\t\n",
+ "121\t\t4:30:52\t\t5:40:10\t\n",
+ "122\t\t4:30:52\t\t5:40:10\t"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.8, Page number: 417<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read and display student details\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class stud:\n",
+ " name = ''\n",
+ " rollno = 0\n",
+ " grade = ''\n",
+ " \n",
+ "#Class variable declaration\n",
+ "st = [stud() for i in range(0,3)]\n",
+ "\n",
+ "#Variable Initialization\n",
+ "k = 0 \n",
+ "while k < 3:\n",
+ " st[k].name = raw_input(\"Name :\")\n",
+ " st[k].rollno = int(raw_input(\"Roll No. :\"))\n",
+ " st[k].grade = raw_input(\"Grade : \")\n",
+ " k += 1\n",
+ " \n",
+ "#Result\n",
+ "k = 0\n",
+ "sys.stdout.write(\"\\nName \\tRollno \\tGrade\\n\")\n",
+ "while k < 3:\n",
+ " sys.stdout.write(\"\\n%s\\t%d\\t%s\"%(st[k].name,st[k].rollno,st[k].grade))\n",
+ " k += 1\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name :Suresh\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Roll No. :125\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Grade : A\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name :Mahesh\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Roll No. :126\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Grade : B\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name :Rajesh\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Roll No. :127\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Grade : A\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Name \tRollno \tGrade\n",
+ "\n",
+ "Suresh\t125\tA\n",
+ "Mahesh\t126\tB\n",
+ "Rajesh\t127\tA"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.9, Page number: 419<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Pointer to structure \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class book:\n",
+ " name = ''\n",
+ " author = ''\n",
+ " pages = 0\n",
+ " \n",
+ "#Class variable declaration\n",
+ "b1 = book()\n",
+ "\n",
+ "#Variable Initialization\n",
+ "b1.name = \"JAVA COMPLETE REFERENCE\"\n",
+ "b1.author = \"P.NAUGHTON\"\n",
+ "b1.pages = 886\n",
+ "\n",
+ "#There is no pointer concept in python\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\n%s by %s of %d pages\"%(b1.name,b1.author,b1.pages))\n",
+ "sys.stdout.write(\"\\n%s by %s of %d pages\"%(b1.name,b1.author,b1.pages))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "JAVA COMPLETE REFERENCE by P.NAUGHTON of 886 pages\n",
+ "JAVA COMPLETE REFERENCE by P.NAUGHTON of 886 pages"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.10, Page number: 420<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Pointer as members of structure \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class boy:\n",
+ " name = ''\n",
+ " age = 0\n",
+ " height = 0.0\n",
+ " \n",
+ "#Class variable declaration\n",
+ "sp = boy()\n",
+ "\n",
+ "#Variable Initialization\n",
+ "sp.name = \"Mahesh\"\n",
+ "sp.age = 20\n",
+ "sp.height = 5.40\n",
+ "\n",
+ "#There is no pointer concept in python\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nName = %s\"%(sp.name))\n",
+ "sys.stdout.write(\"\\nAge = %s\"%(sp.age))\n",
+ "sys.stdout.write(\"\\nHeight = %s\"%(sp.height))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Name = Mahesh\n",
+ "Age = 20\n",
+ "Height = 5.4"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.11, Page number: 421<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Pointer as members of structure \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class boy:\n",
+ " name = ''\n",
+ " age = 0\n",
+ " height = 0.0\n",
+ " \n",
+ "#Class variable declaration\n",
+ "b = boy()\n",
+ "\n",
+ "#Variable Initialization\n",
+ "nm = \"Somesh\"\n",
+ "ag = 20\n",
+ "ht = 5.40\n",
+ "\n",
+ "#There is no pointer concept in python\n",
+ "b.name = nm\n",
+ "b.age = ag\n",
+ "b.height = ht\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nName : %s\"%(b.name))\n",
+ "sys.stdout.write(\"\\nAge = %d\"%(b.age))\n",
+ "sys.stdout.write(\"\\nHeight = %.2g\"%(b.height))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Name : Somesh\n",
+ "Age = 20\n",
+ "Height = 5.4"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.12, Page number: 422<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the contents of the structure using ordinary pointer\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class num:\n",
+ " a = 0\n",
+ " b = 0\n",
+ " c = 0\n",
+ "\n",
+ "#Class variable declaration\n",
+ "d = num()\n",
+ "\n",
+ "#Variable Initialization\n",
+ "d.a = 2\n",
+ "d.b = 3\n",
+ "d.c = 4\n",
+ "\n",
+ "#There is no pointer concept in python\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\na = %d\"%(d.a))\n",
+ "sys.stdout.write(\"\\nb = %d\"%(d.b))\n",
+ "sys.stdout.write(\"\\nc = %d\"%(d.c))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "a = 2\n",
+ "b = 3\n",
+ "c = 4"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.13, Page number: 423<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Passing address of structure variable\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class book:\n",
+ " name = ''\n",
+ " author = ''\n",
+ " pages = 0\n",
+ " \n",
+ "#Class variable declaration and initialization\n",
+ "b1 = book()\n",
+ "b1.name = \"JAVA COMPLETE REFERENCE\"\n",
+ "b1.author = \"P.NAUGHTON\"\n",
+ "b1.pages = 886\n",
+ "\n",
+ "#Function definition\n",
+ "def show(b1):\n",
+ " sys.stdout.write(\"\\n%s by %s of %d pages\"%(b1.name,b1.author,b1.pages))\n",
+ "\n",
+ "#Function call\n",
+ "show(b1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "JAVA COMPLETE REFERENCE by P.NAUGHTON of 886 pages"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.14, Page number: 424<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Passing structure elements to function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class boy:\n",
+ " name = ''\n",
+ " age = 0\n",
+ " wt = 0\n",
+ " \n",
+ "#Class variable declaration and initialization\n",
+ "b1 = boy()\n",
+ "b1.name = \"Amit\"\n",
+ "b1.age = 20\n",
+ "b1.wt = 25\n",
+ "\n",
+ "#Function definition\n",
+ "def print1(s,t,n):\n",
+ " sys.stdout.write(\"\\n%s %d %d\"%(s,t,n))\n",
+ " \n",
+ "#Function call\n",
+ "print1(b1.name,b1.age,b1.wt)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Amit 20 25"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.15, Page number: 425<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Pass entire structure to user defined function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class boy:\n",
+ " name = ''\n",
+ " age = 0\n",
+ " wt = 0\n",
+ " \n",
+ "#Class variable declaration and initialization\n",
+ "b1 = boy()\n",
+ "b1.name = \"Amit\"\n",
+ "b1.age = 20\n",
+ "b1.wt = 25\n",
+ "\n",
+ "#Function definition\n",
+ "def print1(b):\n",
+ " sys.stdout.write(\"\\n%s %d %d\"%(b.name,b.age,b1.wt))\n",
+ " \n",
+ "#Function call\n",
+ "print1(b1)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Amit 20 25"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.16, Page number: 426<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#User defined data type \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#There is no preprocessor directive in python\n",
+ "H = 60\n",
+ "\n",
+ "#There is no typedef function in python and no separate variable declaration is needed\n",
+ "hrs = int(raw_input(\"Enter Hours :\"))\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nMinutes = %d\"%(hrs*H))\n",
+ "sys.stdout.write(\"\\nSeconds = %d\"%(hrs*H*H))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Hours :2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Minutes = 120\n",
+ "Seconds = 7200"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.17, Page number: 426<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#String data type\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#There is no typedef function in python\n",
+ "a = \" Hello \"\n",
+ "b = raw_input(\"Enter Your Name : \")\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"%s %s\"%(a,b))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Your Name : KAMAL\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " Hello KAMAL"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.18, Page number: 427<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Create user defined data type from structure\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "#There is no typedef function in python\n",
+ "class struct:\n",
+ " name = ''\n",
+ " sex = ''\n",
+ " acno = 0\n",
+ " \n",
+ "#class variable declaration and initialization\n",
+ "employee = struct()\n",
+ "employee.name = \"Sanjay\"\n",
+ "employee.sex = \"M\"\n",
+ "employee.acno = 125\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nName\\tSex\\tA/c No.\\n\")\n",
+ "sys.stdout.write(\"%s\\t\"%(employee.name))\n",
+ "sys.stdout.write(\"%s\\t\"%(employee.sex))\n",
+ "sys.stdout.write(\"%s\\n\"%(employee.acno))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Name\tSex\tA/c No.\n",
+ "Sanjay\tM\t125\n"
+ ]
+ }
+ ],
+ "prompt_number": 44
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.19, Page number: 427<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Create user defined data type from structure\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class struct:\n",
+ " name = ''\n",
+ " sex = ''\n",
+ " acno = 0\n",
+ " \n",
+ "#class Variable declaration and initialization\n",
+ "employee = [struct() for i in range(0,2)]\n",
+ "\n",
+ "for k in range(0,2):\n",
+ " employee[k].name = raw_input(\"Name of the Employee :\")\n",
+ " employee[k].sex = raw_input(\"Sex\")\n",
+ " employee[k].acno = raw_input(\"A/c No.\")\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nName\\tSex\\tA/c No.\\n\")\n",
+ "for k in range(0,2):\n",
+ " sys.stdout.write(\"%s\\t\"%(employee[k].name))\n",
+ " sys.stdout.write(\"%s\\t\"%(employee[k].sex))\n",
+ " sys.stdout.write(\"%s\\n\"%(employee[k].acno))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name of the Employee :AJAY\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "SexM\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A/c No.122\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name of the Employee :ANITA\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "SexF\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A/c No.124\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Name\tSex\tA/c No.\n",
+ "AJAY\tM\t122\n",
+ "ANITA\tF\t124\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.20, Page number: 429<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Structure containing the details of the employees\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#There is no typedef function in python\n",
+ "\n",
+ "#Class definition\n",
+ "class struct:\n",
+ " first = ''\n",
+ " middle = ''\n",
+ " last = ''\n",
+ " city = ''\n",
+ " pincode = 0\n",
+ " \n",
+ "#Class variable declaration and initialization\n",
+ "person = [struct() for i in range(0,2)]\n",
+ "\n",
+ "for j in range(0,2):\n",
+ " person[j].first = raw_input(\"First Name :\")\n",
+ " person[j].middle = raw_input(\"Middle Name : \")\n",
+ " person[j].last = raw_input(\"Last Name : \")\n",
+ " person[j].city = raw_input(\"City & Pincode\")\n",
+ " person[j].pincode = int(raw_input(\"City & Pincode\"))\n",
+ " \n",
+ "#Result\n",
+ "for j in range(0,2):\n",
+ " sys.stdout.write(\"\\nRecord No : %d\"%(j+1))\n",
+ " sys.stdout.write(\"\\nFirst Name : %s\"%(person[j].first))\n",
+ " sys.stdout.write(\"\\nMiddle Name : %s\"%(person[j].middle))\n",
+ " sys.stdout.write(\"\\nLast Name : %s\"%(person[j].last))\n",
+ " sys.stdout.write(\"\\nCity & Pincode : %s - %d\\n\"%(person[j].city,person[j].pincode))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "First Name :Jay\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Middle Name : Mohan\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Last Name : Deshmukh\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "City & PincodeNanded\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "City & Pincode431602\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "First Name :Vijay\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Middle Name : Kamal\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Last Name : Nandedkar\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "City & PincodeNanded\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "City & Pincode431602\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Record No : 1\n",
+ "First Name : Jay\n",
+ "Middle Name : Mohan\n",
+ "Last Name : Deshmukh\n",
+ "City & Pincode : Nanded - 431602\n",
+ "\n",
+ "Record No : 2\n",
+ "First Name : Vijay\n",
+ "Middle Name : Kamal\n",
+ "Last Name : Nandedkar\n",
+ "City & Pincode : Nanded - 431602\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.21, Page number: 431<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Information of vehicles\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "PETROL = 1\n",
+ "DISEL = 2\n",
+ "TWO_WH = 3\n",
+ "FOUR_WH = 4\n",
+ "OLD = 5\n",
+ "NEW = 6\n",
+ "\n",
+ "#Class declaration\n",
+ "class vehicle:\n",
+ " type1 = 3\n",
+ " fuel = 2\n",
+ " model = 3\n",
+ " \n",
+ "#Class variable declaration and initialization\n",
+ "v = vehicle()\n",
+ "v.type1 = FOUR_WH\n",
+ "v.fuel = DISEL\n",
+ "v.model = OLD\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nType of Vehicle : %d\"%(v.type1))\n",
+ "sys.stdout.write(\"\\nFuel : %d\"%(v.fuel))\n",
+ "sys.stdout.write(\"\\nModel : %d\"%(v.model))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Type of Vehicle : 4\n",
+ "Fuel : 2\n",
+ "Model : 5"
+ ]
+ }
+ ],
+ "prompt_number": 52
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.22, Page number: 432<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the examination result of the student \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "#There is no preprocessor directives in python\n",
+ "PASS = 1\n",
+ "FAIL = 0\n",
+ "A = 0\n",
+ "B = 1\n",
+ "C = 2\n",
+ "\n",
+ "#Class declaration\n",
+ "class student:\n",
+ " name = ''\n",
+ " result = 1\n",
+ " grade = 2\n",
+ " \n",
+ "#Class variable declaration and initialization\n",
+ "v = student()\n",
+ "\n",
+ "v.name = \"Sachin\"\n",
+ "v.result = PASS\n",
+ "v.grade = C\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nName : %s\"%(v.name))\n",
+ "sys.stdout.write(\"\\nResult : %d\"%(v.result))\n",
+ "sys.stdout.write(\"\\nGrade : %d\"%(v.grade))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Name : Sachin\n",
+ "Result : 1\n",
+ "Grade : 2"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.23, Page number: 433<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Enumerated data type for 12 months\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#There is no enumerated data type in python and an alternate is to use class\n",
+ "#Class declaration\n",
+ "class month:\n",
+ " Jan = 0\n",
+ " Feb = 1\n",
+ " Mar = 2\n",
+ " Apr = 3\n",
+ " May = 4\n",
+ " June = 5\n",
+ " July = 6\n",
+ " Aug = 7\n",
+ " Sep = 8\n",
+ " Oct = 9\n",
+ " Nov = 10\n",
+ " Dec = 11\n",
+ " \n",
+ "#Class variable declaration\n",
+ "c = month()\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nJan = %d\"%(c.Jan))\n",
+ "sys.stdout.write(\"\\nFeb = %d\"%(c.Feb))\n",
+ "sys.stdout.write(\"\\nJune = %d\"%(c.June))\n",
+ "sys.stdout.write(\"\\nDec = %d\"%(c.Dec))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Jan = 0\n",
+ "Feb = 1\n",
+ "June = 5\n",
+ "Dec = 11"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.24, Page number: 434<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Enumerated data type \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#There is no enumerated data type in python and an alternate is to use class\n",
+ "#Class declaration\n",
+ "class month:\n",
+ " Jan = 1\n",
+ " Feb = 2\n",
+ " Mar = 3\n",
+ " Apr = 4\n",
+ " May = 5\n",
+ " June = 6\n",
+ " July = 7\n",
+ " Aug = 8\n",
+ " Sep = 9\n",
+ " Oct = 10\n",
+ " Nov = 11\n",
+ " Dec = 12\n",
+ " \n",
+ "#Class variable declaration\n",
+ "c = month()\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nJan = %d\"%(c.Jan))\n",
+ "sys.stdout.write(\"\\nFeb = %d\"%(c.Feb))\n",
+ "sys.stdout.write(\"\\nJune = %d\"%(c.June))\n",
+ "sys.stdout.write(\"\\nDec = %d\"%(c.Dec))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Jan = 1\n",
+ "Feb = 2\n",
+ "June = 6\n",
+ "Dec = 12"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.25, Page number: 434<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display name of month using enumerated data type\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#There is no enumerated data type in python and an alternate is to use class\n",
+ "#Class declaration\n",
+ "class month:\n",
+ " Jan = 1\n",
+ " Feb = 2\n",
+ " Mar = 3\n",
+ " Apr = 4\n",
+ " May = 5\n",
+ " June = 6\n",
+ " July = 7\n",
+ " Aug = 8\n",
+ " Sep = 9\n",
+ " Oct = 10\n",
+ " Nov = 11\n",
+ " Dec = 12\n",
+ " \n",
+ "#Class variable declaration\n",
+ "c = month()\n",
+ "\n",
+ "#Result\n",
+ "for f in range(c.Jan,c.Dec+1):\n",
+ " #There is no switch case statement in python\n",
+ " if f == c.Jan:\n",
+ " sys.stdout.write(\"\\nJanuary\")\n",
+ " else:\n",
+ " if f == c.Feb:\n",
+ " sys.stdout.write(\"\\nFebruary\")\n",
+ " else:\n",
+ " if f == c.Mar:\n",
+ " sys.stdout.write(\"\\nMarch\")\n",
+ " else:\n",
+ " if f == c.Apr:\n",
+ " sys.stdout.write(\"\\nApril\")\n",
+ " else:\n",
+ " if f == c.May:\n",
+ " sys.stdout.write(\"\\nMay\")\n",
+ " else:\n",
+ " if f == c.June:\n",
+ " sys.stdout.write(\"\\nJune\")\n",
+ " else:\n",
+ " if f == c.July:\n",
+ " sys.stdout.write(\"\\nJuly\")\n",
+ " else:\n",
+ " if f == c.Aug:\n",
+ " sys.stdout.write(\"\\nAugust\")\n",
+ " else:\n",
+ " if f == c.Sep:\n",
+ " sys.stdout.write(\"\\nSeptember\")\n",
+ " else:\n",
+ " if f == c.Oct:\n",
+ " sys.stdout.write(\"\\nOctober\")\n",
+ " else:\n",
+ " if f == c.Nov:\n",
+ " sys.stdout.write(\"\\nNovember\")\n",
+ " else:\n",
+ " sys.stdout.write(\"\\nDecember\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "January\n",
+ "February\n",
+ "March\n",
+ "April\n",
+ "May\n",
+ "June\n",
+ "July\n",
+ "August\n",
+ "September\n",
+ "October\n",
+ "November\n",
+ "December"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.26, Page number: 436<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Enumerated data type\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#There is no enumerated data type in python. class is used instead\n",
+ "class capital:\n",
+ " Mumbai = 0\n",
+ " Hyderabad = 1\n",
+ " Bangalore = 2\n",
+ "\n",
+ "class state:\n",
+ " name = ''\n",
+ " c = capital()\n",
+ " \n",
+ "#Class variable declaration\n",
+ "s = state()\n",
+ "c1 = capital()\n",
+ "\n",
+ "#Class variable initialization\n",
+ "s.name = \"Andhra Pradesh\"\n",
+ "s.c = s.c.Hyderabad\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nState : %s\"%(s.name))\n",
+ "sys.stdout.write(\"\\nCapital : %d\"%(s.c))\n",
+ "\n",
+ "if s.c == c1.Hyderabad:\n",
+ " sys.stdout.write(\"\\nHyderabad is Capital of %s\"%(s.name))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "State : Andhra Pradesh\n",
+ "Capital : 1\n",
+ "Hyderabad is Capital of Andhra Pradesh"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.27, Page number: 437<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Identify the type of entered character using enumerated data type.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration instead of enumerated data type\n",
+ "class ctype:\n",
+ " Letter = 0\n",
+ " Digit = 1\n",
+ " Other = 2\n",
+ " \n",
+ "#Variable Initialization\n",
+ "ch = raw_input(\"Enter any character\")\n",
+ "c = ctype()\n",
+ "f = ch.isalpha()\n",
+ "\n",
+ "#Result\n",
+ "if f != 0:\n",
+ " sys.stdout.write(\"\\n%c is %d type of symbol\"%(ch,c.Letter))\n",
+ "else:\n",
+ " f = ch.isdigit()\n",
+ " if f != 0:\n",
+ " sys.stdout.write(\"\\n%c is %d type of symbol\"%(ch,c.Digit))\n",
+ " else:\n",
+ " sys.stdout.write(\"\\n%c is %d type of symbol\"%(ch,c.Other))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any character=\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "= is 2 type of symbol"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.28, Page number: 438<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Size of union and number of bytes reserved for it\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#There is no union/structure in python. class is used instead\n",
+ "#Class declaration\n",
+ "class result:\n",
+ " marks = 0\n",
+ " grade = ''\n",
+ " \n",
+ "class res:\n",
+ " name = ''\n",
+ " age = 0\n",
+ " perf = result()\n",
+ " \n",
+ "#Class variable declaration\n",
+ "data = res()\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Size of Union : %d\\n\"%(sys.getsizeof(data.perf)))\n",
+ "sys.stdout.write(\"Size of Structure : %d\\n\"%(sys.getsizeof(data)))\n",
+ "\n",
+ "#in python, value tagged method is used for data storage and can represent large numbers"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Size of Union : 36\n",
+ "Size of Structure : 36\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.29, Page number: 440<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Memory size of the computer\n",
+ "\n",
+ "import psutil\n",
+ "\n",
+ "psutil.phymem_usage()\n",
+ "\n",
+ "#Displays current status of the memory\n",
+ "#different systems will have different memory status"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "pyout",
+ "prompt_number": 4,
+ "text": [
+ "usage(total=1600512000L, used=1496383488L, free=104128512L, percent=93.5)"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.30, Page number: 440<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the system time at specified cursor position\n",
+ "\n",
+ "import sys\n",
+ "import datetime\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"%s\"%(datetime.datetime.now()))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2013-09-20 11:04:15.649000"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.31, Page number: 441<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Change the cursor in different sizes\n",
+ "\n",
+ "import turtle\n",
+ "#Ipython supports graphics through turtle module\n",
+ "\n",
+ "from Tkinter import *\n",
+ "import Tkinter\n",
+ "\n",
+ "top = Tkinter.Tk()\n",
+ "\n",
+ "B1 = Tkinter.Button(top, text =\"circle\", relief=RAISED,\\\n",
+ " cursor=\"circle\")\n",
+ "B2 = Tkinter.Button(top, text =\"plus\", relief=RAISED,\\\n",
+ " cursor=\"plus\")\n",
+ "B1.pack()\n",
+ "B2.pack()\n",
+ "#top.mainloop()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.32, Page number: 441<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Create a directory using dos interrupt\n",
+ "\n",
+ "import os\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "dir1 = raw_input(\"Enter Directory Name : \")\n",
+ "\n",
+ "#Result\n",
+ "if not os.path.exists(dir1):\n",
+ " os.makedirs(dir1)\n",
+ " sys.stdout.write(\"Directory %s created\"%(dir1))\n",
+ "else:\n",
+ " sys.stdout.write(\"Directory %s not created\"%(dir1))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Directory XYZ created"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.33, Page number: 442<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the given character on the screen\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "dl = 67\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"%c\"%(chr(dl)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.34, Page number: 442<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the attributes of a file using DOS interrupt\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "import os\n",
+ "\n",
+ "print os.stat(\"IO.SYS\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "nt.stat_result(st_mode=33206, st_ino=0L, st_dev=0, st_nlink=0, st_uid=0, st_gid=0, st_size=0L, st_atime=1383454467L, st_mtime=1383454467L, st_ctime=1383454467L)\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.35, Page number: 444<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Delete a file using dos interrupt\n",
+ "\n",
+ "import os\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "file1 = raw_input(\"Enter a file name : \")\n",
+ "\n",
+ "try:\n",
+ " os.remove(file1)\n",
+ " sys.stdout.write(\"File successfully deleted\")\n",
+ "except:\n",
+ " sys.stdout.write(\"File could not be deleted\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "File successfully deleted"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 13.36, Page number: 445<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Structuret within union\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#there is no union/structure in python. class is used instead\n",
+ "#Class declaration\n",
+ "class x:\n",
+ " f = 0.0\n",
+ " p = ['' for i in range(0,2)]\n",
+ " \n",
+ "class z:\n",
+ " set1 = x()\n",
+ " \n",
+ "#Class variable declaration and initialization\n",
+ "st = z()\n",
+ "\n",
+ "st.set1.f = 5.5\n",
+ "st.set1.p[0] = 65\n",
+ "st.set1.p[1] = 66\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\n%g\"%(st.set1.f))\n",
+ "sys.stdout.write(\"\\n%c\"%(st.set1.p[0]))\n",
+ "sys.stdout.write(\"\\n%c\"%(st.set1.p[1]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "5.5\n",
+ "A\n",
+ "B"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Programming_in_C_using_ANSI_C/KamthaneChapter14.ipynb b/Programming_in_C_using_ANSI_C/KamthaneChapter14.ipynb new file mode 100755 index 00000000..409585bd --- /dev/null +++ b/Programming_in_C_using_ANSI_C/KamthaneChapter14.ipynb @@ -0,0 +1,2311 @@ +{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 14: Files<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.1, Page number: 454<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Write data to text file and read it\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "fp = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\data.txt','a')\n",
+ "\n",
+ "#Write data to file if successfully created the file\n",
+ "if fp == 0:\n",
+ " sys.stdout.write(\"Cannot open file\")\n",
+ "else:\n",
+ " sys.stdout.write(\"Write data & to stop press '.'\")\n",
+ " c = ''\n",
+ " while c != '.':\n",
+ " c = raw_input(\"Write data & to stop press '.'\")\n",
+ " fp.write(c)\n",
+ " fp.close()\n",
+ "\n",
+ " #Read and display the contents of file\n",
+ " sys.stdout.write(\"\\nContents read : \")\n",
+ " fp = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\data.txt','r')\n",
+ " f = fp.readlines()\n",
+ " for f1 in f:\n",
+ " print f1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Write data & to stop press '.'"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Write data & to stop press '.'ABCDEFGHIJK\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Write data & to stop press '.'.\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Contents read : ABCDEFGHIJK.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.2, Page number: 455<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the contents of the file before and after appending.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file for read data\n",
+ "fp = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\data.txt','r')\n",
+ "\n",
+ "#Read and display the contents of file\n",
+ "sys.stdout.write(\"\\nContents of file before appending :\\n\")\n",
+ "fp = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\data.txt','r')\n",
+ "f = fp.readlines()\n",
+ "for f1 in f:\n",
+ " print f1\n",
+ "\n",
+ "#Open file for appending\n",
+ "fp = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\data.txt','a')\n",
+ "\n",
+ "if f == 0:\n",
+ " sys.stdout.write(\"File can not appended\")\n",
+ "else:\n",
+ " c = ''\n",
+ " #fp.write('\\n')\n",
+ " while c != '.':\n",
+ " c = raw_input(\"Enter string to append\")\n",
+ " fp.write(c)\n",
+ " \n",
+ " fp.close()\n",
+ " \n",
+ " #Read and display the contents of file\n",
+ " sys.stdout.write(\"\\nContents of file After appending\\n\")\n",
+ " fp = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\data.txt','r')\n",
+ " f = fp.readlines()\n",
+ " for f1 in f:\n",
+ " print f1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Contents of file before appending :\n",
+ "String is terminated with '\\0'.\n",
+ "\n",
+ "Contents of file After appending\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "String is terminated with '\\0'.This character is called as NULL character.\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.3, Page number: 457<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Writing and reading of a file.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "fp = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\data.txt','w+')\n",
+ "\n",
+ "#Write data to file if successfully created the file\n",
+ "if fp == 0:\n",
+ " sys.stdout.write(\"Cannot open file\")\n",
+ "else:\n",
+ " sys.stdout.write(\"Write data & to stop press '.'\")\n",
+ " c = ''\n",
+ " while c != '.':\n",
+ " c = raw_input(\"Write data & to stop press '.'\")\n",
+ " fp.write(c)\n",
+ " fp.close()\n",
+ "\n",
+ " #Read and display the contents of file\n",
+ " sys.stdout.write(\"\\nContents read : \")\n",
+ " fp = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\data.txt','r')\n",
+ " f = fp.readlines()\n",
+ " for f1 in f:\n",
+ " print f1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Write data & to stop press '.'\n",
+ "Contents read : "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ABCDEFGHIJK.\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.4, Page number: 458<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Open a file in append mode and add new records in it.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "fp = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\data.txt','a+')\n",
+ "\n",
+ "#Write data to file if successfully created the file\n",
+ "if fp == 0:\n",
+ " sys.stdout.write(\"Cannot open file\")\n",
+ "else:\n",
+ " sys.stdout.write(\"Write data & to stop press '.'\")\n",
+ " c = ''\n",
+ " while c != '.':\n",
+ " c = raw_input(\"Write data & to stop press '.'\")\n",
+ " fp.write(c)\n",
+ " fp.close()\n",
+ "\n",
+ " #Read and display the contents of file\n",
+ " sys.stdout.write(\"\\nContents read : \")\n",
+ " fp = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\data.txt','a+')\n",
+ " f = fp.readlines()\n",
+ " for f1 in f:\n",
+ " print f1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Write data & to stop press '.'\n",
+ "Contents read : "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "This is append and read mode.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.5, Page number: 459<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Open a file in read/write mode in it\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "fp = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\data.txt','r+')\n",
+ "\n",
+ "#Write data to file if successfully created the file\n",
+ "if fp == 0:\n",
+ " sys.stdout.write(\"Cannot open file\")\n",
+ "else:\n",
+ " #Read and display the contents of file\n",
+ " sys.stdout.write(\"\\nContents read : \")\n",
+ " f = fp.readlines()\n",
+ " for f1 in f:\n",
+ " print f1\n",
+ " \n",
+ " sys.stdout.write(\"Write data & to stop press '.'\")\n",
+ " c = ''\n",
+ " while c != '.':\n",
+ " c = raw_input(\"Write data & to stop press '.'\")\n",
+ " fp.write(c)\n",
+ " fp.close()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Contents read : Help me.\n",
+ "Write data & to stop press '.'"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.6, Page number: 460<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Open a file for read/write operation in binary mode\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "fp = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\data.txt','wb')\n",
+ "\n",
+ "#Write data to file if successfully created the file\n",
+ "if fp == 0:\n",
+ " sys.stdout.write(\"Cannot open file\")\n",
+ "else:\n",
+ " sys.stdout.write(\"Write data & to stop press '.'\")\n",
+ " c = ''\n",
+ " while c != '.':\n",
+ " c = raw_input(\"Write data & to stop press '.'\")\n",
+ " fp.write(c)\n",
+ " fp.close()\n",
+ "\n",
+ " #Read and display the contents of file\n",
+ " sys.stdout.write(\"\\nContents read : \")\n",
+ " fp = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\data.txt','rb')\n",
+ " f = fp.readlines()\n",
+ " for f1 in f:\n",
+ " print f1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Write data & to stop press '.'\n",
+ "Contents read : "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ABCDEFGHIJK.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.7, Page number: 462<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Open a text file and write some text \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "fp = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\data.txt','w')\n",
+ "\n",
+ "#Read the string\n",
+ "text = raw_input(\"Enter Text Here : \")\n",
+ "\n",
+ "#Write to the file\n",
+ "#fp.write() is the equivalent function for fprintf() in python\n",
+ "fp.write(\"%s\"%(text))\n",
+ "\n",
+ "#To see the result, open the data.txt file"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.8, Page number: 463<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Enter data into the text file and read the same. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "fp = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\data.txt','w')\n",
+ "\n",
+ "#Read the data\n",
+ "text = raw_input(\"Name & Age\")\n",
+ "age = int(raw_input(\"Name & Age\"))\n",
+ "\n",
+ "#Write to file\n",
+ "fp.write(\"%s %d\"%(text,age))\n",
+ "\n",
+ "fp = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\data.txt','r')\n",
+ "#Result\n",
+ "sys.stdout.write(\"Name\\tAge\\n\")\n",
+ "text = fp.read()\n",
+ "age = fp.read()\n",
+ "sys.stdout.write(\"%s\\t%s\\n\"%(text,age))\n",
+ "fp.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name\tAge\n",
+ "AMIT 12\t\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.9, Page number: 463<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read the contents of the file \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "f = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\list.txt','r')\n",
+ "\n",
+ "if f == 0:\n",
+ " sys.stdout.write(\"Cannot open file\")\n",
+ "else:\n",
+ " for c in f:\n",
+ " sys.stdout.write(\"%s\"%(c))\n",
+ " #Python gives iterative statements there is no getc() fucntion"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "aman\n",
+ "akash\n",
+ "amit\n",
+ "ajay\n",
+ "ankit"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.10, Page number: 464<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Write some text into the file \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "fp = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\words.doc','w')\n",
+ "\n",
+ "#Write data to file\n",
+ "c = ''\n",
+ "while c != '*':\n",
+ " c = raw_input(\"Enter Few Words '*' to Exit\")\n",
+ " fp.write(c)\n",
+ "\n",
+ "fp.close()\n",
+ " #There is no putc() function in python\n",
+ " #Open the file to see the result"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.11, Page number: 465<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Count\n",
+ "\n",
+ "# Total number of statements\n",
+ "# Total number of included files\n",
+ "# Total number of blocks and brackets\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "fs = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\PRG2.C','r')\n",
+ "\n",
+ "#variable initialization\n",
+ "i = 0\n",
+ "c = 0\n",
+ "sb = 0\n",
+ "b = 0\n",
+ "\n",
+ "if fs == 0:\n",
+ " sys.stdout.write(\"File opening error\")\n",
+ "else:\n",
+ " for line in fs:\n",
+ " k = 0\n",
+ " while k < len(line):\n",
+ " if line[k] == ';':\n",
+ " c += 1\n",
+ " else:\n",
+ " if line[k] == '{':\n",
+ " sb += 1\n",
+ " else:\n",
+ " if line[k] == '(':\n",
+ " b += 1\n",
+ " else:\n",
+ " if line[k] == '#':\n",
+ " i += 1\n",
+ " k += 1\n",
+ " \n",
+ " #Result\n",
+ " sys.stdout.write(\"\\nSummary of 'C' Program\\n\")\n",
+ " sys.stdout.write(\"===========================\")\n",
+ " sys.stdout.write(\"\\nTotal Statments : %d\"%(c+i))\n",
+ " sys.stdout.write(\"\\nInclude Statements : %d\"%(i))\n",
+ " sys.stdout.write(\"\\nTotal Blocks {} : %d\"%(sb))\n",
+ " sys.stdout.write(\"\\nTotal Brackets () : %d\"%(b))\n",
+ " sys.stdout.write(\"\\n============================\")\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Summary of 'C' Program\n",
+ "===========================\n",
+ "Total Statments : 8\n",
+ "Include Statements : 2\n",
+ "Total Blocks {} : 2\n",
+ "Total Brackets () : 9\n",
+ "============================"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.12, Page number: 466<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Write text to a file \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "fp = open('C:\\Users\\Aathira\\Documents\\IPython Notebooks\\lines.txt','w')\n",
+ "\n",
+ "if fp == 0:\n",
+ " sys.stdout.write(\"\")\n",
+ "else:\n",
+ " #Write data to file\n",
+ " c = ''\n",
+ " while c != '*':\n",
+ " c = raw_input(\"\")\n",
+ " fp.write(c)\n",
+ " fp.close()\n",
+ " #There is no fputc() function in python\n",
+ " #Open the file to see the result"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.13, Page number: 467<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read text from the given file \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "\n",
+ "file1 = raw_input(\"Enter File Name : \")\n",
+ "fp = open(file1,'r')\n",
+ "\n",
+ "if fp == 0:\n",
+ " sys.stdout.write(\"File not found\\n\")\n",
+ "else:\n",
+ " for text in fp:\n",
+ " print text\n",
+ " #File pointer itself is iterable in python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "#include <stdio.h>\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.14, Page number: 468<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Write a string into a file \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "\n",
+ "file1 = raw_input(\"Enter the name of file : \")\n",
+ "fp = open(file1,'w')\n",
+ "\n",
+ "if fp == 0:\n",
+ " sys.stdout.write(\"File can not opened\\n\")\n",
+ "else:\n",
+ " text = raw_input(\"Enter Text Here : \")\n",
+ " fp.write(text)\n",
+ " \n",
+ " #Write() function is used to write character or string into the file in python\n",
+ " # there is no fputc() function in python\n",
+ "#open the file to see the result"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.15, Page number: 469<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Write integers in a file \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "fp = open('num.txt','w')\n",
+ "\n",
+ "if fp == 0:\n",
+ " sys.stdout.write(\"File does not exist\\n\")\n",
+ "else:\n",
+ " v = ' '\n",
+ " while v != '0':\n",
+ " fp.write(v)\n",
+ " v = raw_input(\"Enter Numbers\")\n",
+ " \n",
+ " #open the file to see the result"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.16, Page number: 470<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read integers from the file \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "fp = open('num.txt','r')\n",
+ "\n",
+ "if fp == 0:\n",
+ " sys.stdout.write(\"File does not exist\\n\")\n",
+ "else:\n",
+ " for v in fp:\n",
+ " print v"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1 2 3 4 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.17, Page number: 471<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Write a block of structure elements to the given file \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class student:\n",
+ " name = ''\n",
+ " age = 0\n",
+ " \n",
+ "#Class variable declaration\n",
+ "stud = [student() for i in range(0,5)]\n",
+ "\n",
+ "#Open file\n",
+ "file1 = raw_input(\"Enter the file name : \")\n",
+ "fp = open(file1,'w')\n",
+ "\n",
+ "if fp == 0:\n",
+ " sys.stdout.write(\"File does not exist\\n\")\n",
+ "else:\n",
+ " n = int(raw_input(\"How Many Records : \"))\n",
+ " for i in range(0,n):\n",
+ " stud[i].name = raw_input(\"Name : \")\n",
+ " stud[i].age = int(raw_input(\"Age : \"))\n",
+ " \n",
+ " j = 0\n",
+ " while j < n:\n",
+ " fp.write(\"%s %d\\n\"%(stud[j].name,stud[j].age))\n",
+ " j += 1\n",
+ " \n",
+ " fp.close()\n",
+ " \n",
+ " #open the file to see the result"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.18, Page number: 472<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Write and read the information about the player \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class record:\n",
+ " player = ''\n",
+ " age = 0\n",
+ " runs = 0\n",
+ " \n",
+ "#Class variable declaration\n",
+ "emp = record()\n",
+ "\n",
+ "#Open file\n",
+ "fp = open('record.dat','w')\n",
+ "\n",
+ "if fp == 0:\n",
+ " sys.stdout.write(\"Can not open the file\\n\")\n",
+ "else:\n",
+ " emp.player = raw_input(\"Enter Player Name\")\n",
+ " emp.age = int(raw_input(\"Enter Age\"))\n",
+ " emp.runs = int(raw_input(\"Enter runs scored\"))\n",
+ " fp.write(\"%s %d %d\"%(emp.player,emp.age,emp.runs))\n",
+ " fp.close()\n",
+ " \n",
+ " fp = open('record.dat','r')\n",
+ " if fp == 0:\n",
+ " sys.stdout.write(\"Error in opening file\")\n",
+ " else:\n",
+ " sys.stdout.write(\"\\nRecord Entered is\\n\")\n",
+ " emp.player,emp.age,emp.runs = fp.read().split(' ')\n",
+ " sys.stdout.write(\"\\n%s %s %s\"%(emp.player,emp.age,emp.runs))\n",
+ " fp.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Player NameSachin\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Age25\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter runs scored10000\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Record Entered is\n",
+ "\n",
+ "Sachin 25 10000"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.19, Page number: 473<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Write a block of structure elements to the given file \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "next1 = 'Y'\n",
+ "\n",
+ "#Class declaration\n",
+ "class bike:\n",
+ " name = ''\n",
+ " avg = 0\n",
+ " cost = 0.0\n",
+ " \n",
+ "#Class variable declaration\n",
+ "e = bike()\n",
+ "\n",
+ "#open file\n",
+ "fp = open('bk.txt','wb')\n",
+ "\n",
+ "if fp == 0:\n",
+ " sys.stdout.write(\"Cannot open file\")\n",
+ "else:\n",
+ " while next1 == 'Y':\n",
+ " e.name = raw_input(\"Model Name\")\n",
+ " e.avg = int(raw_input(\"Average\"))\n",
+ " e.cost = float(raw_input(\"Price\"))\n",
+ " fp.write(\"%s %d %f\\n\"%(e.name,e.avg,e.cost))\n",
+ " \n",
+ " next1 = raw_input(\"Add Another (Y/N):\")\n",
+ " fp.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Model NameHONDA\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average80\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Price45000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Add Another (Y/N):Y\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Model NameSUZUKI\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average65\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Price43000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Add Another (Y/N):Y\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Model NameYAMAHA\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Average55\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Price48000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Add Another (Y/N):N\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.20, Page number: 474<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read the information about the bike \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class bike:\n",
+ " name = ''\n",
+ " avg = 0\n",
+ " cost = 0.0\n",
+ " \n",
+ "#Class variable declaration\n",
+ "e = bike()\n",
+ "\n",
+ "#open file\n",
+ "fp = open('bk.txt','rb')\n",
+ "\n",
+ "if fp == 0:\n",
+ " sys.stdout.write(\"Cannot open file\")\n",
+ "else:\n",
+ " lines = fp.readlines()\n",
+ " for line in lines:\n",
+ " e.name,e.avg,e.cost = line.split(' ')\n",
+ " e.avg = int(e.avg)\n",
+ " e.cost = float(e.cost)\n",
+ " sys.stdout.write(\"\\n%s %d %.2f\"%(e.name,e.avg,e.cost))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "HONDA 80 45000.00\n",
+ "SUZUKI 65 43000.00\n",
+ "YAMAHA 55 48000.00"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.21, Page number: 476<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read the text after skipping n characters from beginning of the file\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "fp = open(\"text.txt\",\"r\")\n",
+ "\n",
+ "sys.stdout.write(\"\\nContents of file\\n\")\n",
+ "ch = fp.read()\n",
+ "sys.stdout.write(\"%s\"%(ch))\n",
+ "\n",
+ "#Read n\n",
+ "n = int(raw_input(\"How many characters including spaces would you like to skip?\"))\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nInformation after %d bytes\\n\"%(n))\n",
+ "\n",
+ "ch = ch[n:]\n",
+ "sys.stdout.write(\"%s\"%(ch))\n",
+ "\n",
+ "fp.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Contents of file\n",
+ "THE C PROGRAMMING LANGUAGE INVENTED BY DENNIS RITCHIE"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many characters including spaces would you like to skip?18\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Information after 18 bytes\n",
+ "LANGUAGE INVENTED BY DENNIS RITCHIE"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.22, Page number: 477<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read last few characters of the file \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "fp = open(\"text.txt\",\"r\")\n",
+ "\n",
+ "sys.stdout.write(\"\\nContents of file\\n\")\n",
+ "ch = fp.read()\n",
+ "sys.stdout.write(\"%s\"%(ch))\n",
+ "\n",
+ "#Read n\n",
+ "n = int(raw_input(\"How many characters including spaces would you like to skip?\"))\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nInformation after %d bytes\\n\"%(n))\n",
+ "\n",
+ "print ch[-n:]\n",
+ "\n",
+ "fp.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Contents of file\n",
+ "HELLO WORLD"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many characters including spaces would you like to skip?5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Information after 5 bytes\n",
+ "WORLD\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.23, Page number: 477<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display 'c' program files in current directory. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "l = 0\n",
+ "c = 0\n",
+ "\n",
+ "#Open file\n",
+ "file1 = raw_input(\"Enter the file name : \")\n",
+ "fp = open(file1,'r')\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nContents of 'c' program file in capital case\")\n",
+ "sys.stdout.write(\"\\n============================================\\n\")\n",
+ "\n",
+ "ch = fp.readlines()\n",
+ "\n",
+ "for line in ch:\n",
+ " i = 0\n",
+ " #print line.upper()\n",
+ " while i < len(line):\n",
+ " if line[i] =='\\n':\n",
+ " l += 1\n",
+ " else:\n",
+ " c += 1\n",
+ " sys.stdout.write(\"%c\"%(line[i].upper()))\n",
+ " i += 1\n",
+ "\n",
+ "sys.stdout.write(\"\\nTotal Characters : %d\"%(c))\n",
+ "sys.stdout.write(\"\\nTotal Lines : %d\"%(l))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Contents of 'c' program file in capital case\n",
+ "============================================\n",
+ "MAIN()\n",
+ "{\n",
+ "PRINTF(\" HELLO WORLD\");\n",
+ "}\n",
+ "\n",
+ "Total Characters : 31\n",
+ "Total Lines : 4"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.24, Page number: 479<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Detect the end of file \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "fp = open(\"text.txt\",\"r\")\n",
+ "\n",
+ "#there is no feof() function in python\n",
+ "c = fp.tell()\n",
+ "sys.stdout.write(\"File pointer at the beginning of the file : %d\\n\"%(c))\n",
+ "\n",
+ "c = fp.read()\n",
+ "sys.stdout.write(\"%s\"%(c))\n",
+ "\n",
+ "c = fp.tell()\n",
+ "sys.stdout.write(\"\\nFile pointer at the end of file : %d\"%(c))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "File pointer at the beginning of the file : 0\n",
+ "TECHNOCRATS LEAD THE WORLD \n",
+ "File pointer at the end of file : 32"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.25, Page number: 480<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Detect an error while read/write operation of a file is in use.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "next1 = 'Y'\n",
+ "\n",
+ "#open file\n",
+ "fp = open('marks.dat','r')\n",
+ "\n",
+ "if fp == 0:\n",
+ " sys.stdout.write(\"Can not open file\")\n",
+ "else:\n",
+ " while next1 == 'Y':\n",
+ " name = raw_input(\"Enter Name, Marks, Percentage\")\n",
+ " marks = int(raw_input(\"Enter Name, Marks, Percentage\"))\n",
+ " \n",
+ " p = marks/7\n",
+ " try:\n",
+ " fp.write(\"%s %d %f\"%(name,marks,p))\n",
+ " except:\n",
+ " sys.stdout.write(\"\\nUnable to write data?\")\n",
+ " sys.stdout.write(\"\\nFile opening mode is incorrect.\")\n",
+ " fp.close()\n",
+ " \n",
+ " next1 = raw_input(\"Continue Y/N:\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name, Marks, PercentageKAMAL\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name, Marks, Percentage540\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Unable to write data?\n",
+ "File opening mode is incorrect."
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Continue Y/N:N\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.26, Page number: 481<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Catch the error that is occurred while file operation\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "f = open(\"io8.c\",\"w\")\n",
+ "\n",
+ "if f == 0:\n",
+ " sys.stdout.write(\"\\nCannot open file\")\n",
+ "else:\n",
+ " #Exception handling\n",
+ " try:\n",
+ " c = fp.readlines()\n",
+ " sys.stdout.write(\"%s\"%(c))\n",
+ " except:\n",
+ " sys.stdout.write(\"\\nCan't read file.\")\n",
+ "#There is no ferror() function python."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Can't read file."
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.27, Page number: 482<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Detect and print the error message\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "file1 = \"lines.txt\"\n",
+ "\n",
+ "#Open file\n",
+ "fr = open(file1,\"w\")\n",
+ "\n",
+ "sys.stdout.write(\"%s : \"%(file1))\n",
+ "#Exception handling\n",
+ "try:\n",
+ " c = fp.readlines()\n",
+ "except:\n",
+ " sys.stdout.write(\"Permission Denied\")\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "lines.txt : Permission Denied"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.28, Page number: 482<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print the current position of the file pointer \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Open file\n",
+ "fp = open(\"text.txt\",\"r\")\n",
+ "\n",
+ "#Set the pointer\n",
+ "fp.seek(21)\n",
+ "\n",
+ "#Result\n",
+ "while True:\n",
+ " c = fp.read(1)\n",
+ " if not c:\n",
+ " break\n",
+ " sys.stdout.write(\"%c\\t%d\\n\"%(c,fp.tell()))\n",
+ "#There is no endof file in python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "W\t22\n",
+ "O\t23\n",
+ "R\t24\n",
+ "L\t25\n",
+ "D\t26\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.29, Page number: 483<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Detect beginning of file\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#open file\n",
+ "fp = open(\"text.txt\",\"r\")\n",
+ "\n",
+ "fp.seek(12)\n",
+ "sys.stdout.write(\"Pointer is at %d\\n\"%(fp.tell()))\n",
+ "sys.stdout.write(\"Before rewind() : \")\n",
+ "\n",
+ "#Result\n",
+ "while True:\n",
+ " c = fp.read(1)\n",
+ " if not c:\n",
+ " break\n",
+ " sys.stdout.write(\"%c\"%(c))\n",
+ " \n",
+ "sys.stdout.write(\"\\nAfter rewind() : \")\n",
+ "fp.seek(0)\n",
+ "#There is no rewind function in python\n",
+ "\n",
+ "while True:\n",
+ " c = fp.read(1)\n",
+ " if not c:\n",
+ " break\n",
+ " sys.stdout.write(\"%c\"%(c))\n",
+ " \n",
+ "fp.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Pointer is at 12\n",
+ "Before rewind() : LEAD THE WORLD\n",
+ "After rewind() : TECHNOCRATS LEAD THE WORLD"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.30, Page number: 484<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Delete the given file \n",
+ "\n",
+ "import sys\n",
+ "import os\n",
+ "\n",
+ "#Read file name\n",
+ "file1 = raw_input(\"Enter The File Name : \")\n",
+ "\n",
+ "#There is no remove or unlink file function in python.\n",
+ "#A file can be deleted using remove function in the os module.\n",
+ "\n",
+ "try:\n",
+ " os.remove(file1)\n",
+ " sys.stdout.write(\"\\nFile (%s) has been deleted!\"%(file1))\n",
+ "except:\n",
+ " sys.stdout.write(\"\\nFile does not exist\")\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "File (TEXT.TXT) has been deleted!"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.31, Page number: 485<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Change the name of the file\n",
+ "\n",
+ "import os\n",
+ "import sys\n",
+ "\n",
+ "old = raw_input(\"Old File Name : \")\n",
+ "\n",
+ "new = raw_input(\"New File Name : \")\n",
+ "\n",
+ "os.rename(old, new)\n",
+ "\n",
+ "#Check the directory to see the result\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.32, Page number: 486<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Copy the contents of one file to another file\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "fs = open(\"a.txt\",\"r\")\n",
+ "ft = open(\"b.txt\",\"w\")\n",
+ "c = 0\n",
+ "\n",
+ "if fs == 0:\n",
+ " sys.stdout.write(\"\\nSource file opening error.\")\n",
+ "else:\n",
+ " if ft == 0:\n",
+ " sys.stdout.write(\"\\nTarget file opening error.\")\n",
+ " else:\n",
+ " while True:\n",
+ " ch = fs.read(1)\n",
+ " if not ch:\n",
+ " break\n",
+ " ft.write(\"%c\"%(ch))\n",
+ " c += 1\n",
+ " sys.stdout.write(\"\\n%d Bytes copied from 'a.txt' to 'b.txt'.\"%(c))\n",
+ " c = 0\n",
+ " #there is no fcloseall() function in python\n",
+ " fs.close()\n",
+ " c += 1\n",
+ " ft.close()\n",
+ " c += 1\n",
+ " sys.stdout.write(\"\\n%d files closed.\"%(c))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "45 Bytes copied from 'a.txt' to 'b.txt'.\n",
+ "2 files closed."
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.33, Page number: 487<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read the contents of three files and find the largest file\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "y = 0\n",
+ "k = 0\n",
+ "t = 0\n",
+ "name = [\"1.txt\",\"2.txt\",\"3.txt\"]\n",
+ "f = [0 for i in range(0,3)]\n",
+ "x = [0 for i in range(0,3)]\n",
+ "\n",
+ "#Open all the files\n",
+ "for l in range(0,3):\n",
+ " fp = open(name[l],\"r\")\n",
+ " f[l] = fp\n",
+ " if fp == 0:\n",
+ " sys.stdout.write(\"\\n%s file not found.\"%(name[l]))\n",
+ " break\n",
+ " \n",
+ "#Read contents of all files\n",
+ "for l in range(0,3):\n",
+ " while True:\n",
+ " c1 = f[l].read(1)\n",
+ " if not c1:\n",
+ " break\n",
+ " x[l] = y\n",
+ " y += 1\n",
+ " y = 0\n",
+ "\n",
+ "#close the files\n",
+ "for l in range(0,3):\n",
+ " f[l].close()\n",
+ "\n",
+ "#Print size of all files\n",
+ "for l in range(0,2+1):\n",
+ " sys.stdout.write(\"File : %s Bytes : %d\\n\"%(name[l],x[l]))\n",
+ " t = t + x[l]\n",
+ " \n",
+ "#Find largest\n",
+ "for l in range(t,1,-1):\n",
+ " for k in range(0,3):\n",
+ " if l == x[k]:\n",
+ " sys.stdout.write(\"\\n%s are the largest file.\"%(name[k]))\n",
+ " break\n",
+ " if l == x[k]:\n",
+ " break"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "File : 1.txt Bytes : 16\n",
+ "File : 2.txt Bytes : 20\n",
+ "File : 3.txt Bytes : 25\n",
+ "\n",
+ "3.txt are the largest file."
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.34, Page number: 488<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Copy 100 characters from a file to an array\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "SIZE = 100\n",
+ "s = 0\n",
+ "x = 0\n",
+ "ch = ['0' for i in range(0,100)]\n",
+ "\n",
+ "#Open the files\n",
+ "f = open(\"poem.txt\",\"r\")\n",
+ "f2 = open(\"alpha.txt\",\"w\")\n",
+ "\n",
+ "if f ==0 or f2 == 0:\n",
+ " sys.stdout.write(\"?\")\n",
+ "else:\n",
+ " while True:\n",
+ " c = f.read(1)\n",
+ " x += 1\n",
+ " if not c:\n",
+ " break\n",
+ " else:\n",
+ " if x == 99:\n",
+ " break\n",
+ " else:\n",
+ " ch[s] = c\n",
+ " s += 1\n",
+ "\n",
+ "for s in range(0,100):\n",
+ " f2.write(\"%c\"%(ch[s]))\n",
+ "\n",
+ "sys.stdout.write(\"Process Completed : Error 0\")\n",
+ "f.close()\n",
+ "f2.close()\n",
+ "\n",
+ "#There is no perror() function in python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Process Completed : Error 0"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.35, Page number: 491<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Low level disk I/O operations.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "\n",
+ "#Variable Initialization\n",
+ "file1 = raw_input(\"Enter a file name : \")\n",
+ "\n",
+ "#Open file\n",
+ "s = open(file1,\"w\")\n",
+ "\n",
+ "#Result\n",
+ "if s == -1:\n",
+ " sys.stdout.write(\"File does not exits\")\n",
+ "else:\n",
+ " buff = raw_input(\"Enter text below:\")\n",
+ " s.write(\"%s\"%(buff))\n",
+ " s.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a file name : TEXT\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter text below:PROGRAMMING IN C\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.36, Page number: 492<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read text from a specified file \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "file1 = raw_input(\"Enter a file name \")\n",
+ "\n",
+ "#open file\n",
+ "s = open(file1,\"r\")\n",
+ "\n",
+ "#Result\n",
+ "if s == -1:\n",
+ " sys.stdout.write(\"File does not exists\")\n",
+ "else:\n",
+ " while True:\n",
+ " ch = s.read(1)\n",
+ " if not ch:\n",
+ " break\n",
+ " sys.stdout.write(\"%c\"%(ch))\n",
+ " \n",
+ "s.close()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a file name TEXT\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "PROGRAMMING IN C"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.37, Page number: 493<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Set a buffer size \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nThis book teaches C\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "This book teaches C"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.38, Page number: 494<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display number of arguments and their names\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nTotal number of arguments are %d\\n\"%(len(sys.argv)))\n",
+ "\n",
+ "print str(sys.argv)\n",
+ "\n",
+ "#Command line arguments can be given in python by the command\n",
+ "\n",
+ "# python pgmname.py arg1 arg2 arg3\n",
+ "\n",
+ "#This is not possible in ipython notebook"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.39, Page number: 495<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read any file from command prompt\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#open file\n",
+ "fp = open(sys.argv[1],\"r\")\n",
+ "\n",
+ "#Result\n",
+ "if fp == 0:\n",
+ " sys.stdout.write(\"Can not open file\")\n",
+ "else:\n",
+ " while True:\n",
+ " ch = fp.read(1)\n",
+ " if not ch:\n",
+ " break\n",
+ " sys.stdout.write(\"%c\"%(ch))\n",
+ " \n",
+ "fp.close()\n",
+ "\n",
+ "#This program can be run in python as\n",
+ "\n",
+ "# python pgmname.py filename"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.40, Page number: 495<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Command line argument to perform the task of DEL command\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Check number of arguments\n",
+ "if len(sys.argv) < 2:\n",
+ " sys.stdout.write(\"Insufficient Arguments\")\n",
+ "else:\n",
+ " fp = open(sys.argv[1],\"r\")\n",
+ " if fp == 0:\n",
+ " sys.stdout.write(\"File Not Found\")\n",
+ " fp.close()\n",
+ " os.remove(sys.argv[1])\n",
+ " sys.stdout.write(\"File has been deleted\")\n",
+ " \n",
+ "#This program can be deleted using\n",
+ "# python pgmname.py filename\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.41, Page number: 496<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Command line argument to perform the task of REN command\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Check number of arguments\n",
+ "if len(sys.srgv) < 3:\n",
+ " sys.stdout.write(\"Insufficient Arguments\")\n",
+ "else:\n",
+ " fp = open(sys.argv[1],\"r\")\n",
+ " if fp == 0:\n",
+ " sys.stdout.write(\"File Not Found\")\n",
+ " else:\n",
+ " sp = open(sys.argv[2],\"r\")\n",
+ " if sp == 0:\n",
+ " fp.close()\n",
+ " sp.close()\n",
+ " #Rename file\n",
+ " os.rename(sys.argv[1],sys.argv[2])\n",
+ " else:\n",
+ " sys.stdout.write(\"Duplicate file name or file is in use\")\n",
+ " \n",
+ "#This program can be executed as\n",
+ "\n",
+ "# python pgmname.py oldfilename newfilename\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.42, Page number: 497<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Environment variable and display the various settings.\n",
+ "\n",
+ "import sys\n",
+ "import os\n",
+ "\n",
+ "#Result\n",
+ "print os.environ\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "{'TMP': 'C:\\\\Users\\\\Aathira\\\\AppData\\\\Local\\\\Temp', 'COMPUTERNAME': 'AATHIRA-PC', 'GUROBI_HOME': 'B:\\\\gurobi510\\\\win32', 'USERDOMAIN': 'Aathira-PC', 'PSMODULEPATH': 'C:\\\\Windows\\\\system32\\\\WindowsPowerShell\\\\v1.0\\\\Modules\\\\', 'COMMONPROGRAMFILES': 'C:\\\\Program Files (x86)\\\\Common Files', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 15 Stepping 13, GenuineIntel', 'PROGRAMFILES': 'C:\\\\Program Files (x86)', 'PROCESSOR_REVISION': '0f0d', 'SYSTEMROOT': 'C:\\\\Windows', 'PATH': 'C:\\\\Anaconda\\\\lib\\\\site-packages\\\\numpy\\\\core;B:\\\\gurobi510\\\\win32\\\\bin;C:\\\\Windows\\\\system32;C:\\\\Windows;C:\\\\Windows\\\\System32\\\\Wbem;C:\\\\Windows\\\\System32\\\\WindowsPowerShell\\\\v1.0\\\\;C:\\\\Program Files (x86)\\\\Common Files\\\\Adobe\\\\AGL;C:\\\\Program Files\\\\MATLAB\\\\R2009a\\\\bin;C:\\\\Program Files\\\\MATLAB\\\\R2009a\\\\bin\\\\win64;c:\\\\python27\\\\scripts;C:\\\\Program Files (x86)\\\\MiKTeX 2.9\\\\miktex\\\\bin\\\\;C:\\\\Anaconda;C:\\\\Anaconda\\\\Scripts;C:\\\\Program Files (x86)\\\\ffmpeg', 'CLICOLOR': '1', 'PROGRAMFILES(X86)': 'C:\\\\Program Files (x86)', 'COMSPEC': 'C:\\\\Windows\\\\system32\\\\cmd.exe', 'TK_LIBRARY': 'C:\\\\Anaconda\\\\tcl\\\\tk8.5', 'TERM': 'xterm-color', 'TEMP': 'C:\\\\Users\\\\Aathira\\\\AppData\\\\Local\\\\Temp', 'COMMONPROGRAMFILES(X86)': 'C:\\\\Program Files (x86)\\\\Common Files', 'PROCESSOR_ARCHITECTURE': 'x86', 'TIX_LIBRARY': 'C:\\\\Anaconda\\\\tcl\\\\tix8.4.3', 'ALLUSERSPROFILE': 'C:\\\\ProgramData', 'LOCALAPPDATA': 'C:\\\\Users\\\\Aathira\\\\AppData\\\\Local', 'HOMEPATH': '\\\\Users\\\\Aathira', 'PROGRAMW6432': 'C:\\\\Program Files', 'USERNAME': 'Aathira', 'LOGONSERVER': '\\\\\\\\AATHIRA-PC', 'SESSIONNAME': 'Console', 'PROGRAMDATA': 'C:\\\\ProgramData', 'TCL_LIBRARY': 'C:\\\\Anaconda\\\\tcl\\\\tcl8.5', 'GIT_PAGER': 'cat', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'FP_NO_HOST_CHECK': 'NO', 'WINDIR': 'C:\\\\Windows', 'APPDATA': 'C:\\\\Users\\\\Aathira\\\\AppData\\\\Roaming', 'HOMEDRIVE': 'C:', 'PAGER': 'cat', 'SYSTEMDRIVE': 'C:', 'NUMBER_OF_PROCESSORS': '2', 'PROCESSOR_LEVEL': '6', 'PROCESSOR_ARCHITEW6432': 'AMD64', 'COMMONPROGRAMW6432': 'C:\\\\Program Files\\\\Common Files', 'OS': 'Windows_NT', 'PUBLIC': 'C:\\\\Users\\\\Public', 'USERPROFILE': 'C:\\\\Users\\\\Aathira'}\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.43, Page number: 498<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read character from keyboard \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "c = '0'\n",
+ "\n",
+ "#Result\n",
+ "while c != ' ':\n",
+ " c = raw_input(\"\")\n",
+ " sys.stdout.write(\"%c \"%(c))\n",
+ " \n",
+ "#Give space at the end"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1 2 "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3 4 "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5 6 "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7 8 "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "9 "
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 14.44, Page number: 499<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display A to Z characters\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Result\n",
+ "for a in range(65,91):\n",
+ " sys.stdout.write(\"%c\\t\"%(chr(a)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A\tB\tC\tD\tE\tF\tG\tH\tI\tJ\tK\tL\tM\tN\tO\tP\tQ\tR\tS\tT\tU\tV\tW\tX\tY\tZ\t"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Programming_in_C_using_ANSI_C/KamthaneChapter15.ipynb b/Programming_in_C_using_ANSI_C/KamthaneChapter15.ipynb new file mode 100755 index 00000000..0c5ac02f --- /dev/null +++ b/Programming_in_C_using_ANSI_C/KamthaneChapter15.ipynb @@ -0,0 +1,754 @@ +{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 15: Additional in 'C'<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.1, Page number: 505<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Allocate memory to pointer variable. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "j = 0\n",
+ "k = int(raw_input(\"How many number : \"))\n",
+ "p = [0 for i in range(0,k)]\n",
+ "\n",
+ "#in python, all variables are allocated using dynamic memory allocation technique and no\n",
+ "#malloc function and pointer concept is available in python.\n",
+ "\n",
+ "#Read the numbers\n",
+ "while j != k:\n",
+ " p[j] = int(raw_input(\"Number %d = \"%(j+1)))\n",
+ " j += 1\n",
+ " \n",
+ "j = 0\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"The numbers are : \")\n",
+ "while j != k:\n",
+ " sys.stdout.write(\"%d\\t\"%(p[j]))\n",
+ " j += 1\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many number : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 1 = 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 2 = 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 3 = 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 4 = 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The numbers are : 1\t2\t3\t4\t"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.2, Page number: 506<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Memory allocation to pointer variable. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "j = 0\n",
+ "k = int(raw_input(\"How many Number : \"))\n",
+ "p = [0 for i in range(0,k)]\n",
+ "\n",
+ "#in python, all variables are allocated using dynamic memory allocation technique and no\n",
+ "#calloc function and pointer concept is available in python.\n",
+ "\n",
+ "#Read the numbers\n",
+ "while j != k:\n",
+ " p[j] = int(raw_input(\"Number %d = \"%(j+1)))\n",
+ " j += 1\n",
+ " \n",
+ "j = 0\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"The numbers are : \")\n",
+ "while j != k:\n",
+ " sys.stdout.write(\"%d\\t\"%(p[j]))\n",
+ " j += 1\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many Number : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 1 = 45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 2 = 58\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number 3 = 98\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The numbers are : 45\t58\t98\t"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.3, Page number: 507<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Reallocate memory \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "str1 = \"India\"\n",
+ "\n",
+ "#in python, value tagged method is used for data storage instead of memory tagging.\n",
+ "#no realloc function is in python\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"str = %s\"%(str1))\n",
+ "str1 = \"Hindustan\"\n",
+ "sys.stdout.write(\"\\nNow str = %s\"%(str1))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "str = India\n",
+ "Now str = Hindustan"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.4, Page number: 508<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display unused memory \n",
+ "\n",
+ "import psutil\n",
+ "\n",
+ "psutil.phymem_usage()\n",
+ "\n",
+ "#There is no coreleft() function in python. phymem_usage function in the module psutil gives the \n",
+ "#status and usage of physical memory in python."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "pyout",
+ "prompt_number": 6,
+ "text": [
+ "usage(total=3165270016L, used=987840512L, free=2177429504L, percent=31.2)"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.5, Page number: 510<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Linked list\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialziation\n",
+ "ch = 'y'\n",
+ "p = 0\n",
+ "q = []\n",
+ "\n",
+ "#Function Definitions\n",
+ "def gen_rate(m):\n",
+ " q.append(m)\n",
+ " \n",
+ "def show():\n",
+ " print q\n",
+ " \n",
+ "def addatstart(m):\n",
+ " q.insert(0,m)\n",
+ " \n",
+ "def append(m,po):\n",
+ " q.insert(po,m)\n",
+ "\n",
+ "def erase(d):\n",
+ " q.remove(d)\n",
+ " \n",
+ "def count():\n",
+ " print len(q)\n",
+ " \n",
+ "def descending():\n",
+ " q.sort(reverse=True)\n",
+ " \n",
+ "#Get choice\n",
+ "while ch == 'y':\n",
+ " n = int(raw_input(\"1. Generate\\n2. Add at starting\\n3. Append\\n4. Delete\\n5. Show\\n6.Count\\n7.Descending\\nEnter your choice: \"));\n",
+ " #There is no switch statement in python\n",
+ " if n == 1:\n",
+ " i = int(raw_input(\"How many node you want : \"))\n",
+ " for j in range(0,i):\n",
+ " m = int(raw_input(\"Enter the element : \"))\n",
+ " gen_rate(m)\n",
+ " show()\n",
+ " else:\n",
+ " if n == 2:\n",
+ " m = int(raw_input(\"Enter the element : \"))\n",
+ " addatstart(m)\n",
+ " show()\n",
+ " else:\n",
+ " if n == 3:\n",
+ " m = int(raw_input(\"Enter the element and position \"))\n",
+ " po = int(raw_input(\"Enter the element and position\"))\n",
+ " append(m,po)\n",
+ " show()\n",
+ " else:\n",
+ " if n == 4:\n",
+ " d = int(raw_input(\"Enter the number for deletion : \"))\n",
+ " erase(d)\n",
+ " show()\n",
+ " else:\n",
+ " if n == 5:\n",
+ " show()\n",
+ " else:\n",
+ " if n == 6:\n",
+ " count()\n",
+ " else:\n",
+ " if n == 7:\n",
+ " descending()\n",
+ " show()\n",
+ " else:\n",
+ " sys.stdout.write(\"Enter value between 1 to 7\")\n",
+ " \n",
+ " ch = raw_input(\"Do u wnat to continue (y/n)\")\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1. Generate\n",
+ "2. Add at starting\n",
+ "3. Append\n",
+ "4. Delete\n",
+ "5. Show\n",
+ "6.Count\n",
+ "7.Descending\n",
+ "Enter your choice: 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many node you want : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element : 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the element : 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "[1, 5, 4, 7]\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Do u wnat to continue (y/n)n\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.6, Page number: 518<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Draw circle, line and arc using graphics function\n",
+ "\n",
+ "%pylab inline\n",
+ "import pylab\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "#Tkinter package is used for graphics\n",
+ "#Give proportionate sizes to draw\n",
+ "#draw circle\n",
+ "circle2=plt.Circle((.5,.5),.2,color='b')\n",
+ "fig = plt.gcf()\n",
+ "fig.gca().add_artist(circle2)\n",
+ "\n",
+ "\n",
+ "#draw line\n",
+ "figure()\n",
+ "pylab.plot([210,110],[150,150])\n",
+ "\n",
+ "#Draw ellipse\n",
+ "figure()\n",
+ "from matplotlib.patches import Ellipse\n",
+ "e = Ellipse(xy=(35, -50), width=10, height=5, linewidth=2.0, color='g')\n",
+ "fig = plt.gcf()\n",
+ "fig.gca().add_artist(e)\n",
+ "e.set_clip_box(ax.bbox)\n",
+ "e.set_alpha(0.7)\n",
+ "pylab.xlim([20, 50])\n",
+ "pylab.ylim([-65, -35])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Populating the interactive namespace from numpy and matplotlib\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stderr",
+ "text": [
+ "WARNING: pylab import has clobbered these variables: ['pylab', 'e']\n",
+ "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "pyout",
+ "prompt_number": 61,
+ "text": [
+ "(-65, -35)"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEACAYAAABI5zaHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGXlJREFUeJzt3X9w1HV+x/HXQjaQREB+2BzsZg5IIgmNBNogclS76Hlg\nnEtbYe5Cb+4UmZhj6ng6bc+rthp0RsE/buqZaxumqFUhhyPOxRlhvUJZ7QhcPFHwgKEBQTfxpAbB\nYICQbL7941MDMbDZJLv73f3s8zGzE5b95LtvPiSvfPL5fr6fr8dxHEcAAKuMcrsAAED8Ee4AYCHC\nHQAsRLgDgIUIdwCwEOEOABYaNNzvvvtu5efn67rrrrtim/vuu0/FxcUqLy/Xe++9F9cCAQBDN2i4\nr1y5UsFg8Iqvb926VUeOHFFLS4vWr1+v1atXx7VAAMDQDRruN954oyZOnHjF11977TXdeeedkqQF\nCxbo9OnTOnHiRPwqBAAM2Yjn3Nva2lRQUND33O/3q7W1daSHBQCMQFxOqH59BwOPxxOPwwIAhilr\npAfw+XwKh8N9z1tbW+Xz+Qa0Kyoq0tGjR0f6dgCQUQoLC3XkyJEhf96IR+5VVVV64YUXJEl79uzR\n1Vdfrfz8/AHtjh49KsdxeDiOHn30UddrSJUHfUFf0BfRH8MdFA86cl+xYoXefPNNtbe3q6CgQGvW\nrFF3d7ckqba2VpWVldq6dauKioqUl5en5557bliFAADiZ9Bwb2xsHPQg9fX1cSkGABAfXKHqgkAg\n4HYJKYO+uIi+uIi+GDmP4zhJuVmHx+NRkt4KAKwx3Oxk5A4AFiLcAcBChDsAWIhwBwALEe4AYCHC\nHQAsRLgDgIUIdwCwEOEOABYi3AHAQoQ7AFiIcAcACxHuAGAhwh0ALES4A4CFCHcAsBDhDgAWItwB\nwEKEOwBYiHAHAAsR7gBgIcIdACxEuAOAhQh3ALAQ4Q4AFiLcAcBChDsAWIhwBwALEe4AYCHCHQAs\nRLgDgIUIdwCwEOEOABYi3AHAQoOGezAYVElJiYqLi7Vu3boBr7e3t2vp0qWaO3euysrK9Pzzzyei\nTgDAEHgcx3Gu9GIkEtGsWbO0fft2+Xw+zZ8/X42NjSotLe1rU1dXp66uLj355JNqb2/XrFmzdOLE\nCWVlZfV/I49HUd4KAHAZw83OqCP35uZmFRUVafr06fJ6vaqurlZTU1O/NlOnTlVHR4ckqaOjQ5Mn\nTx4Q7ACA5Iqawm1tbSooKOh77vf79dvf/rZfm5qaGt18882aNm2azpw5o5dffjkxlQIAYhY13D0e\nz6AHeOKJJzR37lyFQiEdPXpUt956q/bt26dx48YNaFtXV9f350AgoEAgMOSCAcBmoVBIoVBoxMeJ\nGu4+n0/hcLjveTgclt/v79dm165devjhhyVJhYWFmjFjhg4fPqyKiooBx7s03AEAA3194LtmzZph\nHSfqnHtFRYVaWlp0/PhxXbhwQZs3b1ZVVVW/NiUlJdq+fbsk6cSJEzp8+LBmzpw5rGIAAPERdeSe\nlZWl+vp6LVmyRJFIRKtWrVJpaakaGhokSbW1tXrooYe0cuVKlZeXq7e3V0899ZQmTZqUlOIBAJcX\ndSlkXN+IpZAAMGQJWQoJAEhPhDsAWIhwBwALEe4AYCHCHQAsRLgDgIUIdwCwEOEOABYi3AHAQoQ7\nAFiIcAcACxHuAGAhwh0ALES4A4CFCHcAsBDhDgAWItwBwEJRb7MHpBPHkdrbpQ8/NI+PPpI+/VQ6\ncUI6edI8Tp+WOjqkri6pt9c8HEfyeKRRo6TRo6XcXGnCBGniRGnyZOmaa6RvfEPKz5dmzjSPGTOk\nvDy3/8XAlXGbPaQdx5FaW6Xf/U7as8d8/PBD6Q9/MK+PGWPanD0rRSLxe9/sbGnsWHPsc+fMDwG/\nXyoulr71LWn+fOlP/sT8YADiZbjZSbgj5XV2Sm+9Jb39thQKSfv3Sz09ktcrffmlGX27LTtbyskx\nP1CmTDFBHwhIf/ZnJvBHj3a7QqQrwh3WcBxp3z4pGJReeUX64AMzYu7sjO9IPNHGjDGh39trgn7Z\nMuk735F8PrcrQzoh3JHWenqk//ovacMGE+q9vVJ3t5kbt0Venvl35udL3/++dNdd0uzZbleFVEe4\nI+04jpkvf/ZZqbHRBPqXX5q/t53Xax5Tp0r33CP94AeM6HF5hDvSxuefS//2b9Ivfyl98YV0/nx6\nTbfE21cnaa+7TvrpT6W/+ispi3Vs+H+EO1JeS4u0bp20aZN5fu6cu/WkonHjzFz9gw+aEf348W5X\nBLcR7khZb70lrVkj7dpl5px7etyuKPXl5prR/MqVZjT/zW+6XRHcQrgj5bz/vvQ3f2NWvnR2ul1N\nevJ6zRTNXXdJjz9uLqpCZiHckTI+/lj627+VXn/dzKfz3z5yY8aYkH/oIemBB8yaemQGwh2uO3NG\neuQRqaHBLGNk+iX+cnNNsP/859IPf2i2TYDdCHe4ats26Uc/MksZz593uxr75eVJc+ZIL71k9rqB\nvYabnewKiRH54gvpe9+Tli83m3YR7MnR2Sk1N5vlk08/nRpbMCC1MHLHsO3caYL9zBm7riRNN3l5\nUnm59PLLXAhlI0buSBrHkdaulW6/3YzWCXZ3fTWKLyszm6sBEiN3DNG5c+ZE3rZtZgdEpJacHOmf\n/9lcAAU7cEIVCdfWJt16q3T8OFeXprLcXGnFCulf/9Wsk0d6S9i0TDAYVElJiYqLi7Vu3brLtgmF\nQpo3b57KysoUCASGXARS38GDZnVGSwvBnurOnjUbsQUC/HaVyaKO3CORiGbNmqXt27fL5/Np/vz5\namxsVGlpaV+b06dPa9GiRXrjjTfk9/vV3t6uKVOmDHwjRu5p6+BBadEiszKG/8L0MXasNG+etH27\nGc0jPSVk5N7c3KyioiJNnz5dXq9X1dXVampq6tdm06ZNWrZsmfx+vyRdNtiRvgj29HX+vPTee9K3\nv80IPhNFDfe2tjYVFBT0Pff7/Wpra+vXpqWlRZ9//rkWL16siooKvfjii4mpFElHsKc/Aj5zRd01\n2hPDtc3d3d3au3evduzYobNnz2rhwoW64YYbVFxcHLcikXyffWbmbAn29PdVwK9YIf3612xZkCmi\nhrvP51M4HO57Hg6H+6ZfvlJQUKApU6YoJydHOTk5uummm7Rv377LhntdXV3fnwOBACdfU1R3t1nD\nfvo0wW6L8+fN3PvatdI//IPb1SCaUCikUCg08gM5UXR3dzszZ850jh075nR1dTnl5eXOwYMH+7U5\ndOiQc8sttzg9PT1OZ2enU1ZW5hw4cGDAsQZ5K6SQH//YcXJzHcdEOw+bHjk5jvOb37j9FYahGG52\nRh25Z2Vlqb6+XkuWLFEkEtGqVatUWlqqhoYGSVJtba1KSkq0dOlSzZkzR6NGjVJNTY1mc9fftPUf\n/yG98ALzs7Y6d05atszstc+GY3bjIib0+eQT6dprubGG7UaNkubPl3bvZv49HbC3DEbsnnukCxfc\nrgKJ1tsr/f73Egvb7MbIHZLMXjHLlzMdk0nGj5eOHZMmTXK7EkTDyB3DdvasuREzwZ5Zurqkn/zE\n7SqQKIQ7tH692ZMdmaWrS3rlFenoUbcrQSIwLZPhenqkadPMRUvIPFlZ5vaIGza4XQmuhGkZDMuW\nLezymMl6eqRNm8xNV2AXwj2DOY70yCPmptbIbL/4hdsVIN6Ylslge/dKN93EunZIEydKJ0+y7j0V\nMS2DIfv1r1nXDqO722wuBnsQ7hnsV78y39RAV5f0tVs1IM0R7hnqk0+kjz92uwqkiu5u88Me9iDc\nM9Qbb3DzZPT30UcsibUJ4Z6h3n+fVTLob+xY6dAht6tAvBDuGer9992uAKmmu1v6n/9xuwrEC+Ge\noY4ccbsCpJqzZ819c2EHwj0D9fRI//u/bleBVMRySHsQ7hmoo0MaPdrtKpCKOKFqD8I9A124YO7G\nA3wd1z3Yg2/xDNTb63YFSFWRiNsVIF4I9wyUnW02DQO+Ljvb7QoQL4R7BsrN5ddvXF5entsVIF4I\n9wyUm8s3MS6vtNTtChAvhHuGmjHD7QqQarKzpfJyt6tAvBDuGeqP/9jtCpBqxo6Vrr3W7SoQL4R7\nhpo7l5Nn6K+3l3C3CeGeoW68URozxu0qkEpGjZKKi92uAvFCuGeo6693uwKkmttv5+I2m/BfmaFG\njZIqK92uAqli/Hjpe99zuwrEE+Gewb7/fWncOLerQCo4f1769rfdrgLxRLhnsO98h60IIHk80uLF\n0lVXuV0J4olwz2B5edLq1ZxYzXQ5OVJdndtVIN48jpOcXUY8Ho+S9FYYgj/8QZo50/xajsxUXs6d\nuVLZcLOTkXuGmzpVuuMO9nfPVFddJT32mNtVIBEYuUOHD0vz5knnzrldCZJtxgxzy0WWQKYuRu4Y\ntlmzpB//2My9InPk5kovvECw24qROySZmyPPmMG9VTPFmDHSsmXSxo1uV4LBJGzkHgwGVVJSouLi\nYq1bt+6K7d555x1lZWXp1VdfHXIRcF9urvTcc+Yj7DdmjPSLX7hdBRIparhHIhHde++9CgaDOnjw\noBobG3Xo0KHLtnvwwQe1dOlSRudprLLSXMjC0ki75eZK//Iv0uTJbleCRIoa7s3NzSoqKtL06dPl\n9XpVXV2tpqamAe2eeeYZLV++XNdcc03CCkVyvPSS9I1vMA9rq9xc6a//WvrBD9yuBIkW9Vu4ra1N\nBQUFfc/9fr/a2toGtGlqatLq1aslmfkhpK9x46T//E+mZ2yUlSWVlJhRO+wXNdxjCer7779fa9eu\n7Zv0Z1om/RUXS5s3s3rGNhMmSFu3Sl6v25UgGbKivejz+RQOh/ueh8Nh+f3+fm3effddVVdXS5La\n29u1bds2eb1eVVVVDThe3SXXOAcCAQUCgRGUjkSqrJQeeUR6/HGzkgbpLS9PCgal/Hy3K8FgQqGQ\nQqHQiI8TdSlkT0+PZs2apR07dmjatGm6/vrr1djYqNIr3EV35cqV+u53v6s77rhj4BuxFDItPf64\ntHYtAZ/O8vKk3/xG+ta33K4EwzHc7Iw6cs/KylJ9fb2WLFmiSCSiVatWqbS0VA0NDZKk2tra4VWL\ntPFP/2Q+EvDpiWDPXFzEhJgwgk8/BLsdhpudhDti9stfSn//9+xBk+q8XnNnpTfekP70T92uBiNF\nuCMp3nxT+ou/kL78UopE3K4GX5ebK117LSdPbcLGYUiKP/9zad8+sw/N2LFuV4NL5eWZ7Zv37CHY\nQbhjGL75TXNzh8pKLnZKBR6PuSbhySfNLo9sHwGJaRmM0K9+Jd1zj7mTU3e329VkntxcqaBAevVV\nafZst6tBIjAtA1dUV5ubfdx8s5kWQHKMGmVG63/3d9IHHxDsGIiRO+Jmyxappkbq6mLJZCLl5ZmT\nphs3Sle4nhAWYeQO1y1bJrW2Sg8+aKYLsrPdrsgueXmS32927nz3XYId0TFyR0J89pn0j/9oTvB1\nd7NsciRycswPyiefNL8ZZUW9rhy2YZ07UtKRI9JPfypt2yb19koXLrhdUfq46iqzEuYnPzF9OG6c\n2xXBDYQ7Ulprq/Tzn0vr15vnnZ3u1pPKrrpKuvpqs6/PD3/I1suZjnBHWvjyS3Ov1ieeMAHf2WlG\n9JkuO1saPVqaM0d69FFpyRLuhgWDcEda6e2V/vu/pX//d7NGe/Ro6cwZt6tKrtGjzVW+48dLq1ZJ\nP/qRuVEKcCnCHWmrq8vcIaihQQqFzBWWZ85INn65eL0m0D0ecy/Tu++WKirMc+ByCHdYoaND2rlT\namoygd/RYYIvndfNjx9vruAtKjJ7v9x2m3T99ax6QWwId1jp6FGzde2WLdLvfmdW22Rnm7n7VJyr\nz842I/Nz56Q/+iMpEJD+8i/NFbyTJrldHdIR4Q7rOY70yScm5JubzRTOBx+YwB8zxrx+9mxy1tR/\nFeKOY4J8yhQzvRIImI/z5pkROzBShDsykuNIJ09KH35oHkePSr//vdnvJhw2I/yuLhPGXq85ifnV\n5116jEvnvD0e83eRiPnBEYmYK24nTDBbHc+eba4OnTnTPGbMYF8dJA7hDlxBJCJ98YV06tTFx1cj\n/EjETO+MHn3xMX68NHHixcdXFxMBbiDcAcBCbBwGAOhDuAOAhQh3ALAQ4Q4AFiLcAcBChDsAWIhw\nBwALEe4AYCHCHQAsRLgDgIUIdwCwEOEOABYi3AHAQoQ7AFiIcAcACxHuAGChmMI9GAyqpKRExcXF\nWrdu3YDXN27cqPLycs2ZM0eLFi3S/v37414oACB2g96JKRKJaNasWdq+fbt8Pp/mz5+vxsZGlZaW\n9rXZvXu3Zs+erQkTJigYDKqurk579uzp/0bciQkAhixhd2Jqbm5WUVGRpk+fLq/Xq+rqajU1NfVr\ns3DhQk2YMEGStGDBArW2tg65EABA/Awa7m1tbSooKOh77vf71dbWdsX2GzZsUGVlZXyqAwAMS9Zg\nDTxDuO37zp079eyzz+rtt9++7Ot1dXV9fw4EAgoEAjEfGwAyQSgUUigUGvFxBg13n8+ncDjc9zwc\nDsvv9w9ot3//ftXU1CgYDGrixImXPdal4Q4AGOjrA981a9YM6ziDTstUVFSopaVFx48f14ULF7R5\n82ZVVVX1a/Pxxx/rjjvu0EsvvaSioqJhFQIAiJ9BR+5ZWVmqr6/XkiVLFIlEtGrVKpWWlqqhoUGS\nVFtbq8cee0ynTp3S6tWrJUler1fNzc2JrRwAcEWDLoWM2xuxFBIAhixhSyEBAOmHcAcACxHuAGAh\nwh0ALES4A4CFCHcAsBDhDgAWItwBwEKEOwBYiHAHAAsR7gBgIcIdACxEuAOAhQh3ALAQ4Q4AFiLc\nAcBChDsAWIhwBwALEe4AYCHCHQAsRLgDgIUIdwCwEOEOABYi3AHAQoQ7AFiIcAcACxHuAGAhwh0A\nLES4A4CFCHcAsBDhDgAWItwBwEKEOwBYiHAHAAsR7gBgoUHDPRgMqqSkRMXFxVq3bt1l29x3330q\nLi5WeXm53nvvvbgXCQAYmqjhHolEdO+99yoYDOrgwYNqbGzUoUOH+rXZunWrjhw5opaWFq1fv16r\nV69OaME2CIVCbpeQMuiLi+iLi+iLkYsa7s3NzSoqKtL06dPl9XpVXV2tpqamfm1ee+013XnnnZKk\nBQsW6PTp0zpx4kTiKrYAX7gX0RcX0RcX0RcjFzXc29raVFBQ0Pfc7/erra1t0Datra1xLhMAMBRR\nw93j8cR0EMdxhvV5AIDEyIr2os/nUzgc7nseDofl9/ujtmltbZXP5xtwrMLCQkL/EmvWrHG7hJRB\nX1xEX1xEXxiFhYXD+ryo4V5RUaGWlhYdP35c06ZN0+bNm9XY2NivTVVVlerr61VdXa09e/bo6quv\nVn5+/oBjHTlyZFgFAgCGLmq4Z2Vlqb6+XkuWLFEkEtGqVatUWlqqhoYGSVJtba0qKyu1detWFRUV\nKS8vT88991xSCgcAXJnH+fqEOQAg7cX9ClUuerposL7YuHGjysvLNWfOHC1atEj79+93ocrkiOXr\nQpLeeecdZWVl6dVXX01idckTSz+EQiHNmzdPZWVlCgQCyS0wiQbri/b2di1dulRz585VWVmZnn/+\n+eQXmSR333238vPzdd11112xzZBz04mjnp4ep7Cw0Dl27Jhz4cIFp7y83Dl48GC/Nq+//rpz2223\nOY7jOHv27HEWLFgQzxJSRix9sWvXLuf06dOO4zjOtm3bMrovvmq3ePFi5/bbb3deeeUVFypNrFj6\n4dSpU87s2bOdcDjsOI7jfPbZZ26UmnCx9MWjjz7q/OxnP3Mcx/TDpEmTnO7ubjfKTbi33nrL2bt3\nr1NWVnbZ14eTm3EduXPR00Wx9MXChQs1YcIESaYvbL0+IJa+kKRnnnlGy5cv1zXXXONClYkXSz9s\n2rRJy5Yt61uVNmXKFDdKTbhY+mLq1Knq6OiQJHV0dGjy5MnKyop6mjBt3XjjjZo4ceIVXx9ObsY1\n3Lno6aJY+uJSGzZsUGVlZTJKS7pYvy6ampr6tq+wcdlsLP3Q0tKizz//XIsXL1ZFRYVefPHFZJeZ\nFLH0RU1NjQ4cOKBp06apvLxcTz/9dLLLTBnDyc24/hjkoqeLhvJv2rlzp5599lm9/fbbCazIPbH0\nxf3336+1a9fK4/HIcZwBXyM2iKUfuru7tXfvXu3YsUNnz57VwoULdcMNN6i4uDgJFSZPLH3xxBNP\naO7cuQqFQjp69KhuvfVW7du3T+PGjUtChalnqLkZ13CP50VP6S6WvpCk/fv3q6amRsFgMOqvZeks\nlr549913VV1dLcmcSNu2bZu8Xq+qqqqSWmsixdIPBQUFmjJlinJycpSTk6ObbrpJ+/btsy7cY+mL\nXbt26eGHH5ZkLuSZMWOGDh8+rIqKiqTWmgqGlZtxOyPgOE53d7czc+ZM59ixY05XV9egJ1R3795t\n7UnEWPrio48+cgoLC53du3e7VGVyxNIXl7rrrrucLVu2JLHC5IilHw4dOuTccsstTk9Pj9PZ2emU\nlZU5Bw4ccKnixImlLx544AGnrq7OcRzH+fTTTx2fz+ecPHnSjXKT4tixYzGdUI01N+M6cueip4ti\n6YvHHntMp06d6ptn9nq9am5udrPshIilLzJBLP1QUlKipUuXas6cORo1apRqamo0e/ZslyuPv1j6\n4qGHHtLKlStVXl6u3t5ePfXUU5o0aZLLlSfGihUr9Oabb6q9vV0FBQVas2aNuru7JQ0/N7mICQAs\nxG32AMBChDsAWIhwBwALEe4AYCHCHQAsRLgDgIUIdwCwEOEOABb6P0Anxcrjn3WCAAAAAElFTkSu\nQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x707a9f0>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAEACAYAAABS29YJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAF0tJREFUeJzt3XtsU+f9x/GPM8JWljCCBiaKU2JugzR28AK0MKXzr8CA\nomzrZdVcAVUcpIr+tZoxtj+gttZCCIuqNtO2TKIwiXX8g4BpgghP4ACquCdKRqVBWaIkkKVLQ6YR\nKNfn90dVizQ3nDi0yfN+SZYOz3l8zvfblk9OnuNTO4wxRgCAUS3lyy4AADD8CHsAsABhDwAWIOwB\nwAKEPQBYgLAHAAv0G/bBYFBOp1Mejyc+Fg6H5XK55PP55PP5dOjQIUnSp59+qkAgIK/Xq9zcXJWW\nlg5v5QCAh9Zv2BcXF6uqqqrbmMPhUCgUUk1NjWpqarRixQpJ0p49eyRJdXV1OnfunCorK9XU1DRM\nZQMAEtFv2BcWFiojI6PHeG/PYWVmZqqrq0v37t1TV1eXxo4dq/HjxyevUgDAoA1qzb6iokL5+fkq\nKSlRZ2enJGnZsmUaP368MjMzlZOTow0bNmjChAlJLRYAMDgJh/26devU0NCg2tpaZWZmav369ZKk\n3bt36+bNm2ptbVVDQ4N+85vfqKGhIekFAwASNybRN0yePDm+vXbtWhUVFUmSPvjgAz333HP62te+\npkmTJul73/uezp49K7fb3eMYM2bM0OXLl4dQNgDYZfr06froo48G/f6Er+xbW1vj2/v27Yt/Umf2\n7Nk6cuSIJKmrq0snT57UnDlzej3G5cuXZYwZla833njjS6+B/uiP/kbfa6gXyP1e2QcCAVVXV6u9\nvV3Z2dmKRCKKxWKqra2Vw+GQ2+1WZWWlJOnVV19VSUmJPB6P7t+/r2AwqLy8vCEVBwBIjn7D/i9/\n+UuPsWAw2Ovcr3/969q9e3dyqgIAJBVP0CaZ3+//sksYVvQ3stGfvRzGmEf+5SUOh0NfwmkBYMQa\nam5yZQ8AFiDsAcAChD0AWICwBwALEPYAYAHCHgAsQNgDgAUIewCwAGEPABYg7AHAAoQ9AFiAsAcA\nCxD2AGABwh4ALEDYA4AFCHsAsABhDwAW6Dfsg8GgnE6nPB5PfCwcDsvlcsnn88nn86mqqiq+r66u\nTgsXLlReXp68Xq9u3bo1fJUDAB5av19LePz4caWlpWnNmjWqr6+XJEUiEaWnpysUCnWbe/fuXRUU\nFGj37t3yeDy6du2avvWtbyklpefPE76WEAASM6xfS1hYWKiMjIwe472d8PDhw/J6vfHfAjIyMnoN\negDAozeoNK6oqFB+fr5KSkrU2dkpSbp06ZIcDoeWL1+ugoICbd++PamFAgAGL+GwX7dunRoaGlRb\nW6vMzEytX79eknTnzh2dOHFC77//vk6cOKF9+/bpyJEjSS8YAJC4MYm+YfLkyfHttWvXqqioSJKU\nnZ2tp59+WhMnTpQkPfvsszp//ryeeeaZXo8TDofj236/X36/P9FSAGDUisViisViSTtevzdoJamx\nsVFFRUXxG7Stra3KzMyUJL399ts6c+aM3n//fV27dk1LlizRiRMnlJqaqhUrVigUCmnFihU9T8oN\nWgBIyFBzs98r+0AgoOrqarW3tys7O1uRSESxWEy1tbVyOBxyu92qrKyU9NkN2VAopPnz58vhcGjl\nypW9Bj0A4NEb8Mp+WE7KlT0AJGRYP3oJABgdCHsAsABhDwAWIOwBwAKEPQBYgLAHAAsQ9gBgAcIe\nACxA2AOABQh7ALAAYQ8AFiDsAcAChD0AWICwBwALEPYAYAHCHgAsQNgDgAUIewCwAGEPABboN+yD\nwaCcTqc8Hk98LBwOy+Vyyefzyefzqaqqqtt7mpqalJaWpvLy8uGpGACQsH7Dvri4uEeYOxwOhUIh\n1dTUqKamRsuXL++2PxQKaeXKlcmvFAAwaGP621lYWKjGxsYe4319w/n+/fs1bdo0ffOb30xKcQCA\n5BjUmn1FRYXy8/NVUlKizs5OSdL169dVVlamcDiczPoAAEnQ75V9b9atW6fNmzdLkjZt2qT169dr\nx44dCofDev311zVu3Lg+r/wf9OAPBb/fL7/fn2gpADBqxWIxxWKxpB3PYQZI5sbGRhUVFam+vr7f\nfU8//bSam5slSZ2dnUpJSdGvf/1rvfbaaz1P6nA81A8EAMBnhpqbCV/Zt7a2KjMzU5K0b9+++Cd1\njh07Fp8TiUSUnp7ea9ADAB69fsM+EAiourpa7e3tys7OViQSUSwWU21trRwOh9xutyorKx9VrQCA\nQRpwGWdYTsoyDgAkZKi5yRO0AGABwh4ALEDYA4AFCHsAsABhDwAWIOwBwAKEPQBYgLAHAAsQ9gBg\nAcIeACxA2AOABQh7ALAAYQ8AFiDsAcAChD0AWICwBwALEPYAYAHCHgAsQNgDgAUGDPtgMCin0ymP\nxxMfC4fDcrlc8vl88vl8qqqqkiRFo1HNmzdPXq9X8+bN09GjR4evcgDAQxvwC8ePHz+utLQ0rVmz\nRvX19ZKkSCSi9PR0hUKhbnNra2s1ZcoUTZkyRRcuXNCyZcvU0tLS86R84TgAJGSouTlmoAmFhYVq\nbGzsMd7bSefOnRvfzs3N1c2bN3Xnzh2lpqYOukAAwNANes2+oqJC+fn5KikpUWdnZ4/9e/fuVUFB\nAUEPAF8BAy7jSFJjY6OKioriyzgff/yxJk2aJEnatGmTWltbtWPHjvj8Cxcu6Ec/+pGi0ajcbnfP\nkzoceuONN+J/9vv98vv9Q+0FAEaNWCymWCwW/3MkEhnSMs6gwr6/fS0tLVq8eLF27dqlhQsX9n5S\n1uwBICFDzc1BLeO0trbGt/ft2xf/pE5nZ6dWrlypbdu29Rn0AIBHb8Ar+0AgoOrqarW3t8vpdCoS\niSgWi6m2tlYOh0Nut1uVlZVyOp168803VVpaqpkzZ8bfH41G9e1vf7v7SbmyB4CEDDU3H2oZJ9kI\newBIzJeyjAMAGFkIewCwAGEPABYg7AHAAoQ9AFiAsAcACxD2AGABwh4ALEDYA4AFCHsAsABhDwAW\nIOwBwAKEPQBYgLAHAAsQ9gBgAcIeACxA2AOABQh7ALAAYQ8AFug37IPBoJxOpzweT3wsHA7L5XLJ\n5/PJ5/Pp0KFD8X1bt27VzJkzNXv2bB0+fHj4qgYAJKTfLxw/fvy40tLStGbNGtXX10uSIpGI0tPT\nFQqFus398MMP9fLLL+vMmTO6cuWKlixZoosXLyolpefPE75wHAASM6xfOF5YWKiMjIwe472d8MCB\nAwoEAkpNTVVOTo5mzJih06dPD7owAEDyDGrNvqKiQvn5+SopKVFnZ6ck6erVq3K5XPE5LpdLV65c\nSU6VAIAhGZPoG9atW6fNmzdLkjZt2qT169drx44dvc51OBx9HiccDse3/X6//H5/oqU8lH5KAIAh\nGc7V6FgsplgslrTjJRz2kydPjm+vXbtWRUVFkqSsrCw1NzfH97W0tCgrK6vP4zwY9sOJWwMARqIv\nXgRHIpEhHS/hZZzW1tb49r59++Kf1PnhD3+oPXv26Pbt22poaNClS5e0YMGCIRUHAEiOfq/sA4GA\nqqur1d7eruzsbEUiEcViMdXW1srhcMjtdquyslKSlJubq5deekm5ubkaM2aMfve73/W7jAMAeHT6\n/ejlsJ2Uj14CQEKG9aOXAIDRgbAHAAsQ9gBgAcIeACxA2AOABQh7ALAAYQ8AFiDsAcAChD0AWICw\nBwALEPYAYAHCHgAsQNgDgAUIewCwAGEPABYg7AHAAoQ9AFiAsAcACxD2AGCBfsM+GAzK6XTK4/H0\n2FdeXq6UlBR1dHRIkj799FMFAgF5vV7l5uaqtLR0eCoGACSs37AvLi5WVVVVj/Hm5mZFo1FNnTo1\nPrZnzx5JUl1dnc6dO6fKyko1NTUluVwAwGD0G/aFhYXKyMjoMR4KhVRWVtZtLDMzU11dXbp37566\nuro0duxYjR8/PrnVAgAGJeE1+wMHDsjlcsnr9XYbX7ZsmcaPH6/MzEzl5ORow4YNmjBhQtIKBQAM\n3phEJt+4cUNbtmxRNBqNjxljJEm7d+/WzZs31draqo6ODhUWFmrx4sVyu929HiscDse3/X6//H5/\n4tUDwCgVi8UUi8WSdjyH+Tyt+9DY2KiioiLV19ervr5eS5Ys0bhx4yRJLS0tysrK0qlTpxSJRLRo\n0SKtWrVKklRSUqLly5frJz/5Sc+TOhwa4LQAgAcMNTcTWsbxeDxqa2tTQ0ODGhoa5HK5dP78eTmd\nTs2ePVtHjhyRJHV1denkyZOaM2fOoAsDACRPv2EfCAS0aNEiXbx4UdnZ2dq5c2e3/Q6HI7796quv\n6vbt2/J4PFqwYIGCwaDy8vKGp2oAQEIGXMYZlpOyjAMACXmkyzgAgJGJsAcACxD2AGABwh4ALEDY\nA4AFCHsAsABhDwAWIOwBwAKEPQBYgLAHAAsQ9gBgAcIeACxA2AOABQh7ALAAYQ8AFiDsAcAChD0A\nWICwBwALEPYAYIF+wz4YDMrpdMrj8fTYV15erpSUFHV0dMTH6urqtHDhQuXl5cnr9erWrVvJrxgA\nkLB+w764uFhVVVU9xpubmxWNRjV16tT42N27d7V69Wr98Y9/1D/+8Q9VV1crNTU1+RUDABLWb9gX\nFhYqIyOjx3goFFJZWVm3scOHD8vr9cZ/C8jIyFBKCqtEAPBVkHAaHzhwQC6XS16vt9v4pUuX5HA4\ntHz5chUUFGj79u1JKxIAMDRjEpl848YNbdmyRdFoND5mjJEk3blzRydOnNDZs2f12GOPafHixSoo\nKNAzzzzT67HC4XB82+/3y+/3J149AIxSsVhMsVgsacdzmM/Tug+NjY0qKipSfX296uvrtWTJEo0b\nN06S1NLSoqysLJ06dUqxWEyHDh3Srl27JElvvvmmvvGNb+jnP/95z5M6HBrgtACABww1NxNaxvF4\nPGpra1NDQ4MaGhrkcrl0/vx5OZ1OLVu2TPX19bp586bu3r2r6upqPfHEE4MuDACQPP2GfSAQ0KJF\ni3Tx4kVlZ2dr586d3fY7HI749oQJExQKhTR//nz5fD4VFBRoxYoVw1M1ACAhAy7jDMtJWcYBgIQ8\n0mUcAMDIRNgDgAUIewCwAGEPABYg7AHAAoQ9AFiAsAcACxD2AGABwh4ALEDYA4AFCHsAsABhDwAW\nIOwBwAKEPQBYgLAHAAsQ9gBgAcIeACxA2AOABfoN+2AwKKfTKY/H02NfeXm5UlJS1NHR0W28qalJ\naWlpKi8vT26lAIBB6zfsi4uLVVVV1WO8ublZ0WhUU6dO7bEvFApp5cqVyasQADBk/YZ9YWGhMjIy\neoyHQiGVlZX1GN+/f7+mTZum3Nzc5FUIABiyhNfsDxw4IJfLJa/X2238+vXrKisrUzgcTlZtAIAk\nGZPI5Bs3bmjLli2KRqPxMWOMJCkcDuv111/XuHHj4mMAgK+GhML+8uXLamxsVH5+viSppaVFBQUF\nOnXqlE6fPq29e/fqF7/4hTo7O5WSkqLHHntMr732Wq/HevA3AL/fL7/fP+gmAGC0icViisViSTue\nwwxwGd7Y2KiioiLV19f32Od2u3Xu3DlNnDix23gkElF6erpCoVDvJ3U4uPoHgAQMNTf7XbMPBAJa\ntGiRLl68qOzsbO3cubPHyQEAX30DXtkPy0m5sgeAhAzrlT0AYHQg7AHAAoQ9AFiAsAcACxD2AGAB\nwh4ALEDYA4AFCHsAsABhDwAWIOwBwAKEPQBYgLAHAAsQ9gBgAcIeACxA2AOABQh7ALAAYQ8AFiDs\nAcAChD0AWGDAsA8Gg3I6nfJ4PD32lZeXKyUlRR0dHZKkaDSqefPmyev1at68eTp69GjyKwYAJGzA\nsC8uLlZVVVWP8ebmZkWjUU2dOjU+NmnSJP3tb39TXV2d/vSnP2n16tXJrXYEiMViX3YJw4r+Rjb6\ns9eAYV9YWKiMjIwe46FQSGVlZd3G5s6dqylTpkiScnNzdfPmTd25cydJpY4Mo/0/Nvob2ejPXoNa\nsz9w4IBcLpe8Xm+fc/bu3auCggKlpqYOujgAQHKMSfQNN27c0JYtWxSNRuNjxphucy5cuKBf/vKX\n3eYAAL5E5iE0NDSYvLw8Y4wxdXV1ZvLkySYnJ8fk5OSYMWPGmKlTp5q2tjZjjDHNzc1m1qxZ5oMP\nPujzeNOnTzeSePHixYvXQ76mT5/+MHHdp4Sv7D0ej9ra2uJ/drvdOnfunCZOnKjOzk6tXLlS27Zt\n08KFC/s8xkcffZToaQEAQzDgmn0gENCiRYt08eJFZWdna+fOnX3O/e1vf6vLly8rEonI5/PJ5/Op\nvb09qQUDABLnMF9ccAcAjDpJf4K2t4ewOjo6tHTpUs2aNUs/+MEP1NnZGd+3detWzZw5U7Nnz9bh\nw4eTXU7S9dbfhg0bNGfOHOXn5+v555/Xf//73/i+0dDf5774EJ00svrrq7eKigrNmTNHeXl52rhx\nY3x8JPUm9d7f6dOntWDBAvl8Ps2fP19nzpyJ7xtp/TU3N+v//u//9MQTTygvL0/vvvuupNGTL331\nl7R8GdKKfy+OHTtmzp8/H7+ha4wxGzZsMNu2bTPGGFNaWmo2btxojDHmwoULJj8/39y+fds0NDSY\n6dOnm3v37iW7pKTqrb/Dhw/H6964ceOo688YY5qamsyyZctMTk6O+eSTT4wxI6+/3no7cuSIWbJk\nibl9+7YxxpiPP/7YGDPyejOm9/6+//3vm6qqKmOMMQcPHjR+v98YMzL7a21tNTU1NcYYY/73v/+Z\nWbNmmQ8//HDU5Etf/SUrX5J+Zd/bQ1h//etf9corr0iSXnnlFe3fv1/SZ5/XDwQCSk1NVU5OjmbM\nmKHTp08nu6Sk6q2/pUuXKiXls3+UTz75pFpaWiSNnv6k3h+iG2n99dbb73//e/3qV7+KPw8yadIk\nSSOvN6n3/jIzM+NXgp2dncrKypI0MvubMmWK5s6dK0lKS0vTnDlzdOXKlVGTL731d/Xq1aTlyyP5\nH6G1tbXJ6XRKkpxOZ/zTPFevXpXL5YrPc7lcunLlyqMoadi89957evbZZyWNnv76eohuNPR36dIl\nHTt2TE899ZT8fr/Onj0raXT0JkmlpaVav369Hn/8cW3YsEFbt26VNPL7a2xsVE1NjZ588slRmS8P\n9vegoeTLI/+/XjocDjkcjn73j1RvvfWWxo4dq5dffrnPOSOtv88footEIvEx0889/ZHW3927d3Xt\n2jWdPHlS27dv10svvdTn3JHWmySVlJTo3XffVVNTk95++20Fg8E+546U/q5fv64XXnhB77zzjtLT\n07vtGw35cv36db344ot65513lJaWFh8far48krB3Op3697//LUlqbW3V5MmTJUlZWVlqbm6Oz2tp\naYn/mjnS7Nq1SwcPHtSf//zn+Nho6O/y5ctqbGxUfn6+3G63WlpaVFBQoLa2tlHRn8vl0vPPPy9J\nmj9/vlJSUtTe3j4qepM+u0H73HPPSZJefPHF+K/5I7W/O3fu6IUXXtDq1av14x//WNLoypfP+1u1\nalW8PylJ+TIcNxoefOLWmM9u0JaWlhpjjNm6dWuPGwy3bt0y//rXv8y0adPM/fv3h6OkpPpif4cO\nHTK5ubnmP//5T7d5o6W/B/V2g3Yk9ffF3v7whz+YzZs3G2OM+ec//2mys7ONMSOzN2N69ufz+Uws\nFjPGGPP3v//dzJs3zxgzMvu7f/++Wb16tfnZz37WbXy05Etf/SUrX5Ie9j/96U9NZmamSU1NNS6X\ny7z33nvmk08+MYsXLzYzZ840S5cuNdeuXYvPf+utt8z06dPNd77znfinBr7Kvtjfjh07zIwZM8zj\njz9u5s6da+bOnWvWrVsXnz9S+xs7dmz839+D3G53POyNGVn99dbb7du3zapVq0xeXp757ne/a44e\nPRqfP5J6M6b3v3tnzpwxCxYsMPn5+eapp54y58+fj88faf0dP37cOBwOk5+fH/+7dujQoVGTL731\nd/DgwaTlCw9VAYAF+FpCALAAYQ8AFiDsAcAChD0AWICwBwALEPYAYAHCHgAsQNgDgAX+Hze/zGOH\nVK27AAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7349d10>"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEACAYAAAC9Gb03AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAG+xJREFUeJzt3X1QU2e+B/DvyQtJgCDvCskqCLSIIqR2lbvjbGOVTmd2\naFnb8Y6dup1R94/6z3Zpbx1nR4t3inbtujtdp7rM1umt/af27lwLu1s7Mlsz1O5aFHGtUgUEWt5i\nhcBKgBCSPPcPylkp6EgSCTx+P8MZT56QnN/jo9/zkpNzFCGEABERSUsT6QKIiOj+YtATEUmOQU9E\nJDkGPRGR5Bj0RESSY9ATEUku6KDfvXs3CgoKUFhYiPXr16OjowMA0N7eDpPJBJvNBpvNhh07doSt\nWCIimjkl2PPoBwcHYTabAQCHDh3CP//5T7zzzjtob29HSUkJvvzyy7AWSkREwQl6i34i5AHA7XYj\nOTk5LAUREVF46UJ58a9+9Su8//77iI6OxtmzZ9X2trY22Gw2LFiwAK+//jrWrl0bcqFERBScux66\nKS4uhtPpnNK+b98+lJSUqI/feOMNXLt2De+++y68Xi+GhoaQkJCACxcuoLS0FFeuXJm0B0BERLNI\nhMHXX38tli9fPu1zdrtd1NfXT2nPysoSADhx4sSJ0wymrKysGWd00Mfom5ub1fmqqirYbDYAQG9v\nL/x+PwCgtbUVzc3NWLp06ZTXX79+HUIIaafXXnst4jWwf+zfg9g/mfsmhMD169dnnNdBH6PftWsX\nrl27Bq1Wi6ysLBw5cgQAUFtbiz179kCv10Oj0aCyshLx8fHBLoaIiEIUdND/6U9/mrZ948aN2Lhx\nY9AFERFRePGbsfeJ3W6PdAn3Ffs3v8ncP5n7FqygvzAV8oIVBRFaNBHRvBVMdnKLnohIcgx6IiLJ\nMeiJiCTHoCcikhyDnohIcgx6IiLJMeiJiCTHoCcikhyDnohIcgx6IiLJMeiJiCTHoCcikhyDnohI\ncgx6IiLJMeiJiCTHoCcikhyDnohIcgx6IiLJMeiJiCTHoCcikhyDnohIcgx6IiLJMeiJiCTHoCci\nkhyDnohIcgx6IiLJhRz0Bw8ehEajgcvlUtv279+PnJwc5Obm4tSpU6EugoiIQqAL5cUdHR2oqanB\nkiVL1LbGxkYcP34cjY2N6OrqwoYNG9DU1ASNhjsPRESREFL6lpWV4cCBA5PaqqqqsHnzZuj1emRk\nZCA7Oxt1dXUhFUlERMELOuirqqpgtVqxcuXKSe3d3d2wWq3qY6vViq6uruArJCKikNz10E1xcTGc\nTueU9oqKCuzfv3/S8XchxB3fR1GUEEokIqJQ3DXoa2pqpm2/fPky2traUFBQAADo7OzEqlWr8MUX\nX8BisaCjo0P93c7OTlgslmnfp7y8XJ232+2w2+0zLJ+ISG4OhwMOhyOk91DE3TbF71FmZibq6+uR\nmJiIxsZGPPfcc6irq1M/jG1paZmyVa8oyl33AoiIaKpgsjOks25uX/CEvLw8bNq0CXl5edDpdDh8\n+DAP3RARRVBYtuiDWjC36ImIZiyY7OTJ7UREkmPQExFJjkFPRCQ5Bj0RkeQY9EREkmPQExFJjkFP\nRCQ5Bj0RkeQY9EREkmPQExFJjkFPRCQ5Bj0RkeQY9EREkmPQExFJjkFPRCQ5Bj0RkeQY9EREkmPQ\nExFJjkFPRCQ5Bj0RkeQY9EREkmPQExFJjkFPRCQ5Bj0RkeQY9EREkmPQExFJjkFPRCQ5Bj0RkeQY\n9EREkgs56A8ePAiNRgOXywUAaG9vh8lkgs1mg81mw44dO0IukoiIgqcL5cUdHR2oqanBkiVLJrVn\nZ2ejoaEhpMKIiCg8QtqiLysrw4EDB8JVCxER3QdBB31VVRWsVitWrlw55bm2tjbYbDbY7XacOXMm\npAKJiCg0dz10U1xcDKfTOaW9oqIC+/fvx6lTp9Q2IQQAID09HR0dHUhISMCFCxdQWlqKK1euwGw2\nT3mf8vJydd5ut8NutwfZDSIiOTkcDjgcjpDeQxETCT0Dly9fxvr16xEdHQ0A6OzshMViQV1dHVJT\nUyf97rp163Dw4EE88sgjkxesKAhi0URED7RgsjOooP++zMxM1NfXIzExEb29vUhISIBWq0Vrayt+\n/OMf4/Lly4iPjw+5WCKiB10w2RnSWTe3L3hCbW0t9uzZA71eD41Gg8rKyikhT0REsycsW/RBLZhb\n9EREMxZMdvKbsUREkmPQExFJjkFPRCQ5Bj0RkeQY9EREkmPQExFJjkFPRCQ5Bj0RkeQY9EREkmPQ\nExFJjkFPRCQ5Bj0RkeTCcvVKovnAF/DB7XVPmkbGRuAXfgREAEIIBEQAfuGHAgUaRTNp0mq0iNHH\nIDYqVp1iomKgUbi9RHMbg57mvcHRQTjdTvS4e9Az2IMbQzdwa/TWlFD3+DzwBXzwB/zwifE//cIP\nIQQEBMZ/Jl8VUIGC8R8FiqJAp+ig1Wih04z/qVW0k4J/Yoo3xmNhzEKkm9OxKHYRFsUugkFniNDf\nED3oGPQ0L3h8HrT2t6J7sBtOt1P9s8fdg395/gWPz4NR/yg8Pg+8Pi/GAmOTAt0X8CEgAmpI6zQ6\naBUttBqtGuITFIzPT4T+xCVhBcS/VxQBH/zCD3/Arwb+RPjrNDroNXoYdUYYtAYYdONTSnQK0mLT\nsCh2EdLMaUiLTYM1zorFCxZDq9HO/l8qPTB4PXqac4QQcLqduNp7VZ3aBtow6B0cD3Tf6KRgF0LA\noDNMCtaJMJ8IdJ1GB42imRTo4arVL8aDf2Il4Bd+eP3eSXV6/V7oNXq1PqPOCIPOAJPOhARjAnKS\ncpCbnIvc5Fw8nPQwFhgXhLVOkkfEbiUYDAY9TfAFfPjq5ldqqF/ru4abwzenHEs36ozqZNAZYNCO\nB6ZOowt7gIebEAJev1cN/omVwIhvBL6Ab8qxf2ucVQ3+ZcnLkBGfMef7SLODQU/zxpB3CPU99Tjb\neRbnu8+jd7gXg95BNdiFEJM+8IzRx0h7eGPMP6b2e2hsCEPeIRi0BsREjYe/2WDGD+J+gCJrEYqs\nRchLyYNOw6OuDyoGPc1pXr8XdV11ON12Gud7zsM17EK/px8DngHoNDrEGeLUcDNoDQ/sFqwQAsNj\nw2rw3xq9Ba2iRYIxAQmmBCyMWYi1i9fisYzHkJeSx7N+HjAMepqTvh74Gh9d/Qifd3wOp9uJvuE+\nDIwOjB+fNiUg3hgPo84Y6TLnLCEEhsaG0D8yvlIMiAASTYlIik7CkgVLsD5zPUoeLkGcIS7SpdIs\nYNDTnPL1wNc4fuU4TrefRs9gD3qHe2HQGZBoSkSiKRFR2qhIlzgvDY8No2+4D64RF7SKFqmxqVgc\ntxglD5egNLeUgS85Bj3NCd8P+JvDN5FkSkJqTCpMelOky5OGEAKD3vHvEIyMjSAtNg2LFzDwZceg\np4jqG+7D0YajUwI+zZzGrff7zO11o3uwe1LgP537NP5z+X9Cr9VHujwKIwY9RcxF50W8+fc38dXN\nr3Bj6AYDPkJuD/zFCxZjjWUNdq7didSY1EiXRmHCoKdZFxAB/O+V/8X//PN/0NLXAkVRkJmQyYCP\nsMHRQbT2tyLRlIhlycvwyo9ewar0VZEui8KAQU+zKiAC+N0/foc/N/0Z1/uvIyU6Benm9Af2tMi5\nxhfwobW/Ff6AHzmJOSj7jzIUZxVHuiwKUTDZyRNwKShCCLxz4R38uenPaHG1ICM+A5Y4C0N+DtFp\ndMhJzEGcIQ6NNxvxu7O/w9nOs5EuiyKAQU9BOfPNGXx45UO0uFqQlZiFeGN8pEuiaSiKAkucBUnR\nSbjaexUHPj+Am0M3I10WzbKgg768vBxWqxU2mw02mw0nT55Un9u/fz9ycnKQm5uLU6dOhaVQmjtG\nxkZwtOEo2gfaYYmz8DS+eSDdnA6DzoD2gXYcbTga6XJolgV9wQxFUVBWVoaysrJJ7Y2NjTh+/Dga\nGxvR1dWFDRs2oKmpCRoNdx5k4Wh3oMXVgoAIICU6JdLl0D1QFAWLFyzG5W8vw9HuwAsFLyDNnBbp\nsmiWhJS+030gUFVVhc2bN0Ov1yMjIwPZ2dmoq6sLZTE0x5zrPgfXiAupMak8Jj+PRGmjEGeIw4Bn\nAOe6z0W6HJpFIQX9oUOHUFBQgG3btmFgYAAA0N3dDavVqv6O1WpFV1dXaFXSnNLiasGgd5CHbOah\nOEMc3F43rruuR7oUmkV3PXRTXFwMp9M5pb2iogIvvvgi9uzZAwDYvXs3Xn75ZRw9Ov2xvztt9ZWX\nl6vzdrsddrv9HsumSJq4/R6vmjj/aBQNAiIAX8AX6VLoHjkcDjgcjpDe465BX1NTc09vsn37dpSU\nlAAALBYLOjo61Oc6OzthsVimfd3tQU/zR5IpCQadAcNjw1ig5Z2Q5pOJG7gkRydHuhS6R9/fCN67\nd++M3yPoTbKenh51/sSJE8jPzwcAPPXUU/jggw/g9XrR1taG5uZmrF69OtjF0By0Km0V4o3x6Pf0\nR7oUmgEhBPo9/Yg3xvNbsg+YoM+62blzJy5evDj+lffMTFRWVgIA8vLysGnTJuTl5UGn0+Hw4cP8\nwE4y9gw7PrjyAb688SVSY1IRrY+OdEl0D74d+hZR2ihkxmciLyUv0uXQLOIlECgofzj/B7x78V18\nO/QtcpNzeWu7OW7IO4SmvibkJufi9cdfR5G1KNIlUZB4CQSaNc+vfB6FCwthjjKjxdUCf8Af6ZLo\nDkbGRtDsakZGfAaezH4SayxrIl0SzTIGPQUlNioW/73uv2FbZINRa0TjzUaMjI1Euiz6HteIC1d7\nr8IaZ8XjmY/jpaKXeCj1AcRDNxSSrltdqPisAhd6LqDzVicWL1iMpOikSJf1wAuIADpvdaJ/pB/Z\nidl4IusJ/GLNL3iHLwnwMsUUESNjI3j73Ns42XwSza5mROujYYmz8EPaCBBCYMAzgK7BLkRpopCT\nlIOfP/JzPPXwU9ySlwSDniJGCIG/Nv8VRxuOovNWJ3oGe2A2mJFuTmfgz4LbA16BgnRzOh5Kegj/\n9aP/wrKUZZEuj8KIQU8R5xpx4f+++j/8tfmvDPxZMF3AZydm49m8Z/FE1hO805eEGPQ0Z0wX+Ca9\nCYmmRCSaEnk6Zog8Pg/6hvvQN9IHraJlwD9AGPQ050wE/sfNH+PboW/RN9KHW6O3YI4yI8GUgHhj\nPEP/Hnl8Hgx4BuAacWHUN4pEUyKSopOwZMESBvwDhEFPc9aQdwj/6PwHHO0ONPQ0wDXiQr+nH7dG\nbyEmKgYJxgSYDWaYdCZ+aPgdf8CPobEh3Bq9hQHPAMb8Y4g3xiPRlIjUmFT86Ac/wmNLHkPhokJo\nNdpIl0uzhEFP84JrxIXPv/kcX3R9gUs3LsE14sKAZwBurxtevxcxUTGIjYpVpwdhi18IgVH/KNxe\nN4a8Q3B73fD4PDDpTeN7P8YEpMSk4NH0R1FkLcJqy2oYdcZIl00RwKCneWdwdBDnu8+jvqceV3uv\noutWF9xjbri9bjX09Fo9YqNiEaOPgUlvglFnhF6jn7db/gERwKhvFKP+UYyMjah9VRRlfOWm/24l\nZ4jF0vilWJayDKstq5Gfmg+9Vh/p8inCGPQ07/WP9ONq71V1anY141+j/1JD3+PzwOPzwC/8MGgN\nMOgMMOqMk+ajtFERv1a+P+DHqH8UHp9HDfWJ+bHAGPQaPYw6I0w6k7rnkhyTjNykXDyc/DByk3OR\nk5jDLzjRFAx6ko4v4ENbfxuu9V1Dc18zuge70ePuQf9IPzz+70LUN6rOe3wejAXGoFE00Gl00Gl0\n0CpaaDXaSY91Gh20Gi20ilbdM1CgTNlLEEJAQKjzvoAPvoAPfuGHP+BX59X279oEBIxaIwy68RWQ\nQfvdCklngFFrRGpMKtLMabCYLWqwp8Wmzdu9FJo9DHp6YAyPDcPpdqJnsAdOtxPdg93jj909uDl0\nczx4xb+DVw3h77cJPyDw7zCHgBACChSM/0xeCdy+glBXHBotdIpu0srEqDNiYcxCpJnTsCh2EdJi\n05BmTkNabBpSY1J5CIaCxqAnwvhewO0fat5tGvGNICAC8Af8CIiAOimKAo2imTRpFe2UD4rvNEXr\noyN++IjkxKAnIpIcr0dPRERTMOiJiCTHoCcikhyDnohIcgx6IiLJMeiJiCTHoCcikhyDnohIcgx6\nIiLJMeiJiCTHoCcikhyDnohIckEHfXl5OaxWK2w2G2w2Gz755BMAQHt7O0wmk9q+Y8eOsBVLREQz\nF/TNOBVFQVlZGcrKyqY8l52djYaGhpAKIyKi8Ajp0A0vM0xENPeFFPSHDh1CQUEBtm3bhoGBAbW9\nra0NNpsNdrsdZ86cCblIIiIK3l1vPFJcXAyn0zmlvaKiAkVFRUhJSQEA7N69Gz09PTh69Ci8Xi+G\nhoaQkJCACxcuoLS0FFeuXIHZbJ68YEXBa6+9pj622+2w2+1h6hYRkRwcDgccDof6eO/evZG5w1R7\neztKSkrw5ZdfTnlu3bp1OHjwIB555JHJC+YdpoiIZmxW7zDV09Ojzp84cQL5+fkAgN7eXvj9fgBA\na2srmpubsXTp0mAXQ0REIQr6rJudO3fi4sWLUBQFmZmZqKysBADU1tZiz5490Ov10Gg0qKysRHx8\nfNgKJiKimeHNwYmI5hHeHJyIiKZg0BMRSY5BT0QkOQY9EZHkGPRERJJj0BMRSY5BT0QkOQY9EZHk\nGPRERJJj0BMRSY5BT0QkOQY9EZHkGPRERJJj0BMRSY5BT0QkOQY9EZHkGPRERJJj0BMRSY5BT0Qk\nOQY9EZHkGPRERJJj0BMRSY5BT0QkOQY9EZHkGPRERJJj0BMRSY5BT0QkOQY9EZHkQgr6Q4cOYdmy\nZVixYgV27typtu/fvx85OTnIzc3FqVOnQi6SiIiCpwv2hadPn0Z1dTUuXboEvV6PmzdvAgAaGxtx\n/PhxNDY2oqurCxs2bEBTUxM0Gu48EBFFQtDpe+TIEezatQt6vR4AkJKSAgCoqqrC5s2bodfrkZGR\ngezsbNTV1YWnWiIimrGgg765uRm1tbUoKiqC3W7H+fPnAQDd3d2wWq3q71mtVnR1dYVeKRERBeWu\nh26Ki4vhdDqntFdUVMDn86G/vx9nz57FuXPnsGnTJrS2tk77PoqihKdaIiKasbsGfU1NzR2fO3Lk\nCDZu3AgA+OEPfwiNRoPe3l5YLBZ0dHSov9fZ2QmLxTLte5SXl6vzdrsddrt9BqUTEcnP4XDA4XCE\n9B6KEEIE88LKykp0d3dj7969aGpqwoYNG/DNN9+gsbERzz33HOrq6tQPY1taWqZs1SuKgiAXTUT0\nwAomO4M+62br1q3YunUr8vPzERUVhWPHjgEA8vLysGnTJuTl5UGn0+Hw4cM8dENEFEFBb9GHvGBu\n0RMRzVgw2cmT24mIJMegJyKSHIOeiEhyDHoiIskx6ImIJMegJyKSHIOeiEhyDHoiIskx6ImIJMeg\nJyKSHIOeiEhyDHoiIskx6ImIJMegJyKSHIOeiEhyDHoiIskx6ImIJMegJyKSHIOeiEhyDHoiIskx\n6ImIJMegJyKSHIOeiEhyDHoiIskx6ImIJMegJyKSHIOeiEhyDHoiIsmFFPSHDh3CsmXLsGLFCuzc\nuRMA0N7eDpPJBJvNBpvNhh07doSlUCIiCk7QQX/69GlUV1fj0qVLuHz5Ml555RX1uezsbDQ0NKCh\noQGHDx8OS6HzjcPhiHQJ9xX7N7/J3D+Z+xasoIP+yJEj2LVrF/R6PQAgJSUlbEXJQPZ/bOzf/CZz\n/2TuW7CCDvrm5mbU1taiqKgIdrsd58+fV59ra2uDzWaD3W7HmTNnwlIoEREFR3e3J4uLi+F0Oqe0\nV1RUwOfzob+/H2fPnsW5c+ewadMmtLa2Ij09HR0dHUhISMCFCxdQWlqKK1euwGw237dOEBHRXYgg\nPfnkk8LhcKiPs7KyRG9v75Tfs9vtor6+fkp7VlaWAMCJEydOnGYwZWVlzTiv77pFfzelpaX49NNP\n8dhjj6GpqQlerxdJSUno7e1FQkICtFotWltb0dzcjKVLl055fUtLS7CLJiKiGQg66Ldu3YqtW7ci\nPz8fUVFROHbsGACgtrYWe/bsgV6vh0ajQWVlJeLj48NWMBERzYwihBCRLoKIiO6fWflmbEdHB9at\nW4fly5djxYoV+P3vfw8AcLlcKC4uxkMPPYQnnngCAwMDs1FO2N2pf+Xl5bBareqXxz755JMIVzpz\nHo8Ha9asQWFhIfLy8rBr1y4A8ozdnfonw9jdzu/3w2azoaSkBIA84zfh+/2TafwyMjKwcuVK2Gw2\nrF69GsDMx29WtuidTiecTicKCwvhdruxatUqfPTRR3j33XeRnJyMV199Fb/+9a/R39+PN954436X\nE3Z36t+HH34Is9mMsrKySJcYkuHhYURHR8Pn82Ht2rX4zW9+g+rqainGDpi+f3/729+kGLsJv/3t\nb1FfX4/BwUFUV1fj1VdflWb8gKn927t3rzTjl5mZifr6eiQmJqptMx2/WdmiX7RoEQoLCwEAsbGx\nWLZsGbq6ulBdXY0XXngBAPDCCy/go48+mo1ywu5O/QMAGY6MRUdHAwC8Xi/8fj8SEhKkGTtg+v4B\ncowdAHR2duLjjz/G9u3b1T7JNH7T9U8IIc34AVP/Lc50/Gb9ombt7e1oaGjAmjVrcOPGDSxcuBAA\nsHDhQty4cWO2ywm7if4VFRUBGL8eUEFBAbZt2zZvd48DgQAKCwuxcOFC9RCVTGM3Xf8AOcYOAH75\ny1/izTffhEbz7//uMo3fdP1TFEWa8VMUBRs2bMCjjz6KP/7xjwBmPn6zGvRutxvPPPMM3nrrrSlf\noFIUBYqizGY5Yed2u/Hss8/irbfeQmxsLF588UW0tbXh4sWLSEtLw8svvxzpEoOi0Whw8eJFdHZ2\nora2FqdPn570/Hwfu+/3z+FwSDN2f/nLX5CamgqbzXbHLdz5PH536p8s4wcAn3/+ORoaGnDy5Em8\n/fbb+OyzzyY9fy/jN2tBPzY2hmeeeQZbtmxBaWkpgPE10cQ3b3t6epCamjpb5YTdRP+ef/55tX+p\nqanqIGzfvh11dXURrjI0CxYswE9+8hPU19dLNXYTJvp3/vx5acbu73//O6qrq5GZmYnNmzfj008/\nxZYtW6QZv+n697Of/Uya8QOAtLQ0AOPXE/vpT3+Kurq6GY/frAS9EALbtm1DXl4eXnrpJbX9qaee\nwnvvvQcAeO+999SAnG/u1L+enh51/sSJE8jPz49EeSHp7e1Vd3tHRkZQU1MDm80mzdjdqX+3X/pj\nvo4dAOzbtw8dHR1oa2vDBx98gMcffxzvv/++NOM3Xf+OHTsmxf89YPxEgcHBQQDA0NAQTp06hfz8\n/JmP34y/SxuEzz77TCiKIgoKCkRhYaEoLCwUJ0+eFH19fWL9+vUiJydHFBcXi/7+/tkoJ+ym69/H\nH38stmzZIvLz88XKlSvF008/LZxOZ6RLnbFLly4Jm80mCgoKRH5+vjhw4IAQQkgzdnfqnwxj930O\nh0OUlJQIIeQZv9udPn1a7d/zzz8vxfi1traKgoICUVBQIJYvXy727dsnhJj5+PELU0REkuOtBImI\nJMegJyKSHIOeiEhyDHoiIskx6ImIJMegJyKSHIOeiEhyDHoiIsn9P/ox1+CwlWHmAAAAAElFTkSu\nQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x78994d0>"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.7, Page number: 519<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Draw boxes and fill with different designs.\n",
+ "\n",
+ "%pylab\n",
+ "#Tkinter package is used for graphics\n",
+ "from matplotlib.patches import Rectangle\n",
+ "from matplotlib.collections import PatchCollection\n",
+ "\n",
+ "e = Rectangle(xy=(35, -50), width=10, height=5, linewidth=2.0, color='b')\n",
+ "fig = plt.gcf()\n",
+ "fig.gca().add_artist(e)\n",
+ "e.set_clip_box(ax.bbox)\n",
+ "e.set_alpha(0.7)\n",
+ "pylab.xlim([20, 50])\n",
+ "pylab.ylim([-65, -35])\n",
+ "\n",
+ "#There are no different automatic fill styles. user should create the styles."
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEACAYAAAC9Gb03AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAErZJREFUeJzt3X9MVff9x/HXuXKbaEoEV3UtN6kILooinNYpf5jsOLlL\nk4WW0YXEpq6J9p/6V0uXOrOIkBRxbizpyDRka5raf+qyxMKW2kBWb2i3uFsQ6w+SggW6C3LNmDZR\nt4Xpzv5ovN8yfqT33At8fe/5SE5y77ncez6ffPTZc4/3Usf3fV8AALNCiz0AAMD8IvQAYByhBwDj\nCD0AGEfoAcA4Qg8AxgUO/cGDB1VWVqby8nLt3LlTiURCkjQyMqKlS5fKdV25rqt9+/ZlbbAAgPQ5\nQT9Hf/PmTeXm5kqSWltb9fHHH+vXv/61RkZGVFVVpYsXL2Z1oACAYAKf0d+LvCTdunVLDz30UFYG\nBADIrpxMnvzjH/9Yb731lpYtW6azZ8+m9g8PD8t1XS1fvlyvvvqqtm/fnvFAAQDBzHnpJhqNKplM\nTtt/+PBhVVVVpe4fOXJEn3zyid544w1NTk7q9u3bys/P17lz51RdXa3Lly9PeQcAAFhAfhZ89tln\n/saNG2d8zPM8v7e3d9r+oqIiXxIbGxsbWxpbUVFR2o0OfI1+cHAwdbu9vV2u60qSJiYmdPfuXUnS\n0NCQBgcHtXbt2mnP//TTT+X7vtnt0KFDiz4G5sf8/hfnZ3luvu/r008/TbvXga/RHzhwQJ988omW\nLFmioqIiHT9+XJLU3d2t+vp6hcNhhUIhtbW1KS8vL+hhAAAZChz63/72tzPur6mpUU1NTeABAQCy\ni2/GzhPP8xZ7CPOK+d3fLM/P8tyCCvyFqYwP7DhapEMDwH0rSDs5owcA4wg9ABhH6AHAOEIPAMYR\negAwjtADgHGEHgCMI/QAYByhBwDjCD0AGEfoAcA4Qg8AxhF6ADCO0AOAcYQeAIwj9ABgHKEHAOMI\nPQAYR+gBwDhCDwDGEXoAMI7QA4BxhB4AjCP0AGAcoQcA4wg9ABiXcehbWloUCoV0/fr11L7m5mat\nW7dO69evV2dnZ6aHAABkICeTJycSCXV1denRRx9N7evv79fJkyfV39+vsbExVVZWamBgQKEQbx4A\nYDFkVN+6ujodPXp0yr729nbt2rVL4XBYa9asUXFxseLxeEaDBAAEFzj07e3tikQi2rx585T9V69e\nVSQSSd2PRCIaGxsLPkIAQEbmvHQTjUaVTCan7W9qalJzc/OU6+++78/6Oo7jZDBEAEAm5gx9V1fX\njPsvXbqk4eFhlZWVSZJGR0f1+OOP689//rMKCgqUSCRSPzs6OqqCgoIZX6ehoSF12/M8eZ6X5vAB\nwLZYLKZYLJbRazj+XKfiX1FhYaF6e3u1YsUK9ff365lnnlE8Hk/9Y+yVK1emndU7jjPnuwAAwHRB\n2pnRp26+fOB7SkpKVFtbq5KSEuXk5OjYsWNcugGARZSVM/pAB+aMHgDSFqSdfLgdAIwj9ABgHKEH\nAOMIPQAYR+gBwDhCDwDGEXoAMI7QA4BxhB4AjCP0AGAcoQcA4wg9ABhH6AHAOEIPAMYRegAwjtAD\ngHGEHgCMI/QAYByhBwDjCD0AGEfoAcA4Qg8AxhF6ADCO0AOAcYQeAIwj9ABgHKEHAOMIPQAYR+gB\nwLiMQ9/S0qJQKKTr169LkkZGRrR06VK5rivXdbVv376MBwkACC4nkycnEgl1dXXp0UcfnbK/uLhY\nfX19GQ0MAJAdGZ3R19XV6ejRo9kaCwBgHgQ+o29vb1ckEtHmzZunPTY8PCzXdbV8+XK9+uqr2r59\ne0aDBBZSY6PU07PYo0BQW7ZIhw4t9ij+f5kz9NFoVMlkctr+pqYmNTc3q7OzM7XP931J0iOPPKJE\nIqH8/HydO3dO1dXVunz5snJzc6e9TkNDQ+q253nyPC/gNIDs6emR4vHFHgXwhVgsplgsltFrOP69\nQqfh0qVL2rlzp5YtWyZJGh0dVUFBgeLxuFatWjXlZ3fs2KGWlhY99thjUw/sOApwaGDeVVV9Efqt\nWxd7JEjXvXX73e8WeyTzJ0g7A1262bRpk65du5a6X1hYqN7eXq1YsUITExPKz8/XkiVLNDQ0pMHB\nQa1duzbIYQAAWZDRp27ucRwndbu7u1v19fUKh8MKhUJqa2tTXl5eNg4DAAggK6EfGhpK3a6pqVFN\nTU02XhYAkAV8MxYAjCP0AGAcoQcA4wg9ABhH6AHAOEIPAMYRegAwjtADgHGEHgCMI/QAYByhBwDj\nCD0AGEfoAcA4Qg8AxhF6ADCO0AOAcYQeAIwj9ABgHKEHAOMIPQAYR+gBwDhCDwDGEXoAMI7QA4Bx\nhB4AjCP0AGAcoQcA4wg9ABgXOPQNDQ2KRCJyXVeu6+r06dOpx5qbm7Vu3TqtX79enZ2dWRkoACCY\nnKBPdBxHdXV1qqurm7K/v79fJ0+eVH9/v8bGxlRZWamBgQGFQrx5AIDFkFF9fd+ftq+9vV27du1S\nOBzWmjVrVFxcrHg8nslhAAAZCHxGL0mtra06ceKEtmzZopaWFuXl5enq1auqqKhI/UwkEtHY2FjG\nAwUWGucnsGLO0EejUSWTyWn7m5qa9MILL6i+vl6SdPDgQb388st6/fXXZ3wdx3Fm3N/Q0JC67Xme\nPM/7isMG5s+WLYs9AmTC2vrFYjHFYrGMXsPxZ7r+kqaRkRFVVVXp4sWLOnLkiCTpRz/6kSTpiSee\nUGNjo7Zt2zb1wI4z46UfAMDsgrQz8DX68fHx1O1Tp06ptLRUkvTkk0/q7bff1uTkpIaHhzU4OKit\nW7cGPQwAIEOBr9Hv379f58+fl+M4KiwsVFtbmySppKREtbW1KikpUU5Ojo4dOzbrpRsAwPzLyqWb\nQAfm0g0ApG1BL90AAO4PhB4AjCP0AGAcoQcA4wg9ABhH6AHAOEIPAMYRegAwjtADgHGEHgCMI/QA\nYByhBwDjCD0AGEfoAcA4Qg8AxhF6ADCO0AOAcYQeAIwj9ABgHKEHAOMIPQAYR+gBwDhCDwDGEXoA\nMI7QA4BxhB4AjCP0AGAcoQcA4wKHvqGhQZFIRK7rynVdvffee5KkkZERLV26NLV/3759WRssACB9\nOUGf6DiO6urqVFdXN+2x4uJi9fX1ZTQwAEB2ZHTpxvf9bI0DADBPMgp9a2urysrKtHfvXn3++eep\n/cPDw3JdV57n6cMPP8x4kACA4Bx/jtPyaDSqZDI5bX9TU5MqKiq0cuVKSdLBgwc1Pj6u119/XZOT\nk7p9+7by8/N17tw5VVdX6/Lly8rNzZ16YMfRoUOHUvc9z5PneVmaFgDYEIvFFIvFUvcbGxvTvpoy\nZ+i/qpGREVVVVenixYvTHtuxY4daWlr02GOPTT2w43DpBwDSFKSdgS/djI+Pp26fOnVKpaWlkqSJ\niQndvXtXkjQ0NKTBwUGtXbs26GEAABkK/Kmb/fv36/z583IcR4WFhWpra5MkdXd3q76+XuFwWKFQ\nSG1tbcrLy8vagAEA6cnKpZtAB+bSDQCkbUEv3QAA7g+EHgCMI/QAYByhBwDjCD0AGEfoAcA4Qg8A\nxhF6ADCO0AOAcYQeAIwj9ABgHKEHAOMIPQAYR+gBwDhCDwDGEXoAMI7QA4BxhB4AjCP0AGAcoQcA\n4wg9ABhH6AHAOEIPAMYRegAwjtADgHGEHgCMI/QAYByhBwDjMgp9a2urNmzYoE2bNmn//v2p/c3N\nzVq3bp3Wr1+vzs7OjAcJAAguJ+gTz5w5o46ODl24cEHhcFh//etfJUn9/f06efKk+vv7NTY2psrK\nSg0MDCgU4s0DACyGwPU9fvy4Dhw4oHA4LElauXKlJKm9vV27du1SOBzWmjVrVFxcrHg8np3RAgDS\nFjj0g4OD6u7uVkVFhTzPU09PjyTp6tWrikQiqZ+LRCIaGxvLfKQAgEDmvHQTjUaVTCan7W9qatKd\nO3d048YNnT17Vh999JFqa2s1NDQ04+s4jpOd0QIA0jZn6Lu6umZ97Pjx46qpqZEkffOb31QoFNLE\nxIQKCgqUSCRSPzc6OqqCgoIZX6OhoSF12/M8eZ6XxtABwL5YLKZYLJbRazi+7/tBntjW1qarV6+q\nsbFRAwMDqqys1F/+8hf19/frmWeeUTweT/1j7JUrV6ad1TuOo4CHBoD/WUHaGfhTN3v27NGePXtU\nWlqqBx54QCdOnJAklZSUqLa2ViUlJcrJydGxY8e4dAMAiyjwGX3GB+aMHgDSFqSdfLgdAIwj9ABg\nHKEHAOMIPQAYR+gBwDhCDwDGEXoAMI7QA4BxhB4AjCP0AGAcoQcA4wg9ABhH6AHAOEIPAMYRegAw\njtADgHGEHgCMI/QAYByhBwDjCD0AGEfoAcA4Qg8AxhF6ADCO0AOAcYQeAIwj9ABgHKEHAOMIPQAY\nl1HoW1tbtWHDBm3atEn79++XJI2MjGjp0qVyXVeu62rfvn1ZGSgAIJjAoT9z5ow6Ojp04cIFXbp0\nST/84Q9TjxUXF6uvr099fX06duxYVgZ6v4nFYos9hHnF/O5vludneW5BBQ798ePHdeDAAYXDYUnS\nypUrszYoC6z/YWN+9zfL87M8t6ACh35wcFDd3d2qqKiQ53nq6elJPTY8PCzXdeV5nj788MOsDBQA\nEEzOXA9Go1Elk8lp+5uamnTnzh3duHFDZ8+e1UcffaTa2loNDQ3pkUceUSKRUH5+vs6dO6fq6mpd\nvnxZubm58zYJAMAc/ICeeOIJPxaLpe4XFRX5ExMT037O8zy/t7d32v6ioiJfEhsbGxtbGltRUVHa\nvZ7zjH4u1dXVev/99/Wtb31LAwMDmpyc1Ne+9jVNTEwoPz9fS5Ys0dDQkAYHB7V27dppz79y5UrQ\nQwMA0hA49Hv27NGePXtUWlqqBx54QCdOnJAkdXd3q76+XuFwWKFQSG1tbcrLy8vagAEA6XF83/cX\nexAAgPmzIN+MTSQS2rFjhzZu3KhNmzbpF7/4hSTp+vXrikaj+sY3vqHvfOc7+vzzzxdiOFk32/wa\nGhoUiURSXx577733Fnmk6fvnP/+pbdu2qby8XCUlJTpw4IAkO2s32/wsrN2X3b17V67rqqqqSpKd\n9bvnv+dnaf3WrFmjzZs3y3Vdbd26VVL667cgZ/TJZFLJZFLl5eW6deuWHn/8cb3zzjt644039NBD\nD+mVV17RT37yE924cUNHjhyZ7+Fk3Wzz+81vfqPc3FzV1dUt9hAz8ve//13Lli3TnTt3tH37dv3s\nZz9TR0eHibWTZp7fH/7wBxNrd8/Pf/5z9fb26ubNm+ro6NArr7xiZv2k6fNrbGw0s36FhYXq7e3V\nihUrUvvSXb8FOaP/+te/rvLycknSgw8+qA0bNmhsbEwdHR167rnnJEnPPfec3nnnnYUYTtbNNj9J\nsnBlbNmyZZKkyclJ3b17V/n5+WbWTpp5fpKNtZOk0dFRvfvuu3r++edTc7K0fjPNz/d9M+snTf+z\nmO76LfgvNRsZGVFfX5+2bduma9euafXq1ZKk1atX69q1aws9nKy7N7+KigpJX/w+oLKyMu3du/e+\nfXv873//W+Xl5Vq9enXqEpWltZtpfpKNtZOkl156ST/96U8VCv3fX3dL6zfT/BzHMbN+juOosrJS\nW7Zs0a9+9StJ6a/fgob+1q1bevrpp/Xaa69N+wKV4zhyHGchh5N1t27d0ve//3299tprevDBB/XC\nCy9oeHhY58+f18MPP6yXX355sYcYSCgU0vnz5zU6Oqru7m6dOXNmyuP3+9r99/xisZiZtfv973+v\nVatWyXXdWc9w7+f1m21+VtZPkv74xz+qr69Pp0+f1i9/+Ut98MEHUx7/Kuu3YKH/17/+paefflq7\nd+9WdXW1pC/+S3Tvm7fj4+NatWrVQg0n6+7N79lnn03Nb9WqValFeP755xWPxxd5lJlZvny5vvvd\n76q3t9fU2t1zb349PT1m1u5Pf/qTOjo6VFhYqF27dun999/X7t27zazfTPP7wQ9+YGb9JOnhhx+W\n9MXvE/ve976neDye9votSOh939fevXtVUlKiF198MbX/ySef1JtvvilJevPNN1OBvN/MNr/x8fHU\n7VOnTqm0tHQxhpeRiYmJ1Nvef/zjH+rq6pLrumbWbrb5fflXf9yvaydJhw8fViKR0PDwsN5++219\n+9vf1ltvvWVm/Waa34kTJ0z83ZO++KDAzZs3JUm3b99WZ2enSktL01+/tL9LG8AHH3zgO47jl5WV\n+eXl5X55ebl/+vRp/29/+5u/c+dOf926dX40GvVv3LixEMPJupnm9+677/q7d+/2S0tL/c2bN/tP\nPfWUn0wmF3uoabtw4YLvuq5fVlbml5aW+kePHvV93zezdrPNz8La/bdYLOZXVVX5vm9n/b7szJkz\nqfk9++yzJtZvaGjILysr88vKyvyNGzf6hw8f9n0//fXjC1MAYBz/K0EAMI7QA4BxhB4AjCP0AGAc\noQcA4wg9ABhH6AHAOEIPAMb9B4rEH5DkLOd4AAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x7373590>"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.8, Page number: 520<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display text in different size, font, vertically and horizontally \n",
+ "\n",
+ "%pylab\n",
+ "\n",
+ "from pylab import *\n",
+ "\n",
+ "#Tkinter package is used for graphics\n",
+ "# set limits so that it no longer looks on screen to be 45 degrees\n",
+ "xlim([-5,5])\n",
+ "\n",
+ "# Locations to plot text\n",
+ "l1 = array((1,1))\n",
+ "l2 = array((5,5))\n",
+ "\n",
+ "# Rotate angle\n",
+ "angle = 90\n",
+ "trans_angle = gca().transData.transform_angles(array((45,)),\n",
+ " l2.reshape((1,2)))[0]\n",
+ "\n",
+ "# Plot text\n",
+ "th2 = text(l2[0],l2[1],'Hello(Horizontal Text with fontsize 25)\\n\\n',fontsize=25,\n",
+ " rotation=0)\n",
+ "th2 = text(l2[0],l2[1],'Hello(Horizontal Text with fontsize 16)',fontsize=16,\n",
+ " rotation=0)\n",
+ "th1 = text(l1[0],l1[1],'Hello(Vertical Text)',fontsize=16,\n",
+ " rotation=angle)\n",
+ "show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Using matplotlib backend: module://IPython.kernel.zmq.pylab.backend_inline\n",
+ "Populating the interactive namespace from numpy and matplotlib\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stderr",
+ "text": [
+ "WARNING: pylab import has clobbered these variables: ['power', 'draw_if_interactive', 'random', 'fft', 'angle', 'linalg', 'info']\n",
+ "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
+ ]
+ },
+ {
+ "metadata": {},
+ "output_type": "display_data",
+ "png": "iVBORw0KGgoAAAANSUhEUgAAA5AAAATCCAYAAADLrQlWAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XeUFFXC/vGnezIwMMOQBASGLIIoAgKSg+ASX0AQV5II\nKuqCArqGV4FFF8EAiLrKLkFAMawSDSgZBFxAlrQknSGpIBJkkORwf3/w63q7Ot6BIa3fzzl9znTV\nrVu3blWHZ6r6lscYYwQAAAAAQBTey90AAAAAAMDVgQAJAAAAALBCgAQAAAAAWCFAAgAAAACsECAB\nAAAAAFYIkAAAAAAAKwRIAMAF83q9rseUKVNc8ydPnhxU5mLbsmWLYmNjnfUNHTr0oq/zcunVq5er\nb5s0aXK5m/RfY/HixUHH7u7duy93sxDGxdhfl/r1lZ2drTfeeEMNGzZUWlqaYmJiLul755WM12Pu\nmjhxoqsvv/jiC6vlYi9yuwAAuahx48ZaunSpa9rZs2dDls3MzFTZsmVd03r27KlJkyZdtPb5eDye\nC5qfG4YMGeL0TXJysgYOHBhUJvDLWKNGjbRo0aKQ9U2ePFn33HOPa9qkSZPUs2fPXGpx7rkU/Xu5\njBkzRkeOHHGeN2nSRI0aNbpk689p35YpU+aCvuCWLl1aGRkZ5718bpg8ebIyMzOd5zfddJPat29/\n+RqUA6H2165du1zvgx6PRwMHDlSBAgXOu87c1KVLF3388ceXZd3na+bMmVq/fr3zPD09/ZK8N16p\n/RHNtm3btHTpUi1dulSbNm3Srl27dOzYMcXHx6tIkSK68cYb1blzZ3Xt2lWxsaHjWqjPpEjmzJmj\n1q1bu6b16NFDw4cPd96jhgwZom+++SZqvxIgAeAqltMPz6v1wzanFi5cqE8//dR5/sADDyglJSXq\ncldrf/racaW052IaM2aMK5B5PJ5LGiAvtSthn06ePNn1j6uePXte8QHS4/HIGBNyXkZGhoYPH+6a\n1rt3b+sAeTEtX748ZHiMtD1XgpkzZ+rtt992njdq1OiiBsgrvT8i+eijj9S5c+eQ806cOKFdu3Zp\n165dmjVrlkaOHKnZs2crPT39gtcb6r0kNjZWjz32mB566CFJ0oYNGzR58mT17t07Yl0ESADAf52R\nI0c6f3s8HvXt2/cytubie/HFFzVs2DDneWJi4mVszaV1JQSsSDweT8g2hvryG1juSv2CfCX3ed26\ndV1nSyWpRIkSrueB7b+Stmf16tWu57GxsXr//fdVvXp1xcTEXKZW5dzF6lOb/XulC3XVULhAvHnz\nZrVo0UKbNm2yel8P914TaX90795dgwcP1smTJyVJo0aNIkACAH5fdu7cqS+//NJ5XqtWLZUrV+4y\ntujiS0tLU1pa2uVuxmVxpYYsn+XLlys7O9s1zRij+vXra9++fc60kiVLavny5UHLh7t87XK6kvs8\nISFBpUqVilgmVPuvlG3KyspyPS9RooQ6dOhwmVpz/i5Wf9rs36tF/vz5ddddd+n2229XhQoVdOTI\nEc2cOVOvvPKKzpw545T77rvvNHnyZN1///0R63vxxRfDntmUpCJFioScnpycrDZt2ujDDz+UdO7y\n2kWLFkX8re/v+5e4AADHzp07NWTIENWqVUtpaWmKi4tT4cKFVb9+fT333HM6fPjwJWnH4cOHNXr0\naDVv3lzFihVTQkKCkpOTVbFiRfXo0UPz58+PuPzf//531/OuXbtezOaGtWTJEvXp00fXXXedChQo\noPj4eBUtWlSNGzfWc889p4MHD4ZdNtSgRL/88oueeuopValSRXny5HENHhFtkI/A+dEeS5YsCWqT\nMUZz5szRXXfdpfLlyys5OVkJCQkqXry4WrZsqbFjx+rYsWMhtyczMzPkOo4ePaqnn35aVapUUVJS\nklJSUtS8eXN9/vnnYfsk8PeEw4YNCztAU3Z2tqZPn65BgwapWbNmqlSpkgoXLqy4uDglJyerXLly\n6tixo6ZOner6wpabSpQooVKlSrkepUuXDjqbFBsbG1SuVKlSKl68uKTg4ykhIUElSpRQmzZtNGnS\nJP32229B6/773//u6pfY2NigM1ynT59W9erVXeWaNm0qY4zKlCkjr9cb9LvrKVOmnPdAJoH7q1mz\nZkFlSpUq5czPkydP0L7p3r27q45+/fo58yINsuIbzKtp06au+owxSk9Pdy0T7QyMdO6fAx07dlTR\nokWVkJCg8uXLa/DgwTp69KhVX/jzvUb9rySQzv1eM1q7vvnmGz344IOqXr26UlNTnffuOnXq6Mkn\nn4y4b3z72PcYNmyYzp49qzfffFP16tVTgQIFlDdvXtWoUUOvvvpqUDBs3LixvF6v6/JV6dzxGul9\n5ddff9W4cePUokULlShRQomJiUpMTFTJkiV18803q3fv3nr99de1Y8cOV73RBtEJNT/SI9x+vpif\nh/ny5dOzzz6rffv26fXXX1fbtm1VuXJl1alTRyNHjtQLL7wQtMzixYuj1puWlhbyPcT3iHQG8847\n73Q9nzBhQuSVGQDAVaNRo0bG4/E4D6/XG7ZsZmamq6zH4zG9e/cOKpednW2eeuop4/V6g8r7P1JT\nU828efNCriuw7JQpU1zzJ02aZNXuf/7znyYlJSViOzwej2nevLk5cOBAyDpuuOEGV9k1a9aE7aPA\neps0aRK2bOA2hNpOY4w5dOiQadeuXdRtyJcvn3n77bejtsvr9ZoRI0aY9PT0oOm7du0yxhjTs2fP\niNsROD/Sw+v1miVLlriW37Nnj6lXr17UZQsXLmw+//zzoO3JyMgIWsfYsWNN8eLFw7Zh4sSJEfdV\npPb7HD582Hq5G264wXz//fdBbV+0aFHYfr8QpUuXdtWbnp4estzPP/9s2rZtG7X9VatWNdu3bw9a\n/o477nCVq1y5sjlx4oQz/4knnnDNL1SokNm3b1/INkbqc9s+WbZsWdDr4MyZM878UMfK8uXLXXWU\nKlXKVWbGjBnOvEj7K9RrONzD/70y8PXTuHFj88wzz0TcF1lZWVb9EW4dNu06ceKE6du3b9Rl4uLi\nzKhRo0KuN3AfDxgwwNSvXz9sXb169XItH/iZFOnhe185cOCAue6666yWuf/++13ri/Z6DJyfk/40\nJnc+Dy/UTz/9FLS+P/zhD0HlAo/nihUrmiJFipjY2FiTkpJibrrpJvPoo4+GfF8IdODAAVddBQsW\nNGfPng1bnjOQAPBfylheQjRgwAA9//zzUcsfOXJEHTp0sPpP6PmYPXu27rjjDqv/3i9YsECtWrXS\nr7/+6pp+6NAhbdy40XmemJio6tWrW7fBts/COXXqlNq2bas5c+ZELXv8+HH17NlT77zzTtQ2DRs2\nzPndj+c8flvk8RtkJ/ARan3+Dh06pGbNmmnlypVR13Pw4EG1bds25BnMwHU88sgj+uGHH8K2YcCA\nAfrll19CbkegcNuSExs3brxsZ6vDOXHihG6//XbNnTs3atnNmzeradOm+vHHH13TJ0yY4Lrkb9u2\nbXrqqacknfu93ahRo5x5Ho9Hf//7352znpH69Xz7vE6dOsqTJ4/z/Pjx41q3bp3zfNmyZa7yxhjX\ntMzMTO3Zs8fVjsAziuFEa6//6ySSr776Sn/5y1/Clt28eXPIs0jn27ZQ7TLGqHv37kFXXITy22+/\n6fHHH9df//rXqGVfffVVrVixImybpkyZooULF1q3O1Tbhw8frq1bt4YsbzMtkpy814VyJXwehvqN\npM0gOjt27NBPP/2k7OxsHT16VOvXr9crr7yi66+/XqNHj464bOHChVWmTBnn+eHDh7Vhw4bwC5xH\nMAYAXCY5+W+vzX9blyxZElSmZ8+eZunSpWb79u3m888/Nw0aNHDNL1eunOuMgTEXfgYyKyvLFC1a\n1FUmKSnJvPTSS2b9+vXmyy+/NK1atQpaz9ChQ131fPbZZ675N910U8T+vJC+DLWdo0ePDirTqFEj\nM3/+fLNx40Yzfvx4ky9fvqD/ZB85ciRqu4oXL27+8Y9/mG3btpk1a9aYl19+2Rw8eNAYE/0M5MGD\nB82uXbuCHvPmzTNJSUmuZevUqWN+/fVXZ9kHH3wwqC2dOnUyixYtMuvWrTMjRowwcXFxrvkVKlQw\nv/32m1NH4Fkl36NVq1ZmxYoVZs2aNaZLly5B86dOnerUsWvXLpOZmWlKlizpKvPII48EbZfP4cOH\nTYUKFczAgQPNBx98YJYuXWq2bdtmtmzZYr744gvTq1evoHWuWrXK1XeX8wzk0KFDXWUSExPNX/7y\nF7N27VqzdetWM23atKCzcT169AiqZ9myZSY2NtYpExMTY+bPn28qVarkWvaBBx5wLbdv3z6TmZlp\n6tSp4yp3xx13BPW5//6OpmXLlq76XnzxRWfevffeG7RPbr/9dmf+lClTXPOqVq3qqjvS/srKyjK7\ndu0yM2bMCFrHihUrXNvje20ZE/rsYHJysnnjjTfM1q1bzTvvvGMKFCgQ9D6ZEwcPHjSZmZlm4MCB\nrnquvfbakO364IMPgtpUrVo1M3v2bLNp0ybz9ttvmyJFirjmx8XFmZ07d7rWG+osc4UKFcycOXPM\n5s2bzfDhw4Pm9+nTx1n+xx9/NJmZmaZz586uMnXr1g06Rk6ePGmMMaZatWquso8++qhZu3at+fbb\nb8369evNhx9+aAYPHmyqV69u+vfvb71/jTHm5MmTId/rdu7caWrXru1aNk+ePGbZsmXOsrn1eXih\nXnjhhaBt9G+nT6jP1UhnTl9//fWI6+3QoYOr/Jtvvhm2LAESAK4iuR0gAz/0O3fuHLTOY8eOmcTE\nRFe5uXPnusoErienAfLtt98OqiPwEsbs7Gxz/fXXu8oUK1Ys4npuu+22iP15IX0ZajvLli0b9OUi\n8It1qC+vb7zxRsR2xcbGmo0bN4bdjmgBMpSMjIygS0irVKliDh065JQ5efKkyZMnj6tMo0aNguoa\nOXJkUJs//fRT17oC56enp7u+eJ05c8akpqa6yjz22GNB6wr8wjts2LCo2xpJ1apVXfW98MILrvmX\nK0CePXs2KACMHz8+qJ4vv/wy6FgJ/IeEMcY8++yzrnKBof/66693vuAHCnzfCXUpfE4EfkFu3769\nM88XauPj401aWprxeDymQIECzvw+ffq4lv3Tn/7kqttmf+V0n4YKkG+99ZarzIsvvhhUp/8/YmwF\n7qdwlzY3bdrUVS4lJSVov69atSqo3Y8//rirTOBxGBsba7Zu3eoq06ZNG1eZ2rVrR+2jSO9B/pev\ner1es3///rBljx075np+Pq/Hs2fPmj/+8Y9Bx/+cOXNc5XLr8/BCLF++POifeh06dAhZdvLkyaZI\nkSLm/vvvNx988IHZuHGj2bx5s/nwww9NrVq1gvZ9qGPEX+Bra/jw4WHLcgkrAFzlPCEu1fFYXq4T\nePnNP//5z6BBBvLnz69Tp065ygUOqnGhAi95TEpKUo8ePVzTvF6v7r33Xte0AwcOaPv27c7zn376\nyTW/YMGCOW7L+fbn3r17g2743rt376DBUrp06aLU1FTXtGj92b59e1WtWtVyC6Lbv3+/WrRooR9+\n+MGZVqpUKc2fP9/Vtn/96186ceKEa9lQt0S57777gqZF26a+ffu6RhiNjY1V2bJlXWVyY+CmkydP\nasKECerQoYMqVKig5ORkxcTEOMf35s2bXeX9R0a9nLZs2RJ0PD/88MNBr88WLVq4ymRnZ+urr74K\nqu+ZZ55RvXr1nOf+g+4kJiZqxowZSkhIyOWtCC3wklPf6LP+r+eaNWuqYcOGkqRffvnFuUl94HFl\ne/lqbkpOTlavXr1c0ypVqhRU7mINPJadnR00Ym/nzp2D7mN5yy236IYbbnBNi/a6bNq0adC2BD6/\n0O2qWbOm87cxRjVr1lTfvn314osvas6cOfruu++c+fny5bugdUnnLkv1/6mAx+PRhAkT1KZNG1e5\ny/15+Nlnn6lVq1bO7TQk6eabb9a0adNClm/durX27dunN954Q507d1bVqlVVpUoVderUSatWrVLd\nunVd5Y8ePapPPvkk7PoDR/I+cOBA2LJX3tjQAABrHo8nKLT47NmzRw0aNAi77OnTp/Xzzz+f13r9\ng0du+P77713Pr7322pD3PAv8HYgxRj/88IMqVqyYK+2oU6eOZsyYETTdGKMPP/xQQ4YMCbts4DZI\nCnn7EI/Ho1KlSrm+hEXrz5tuuini/Jw4evSoWrZsqW+//daZVqhQIX3++edB91Oz3aaUlBQVKFDA\n9fvVaNtUuXLloGlJSUmu56FGFs2JnTt3qmXLlmFfI6EE3kbhcrmQIBv4O0jp3D9g3nnnHVWpUiXo\nt8MjRozI1X9QRFOjRg3X8XL48GFt2bJF//nPf5wyDRs2VJEiRTRz5kxJ5/7JVKxYMe3cudMpExMT\no8aNG1+ydvuUKVNGcXFxrmmBx6504cdvOD///HPQyLThblWUnp7u+i3blfC6fOaZZ/TZZ585I1Hv\n3btX//jHP1xlSpQooe7du+vPf/6z8ufPf97rGjp0qMaPH++aNmrUKPXs2dM17XJ/Hk6YMEH9+/d3\n3fKnbt26+uSTT5Q3b96QyxQqVChsfV6vV0888YTatWvnmr5+/Xp169btgttLgASAq1y4e2KF+iG+\njUhn28z/vyGx/39IrySFCxd2PT906FCOlk9MTAzbn5fzPou+QU0u1IkTJ9SmTRvXF8p8+fJp3rx5\nIc+gXEyh+jO3b5Teo0ePkOHR/xg3AYNlBD6/XMK9Dm1en4FnjX02bdoUct7SpUv16KOPnl9Dz4PX\n61WjRo00e/ZsSf83UI5/gGzQoIGKFi3qPF+2bFnQ6+DGG28MOut2KVyKY/dyuRTbVr58eW3cuFGv\nvPKKZs6c6dyqw/+1t2/fPo0cOVLz58/X6tWrz6sNr776qoYPH+6aNmTIEA0aNMi6jkvxefj000/r\n+eefd01r37693n333Yi33ogm1MA7kQapCwzQ4e4bKREgAeB3Kz4+XoUKFXLdj/DBBx+MeJZNOveh\nGe4/oucr8MzXnj17dObMmaD/8vtf2iSd+3C/5pprnOf+f0vBl7ReTKFCnv/ZEp+zZ89q165drmmB\n7Q6UG1/gfvvtN3Xu3NkZYVE6dwx89NFHqlWrVshlAveLdG6b6tSp45p26NChoC8m0bbpYtu1a5dW\nrVrlmtakSRMNGTJEZcuWVWJioowx6tChg/79739fplaGF6rvp06dGvGqAp9Ql27/8MMP6tWrV8iA\nPHv2bL3xxht64IEHzq+x56Fp06ZOgJTOBUTfyJxer1e33nqr8uXLp3z58ikrK0vLli0LOqYux+Wr\nV4K0tDTFx8fr9OnTzrRQ7zVS8Hvm5X5d+hQtWlQjR47UyJEjdfz4cW3btk3ffvutVq5cqddee805\nw7pu3TrNmzcv6ExaNNOnT9eAAQNc03r37h12dNzL8Xl4+vRp9enTR9OnT3dNHzBggF555ZXzqtNf\n4L6XIv+sI/DzslixYmHL8htIAPgdC7z865NPPlH+/PnD3oi4aNGiWrx4ca6fjWvUqJHr+YkTJ4Ju\nTJ2dnR00ZH2RIkVcl6/WrFnT9R/jbdu2XbTLyAKVLFky6Dd8oW7w/v777+vIkSOuab7fel0sxhj1\n7NlTn376qTPNd/Pv5s2bh12uVq1aQZevvfXWW0HlQk27WNsUHx/veh54OaZPqEtAX375ZbVq1UoV\nK1Z0bla/bdu2i9LOC1WlSpWgM+offfRRxBuFJyUl6V//+lfQ78aMMerRo4fry7H/kP2SNHjwYG3Z\nsiVkW2z7PCcCw9+XX37pBPmqVauqQIECiomJcX63+dNPP+ndd9+NWIetwO2RcmebLpWYmBjVr1/f\nNe2DDz4Iel9ZtWqV67ZG0uV/XUrBl3zmzZtXNWrU0B133KGXX35Zt99+u2t+qFt+RDJ37tyg36i2\na9dOEyZMiLjcpfw8PHr0qFq1auUKjzExMRozZoxVeDx69Ki6dOkSMiRK5z4vR44cGTT95ptvDltn\n4D/SbrnllrBlCZAA8Dv24IMPup5nZGSoXr16mjhxotauXasdO3Zo9erVmjhxonr27KlrrrlGvXv3\nzvXL/Dp27Oi6XE06N2DISy+9pPXr12vBggVq3bq16xI3SUFnTNLS0lSlShXn+YkTJyLfyyqXBbYn\nIyNDzZo10/z587Vhwwa99tprQQMBpaam6q677rqo7Xr44YeDvnwPGjRIt9xyizIzM4MevkEi4uPj\ndc8997iWW758uTp16qTFixfrm2++0XPPPaf//d//dZUpX768brvttouyLYGXVX388cdavny5MjIy\nlJmZ6VyGFeryq2effVarV6/Wli1bNHXqVDVp0uSKvRxbkvr37+96/vHHH6tVq1aaNWuWNm3apP/8\n5z9avHixxo4dq9atW6tkyZIaM2ZMUD2jRo3SggULnOcFCxbUihUr1KFDB2faiRMn1K1bt6ABQqTg\nvlywYIG++OILfffdd8rMzNT+/ftzvG1Vq1Z11XvgwAHn91/+Z1n9//a/JD0+Pt7qbGwogcHcGKMx\nY8Zoy5YtQa+BK1Xge82xY8fUoEEDzZ49W5s2bdLbb78ddNYuLi5O/fr1uyjtCTxG1q9fr48++kg7\nd+5UZmam9u7d68x7+OGHdf311+uxxx7TP//5T61bt047d+7Uxo0b9dprr+nLL7901ZWTgXSWLVum\nLl26uH5LWKVKFY0cOVK7d+8Oeq/zv2zzUn0e7tu3T7feeqtr0B6v16uXXnpJ7du3D/meHPgPMd/v\n8itWrKj27dtr0qRJ+uabb7R582Z9+OGHqlu3btC9e4sVKxYUzn3279+v3bt3O88LFiwYNABTYAMA\nAFeJwOH0A2+H4S/UrRNCDb8f6j5/kR5er9dkZ2e76ggsk9PbeBhjzKxZs0xMTIx1O2rUqBFymPwh\nQ4a4yo0ZMyZsHwXWGWno+cBtCLWdp06dMrfeemuO+vKdd96J2q7A9QSKNoR+Tvavx+MxixcvdpY9\ndOiQqVixovWyCQkJZsmSJa71hzoWA8sYY3e7iMGDB0dcf69evZyygfebC3zExsYG3SojcJ2X8z6Q\nv/76a9C966I9GjRo4Krj66+/Drplx3vvvWeMMeann34yxYoVc817+OGHg9oxfvz4iOts3LjxefVB\n165dQ9bna58xxixdujRkmfr164es02Z/hbpFSqTXgM0tKnLrOLG9jYcxwbediPZe8/zzzwfVYXNb\nHJs2zZ07N+L6y5Qp45Tt1KmTdbvj4+Nd966M1s+hbrli+35hTO58HkYT6rMk2sO//4w5d4/bnCwf\nGxtrPv7447BtCryv6F133RVxGzgDCQBXMZMLZwJfffVVPf3009a/sytRooS83gv7+AjV7nbt2un9\n99+3GhSjWbNm+vzzz0OOfNi3b1/XZayhRlW9WOLj4zV37ly1bds2atm8efNqypQpuTIiXm7z77/U\n1FQtWLAgaEj4UAoXLqzZs2df1EtyH3rooYijMvq3feLEiUpOTg5ZLjY2Vn/7299cZ6xt5MZrzrbe\npKQkffbZZ2rfvr1VHR6PR9dee63z/NixY+rWrZvrMuo777xTXbp0kXRuFMfAy8LHjx8fNNR/9+7d\nww4u5Vvv+Qh3Car/mcXatWuHvOTU9vLVUP3q8Xj0xBNPRFzufLcp0npzu55p06YFXdEQSlxcnEaO\nHBl1my+kTa1atVKNGjXCLuPfn7Z9Gxsbq3HjxoUdYTZcW3IisC2X4/PQRmA7Y2JilCdPHqtlCxYs\nqBkzZriuOAgUeIVKqNs1+SNAAsBVxBNwX0KbD+LAZULNHz58uHbs2KEnn3xS9erVU5EiRRQfH6+k\npCRde+21at68uZ566iktWbLEdZmL7XoC2xuuLR07dtR3332nF154QU2aNFHRokUVHx+vfPnyqXz5\n8rr77rv16aef6osvvgg7hHmFChVcXy5Xr14d9nciNv0TahsilU9JSdGsWbO0cOFC9e7dW5UqVVL+\n/PkVFxenwoULq2HDhvrLX/6ijIwM3X333RfcrlBti1ZftEegkiVLavny5Zo5c6buvPNOpaenK2/e\nvIqPj1exYsXUokULvfLKK/r2228jXrpqcyxGK1O6dGmtWrVKd911l0qUKKH4+Piwy9SsWVPr1q1T\nz549Vbx4cae9HTt21LJly9SnT5+o7bI9dnPKpt+lcwH+448/1ooVK3TfffepWrVqSk1NVWxsrJKT\nk1WhQgW1b99eo0eP1ubNm12/qerfv78yMjKc+kuUKKHXX3/dVX/r1q2dyxp95e655x7XPeDy58+v\nr776Sv369VN6eroSEhJyfM/ZUHyvU/+6ypYt6xroJSEhQbVr1w7qq3AB0nZ/DRw4UNOmTVODBg2U\nkpIir9cbdptsX182643G9n1GOtc3b731ltauXav+/furWrVqSklJUVxcnNLS0lS7dm39+c9/1o4d\nO8IOBmNzDNq0KSYmRgsWLNCgQYNUqVIlJSYmhi0/btw4TZ8+Xf3791edOnVUtmxZJScnKy4uTgUL\nFlTNmjX16KOPauPGjUH3mI3Wz6HampP3utz6PIwkp20M1c7k5GTt379f7733nu6//37Vrl3baWdi\nYqKKFy+uli1b6uWXX9bOnTvVqVOnsO355ZdfXP80qlSpUtTb43jMxfpXGgAAl8nChQtdg8M89thj\nIQcUAADg92z8+PH605/+5DyfOHFi0CBEgQiQAID/Sq1bt3ZGHU1OTlZmZqZSU1Mvc6sAALgynDlz\nRuXLl9eePXskSdWrV9c333wTdTkuYQUA/FcaPXq0YmJi5PF4lJWVpXHjxl3uJgEAcMWYOnWq9uzZ\n41wqO3r0aKvlOAMJAAAAALDCGUgAAAAAgBUCJAAAAADACgESAAAAAGCFAAkAAAAAsEKABAAAAABY\nIUACAAAAAKwQIAEAAAAAVgiQAAAAAAArBEgAAAAAgBUCJAAAAADACgESAAAAAGCFAAkAAAAAsEKA\nBAAAAABYIUACAAAAAKwQIAEAAAAAVgiQAAAAAAArBEgAAAAAgBUCJAAAAADACgESAAAAAGCFAAkA\nAAAAsEKoz41yAAAgAElEQVSABAAAAABYIUACAAAAAKwQIAEAAAAAVgiQAAAAAAArBEgAAAAAgBUC\nJAAAAADACgESAAAAAGCFAAkAAAAAsEKABAAAAABYIUACAAAAAKwQIAEAAAAAVgiQAAAAAAArBEgA\nAAAAgBUCJAAAAADACgESAAAAAGCFAAkAAAAAsEKABAAAAABYIUACAAAAAKwQIAEAAAAAVgiQAAAA\nAAArBEgAuEoMHTpUXq9XXq9Xw4YNC5rvm+f1nt9b++LFi0PW37hx4wuq12fVqlXyer2Ki4vTd999\n50wvU6aMU//u3btdy0yePNmZ17t37wtafzj+/bpkyZKLso7zMWbMGA0dOlRjx469oHp69eoVtn/9\n+e/naI/cdvToUQ0dOlRDhw7VrFmzcr3+QOGO9cWLF2vo0KEaNmyYdu3aFbScb5kmTZqc97qzs7P1\n5JNPKj09XfHx8fJ6vbrpppvOuz4budG/mZmZF/21GMnOnTt1//3368Ybb1RsbKzTlnnz5oVdZs2a\nNbrjjjtUrFgxJSQk6JprrlGLFi30+eefO2UmTpwor9erYsWKKSsr61JsCnDVi73cDQAA5JzH4zmv\needTv+/vC6130KBBkqSuXbuqbNmyOa4/N7YrXL25tY25acyYMdq9e7dKly6tAQMGXHB9Nv3rX8YY\nY73shTp8+LCGDx8u6Vzgbd++/UVdn//+9t+2xYsXO+1o0qSJSpcuHXH58zFhwgSNHDnStf6rqX8v\nRXtD2bRpk9566y3rtkydOlW9e/fW2bNnnbIHDhzQwoULVbduXbVs2VKS1KNHDw0fPly7d+/WqFGj\nnH4CEB5nIAEAEfkHifO1YsUKrVy5Uh6PR/369cv1+s/Hr7/+Kkl69tlnlZ2drezsbDVs2PCytCWS\nS/VlfdGiRU4/ZGdnq1SpUs76MzIyXPMupktxPDRq1Ehnz55Vdna2nnnmmaD5Ho/norVj7dq1zt++\nPl+3bt1FWVco57tdZcqUcfps4sSJudyq6EqWLKknnnhCM2fOVIcOHSSF35bt27erb9++Onv2rEqV\nKqW5c+fq6NGjOnDggD755BM1aNDAKRsbG6tevXpJksaPH6+TJ09e9G0BrnYESAD4L3fy5EmNGDFC\n1apVU548eZQ3b17Vrl1bkyZNuqB6Dx48qEceeUTly5dXQkKCkpOTVa9ePU2ePDmorO/MwTXXXJNr\nIW3Dhg3q1q2brrnmGsXFxalQoUJq166dli9f7irnf4nqzJkz1adPHxUqVEj58uULmu+7hNX/0tlQ\nD/9LXZctW6Z27dqpcOHCiouLU7FixdStWzdt3LjR1Q7/S0lXrlypu+++W6mpqUpLS1Pnzp21f/9+\nSf93eaXvclP/SwfT09MlSevXr1fHjh1Vvnx55c+f31lvp06dXAHlYlm1apX+53/+R0WLFlVcXJyK\nFy+u3r17uy77nDZtmtNu/zOow4YNc6aPGzdOQ4cOdZ2RnjJlitWlkv/zP/8jr9er+Ph4nThxQpK0\nYMECZ9k5c+ZIks6cOaO8efPK6/XqtttukxT6EtYyZco4Z5+MMWrSpIlTZunSpa51G2O0cOFC1alT\nR0lJSSpfvrxGjx4dtd+8Xq/+8Y9/OM99lw37b+fkyZN16623Kjk5WQkJCSpfvrweeeQR/fzzz666\nfJd+p6ena/Xq1WrSpIny5Mmj0qVL6/HHH9eZM2ckyap/MzIy1KNHD5UqVUqJiYlKSUlR1apV1bt3\nb/3000+Swl/CGul14l/u8OHDGjJkiCpVqqTExETlz59fjRs3tr6ktmbNmnruuefUrl075c+fP2LZ\ncePG6fTp05KkSZMm6Q9/+IPy5cuntLQ0tWzZUi1atHCVv/POOyVJR44c0YcffmjVHuB3zQAArgrP\nPvus8Xg8xuPxmKFDhwbN983zer3OtOPHj5tbbrnFNc/r9TrPH3roIafsokWLnOnDhg1zpjdq1Cio\n3h9++MGULl06bL333Xefq23FihUzHo/HdOnSJajdvnq8Xq/JzMx0zZs0aZJTZ+/evZ3pCxcuNAkJ\nCa71+/6OiYkx06dPD9lvhQoVcrXXf77X6zVLliwxxhgzefJkVzn/+r1er1m6dKkxxpipU6cGzfP9\nnZiYaBYvXuy0o2fPns681NTUoPLNmzcP2g+B/Zuenm6MMebdd98Nap+vrrx585r//Oc/Qev1er1m\n165dQf0fjv9+8V/uvffeMzExMSH7Jy0tzWzbts0pe/fdd7v6du3atSYuLs54PB7Tpk0bY4wxQ4cO\nDbu9/vs80Lhx45yyCxcuDNrXQ4YMMcYY89VXXznTRo4cGdTHvmO9TJkyIdvgf1z4H0dxcXGu/efx\neMy0adMi9mm07ezXr1/Y11SZMmXMjz/+GLR/8uTJYxITE4PKjxgxwrp/q1SpEnK9Xq/XbN682Rhj\nTEZGRsjXYrjXicfjMffcc48xxpj9+/ebcuXKhS07evToiP0WyP+1NG/evKD5lStXNh6Px8THx5sh\nQ4aYMmXKmPj4eHPdddeZ8ePHh6zT997wxz/+MUdtAX6PCJAAcJXw/3Ic6eEf9P761786019//XWT\nlZVlDh48aLp27epMX7dunTEmZwHy3nvvdX1JPHz4sNmwYYPrS/hXX31ljDFm9+7dQV9q/fkH0UgP\n/y+tFSpUcKa/+eabJisry8yaNcsJJwULFjTHjx8P6rdChQqZ+fPnm5MnTzpfjP3n+4JCoLFjxzpl\nWrZsac6cOWOysrJMSkqK80V11qxZJisry7z55ptO2UqVKjl1+H/pvfnmm01GRobZsWOHKVq0qDP9\nhx9+COoXX2j0t337djN//nzz448/mtOnT5tjx46ZN954w6ln4MCBQevNjQB5/PhxU7BgQePxeEzN\nmjXNtm3bzOnTp82iRYucQN+uXTunjl9++cWULVvWeDweU7ZsWVO1alXj8XhM8eLFzcGDB51ymZmZ\nIfdzJJs2bXKWGT58uDHGmKZNmzptrlOnjjHGmJEjRzrTvv76a2NM+GPdP2yFOhb8j8enn37aHD16\n1Lz22muuYyOaXr16hdwfy5cvd+pJT083GzZsMIcPHzb33HOPM71fv35B+8fXZ4cOHTJz5swJeexF\n6t+DBw+6jpsTJ06Yw4cPmzVr1pjnnnvO7NmzxxgTPkD68z+eU1NTzYYNG4wxxtx3333G4/GY2NhY\n8/HHH5uTJ0+affv2Oe8tCQkJrmM/mmgBMk+ePCEDs+/5448/HrRMs2bNjMfjMRUqVLBuB/B7xSWs\nAHCV8vgNwOEJ8zs532V8kvTggw8qOTlZhQsX1vvvv+9Mnz9/fo7X7Rv50OPx6KWXXlJKSoqqVaum\nRx55xCnzySefSJJ+/PFHZ1qhQoUueJu2b9+unTt3SpKqV6+ufv36KW/evGrXrp3atGkj6dzlcitX\nrgxadtCgQWrRooUSEhJUpUoVq22dNm2aBg4cKEmqXbu2PvroI8XGxmrFihU6evSoJOkPf/iD2rVr\np7x586pfv3668cYbJUk7duxwjTjrM3z4cJUpU0bly5d3fo/l8XgijpLqr2jRovryyy/VpEkTFShQ\nQPnz51f//v1dfXQxrFixQocPH5Z07rd8lStXVkJCgpo2bepcMvjFF1845ZOTk/XOO+8oNjZWGRkZ\n2rx5s7xer6ZMmaK0tDSnnDmP3+Vdf/31KlKkiCRp+fLl+u2337Rq1SpVrFhRVatW1TfffKMTJ044\nl5/mz59fNWvWjFinbTuKFSum4cOHK3/+/OrZs6cz3Wb/+a/D/2//0UQHDBigatWqKSUlRS+//LIz\n3fea8hcbG6uxY8cqNTVVbdq0UcGCBYPaEmm7UlNTlZKS4tQ/YsQIzZs3T4mJiXryySdVsmTJqNsk\nSd9//71atGihAwcOKCkpSbNnz1a1atUk/d/7UHZ2tjp27KikpCSVLFnS2TenT5/O1RGQfZfvSude\nm4cOHdK//vUvJScnS5Jeeukl59JcH9/x6P9+BSA0AiQAXIWGDh3qGtQk3MAmBw4ccP4ODGe+x6FD\nh3K8ft+Xr3z58jlfPiU5A6/4l7HlCTFYS6jfafrX678+m/Xn9HYJ8+bNc37HVblyZX3yySfKkyeP\ndTuMMa59IJ3bzkqVKjnPffUZY6wH8OjSpYtGjx6trVu36tSpU0GB2/ebwNwWalsCH6dOnXKt/5Zb\nblG9evWc59dff72aN2+eK+3x3U5j5cqVWr16tU6cOKEGDRqoQYMGOn36tFasWKEVK1ZIkho2bJhr\nAxKVK1fOqcu3/yTleAAW//aEO558/yAILONTtGhRJxhJUt68eSVJp06dsmqD1+vV1KlTVbJkSe3Y\nsUPPP/+8unfvrmrVqumGG27Q3r17o9Zx6NAh3Xbbbdq1a5diY2M1Y8YM1a9f35l/sd6HwilcuLDz\n93333acCBQqoRo0aatasmSTp7NmzQb9R9jmff2YAvzcESAD4L1a0aFFJ57607d27Nyh0Zmdn64UX\nXjjverOysnTkyBFnuv9ZD9/ZIV9ZKeehMtSXOV+9koLu1Rdq/f6SkpKs1718+XLdcccdys7O1rXX\nXqv58+c7Z3ck93aFa4fH4wnZjri4OOfvcKEm3PTDhw87Z42LFSumzZs3Kzs7W//+978tt+z8+W9z\n3759Qx5P2dnZrn6eOnWqaxCajRs3asyYMa56zzfY+QJkVlaWc7/MBg0aOAM1jR8/Xr/88ourbCS+\ndkRrj83+y6lwx9ORI0ecbYh2LIVrT7Q2tm7dWrt379b27ds1Z84cPfPMM4qJidGmTZs0YsSIiMse\nP35crVu31pYtW+TxePTmm2+qbdu2IbctX758OnXqVMhj5oEHHoi4npy4+eabnb9DnfE1xriCv3Ru\nUDDp3GsKQGQESAD4L+a7pNMYo3vuuUc7d+7UmTNntHfvXk2fPl3169cPecP0aFq3bu3UO3jwYB05\nckSbNm3SK6+8IuncF1ZfmVKlSjlfIDds2HDB21ShQgVVrFjRqW/ChAnKysrSnDlzNHfuXElSwYIF\nVbduXddy0b5E+8/fsGGD2rZtq5MnTyotLU2fffZZ0KV89erVU2pqqiTp008/1Zw5c5SVlaUJEyZo\n/fr1kqRKlSq5RsC0Xb/0f5f7Hjx4UN9//70zPTY21ikbExOj5ORkHThwQE8//bTVei6E/zZPmTJF\n7777rrKysnT8+HGtXr1aQ4YMcS73laTvvvtODz74oCSpbt26zuiXTzzxhCvw+l/Oun37ducWK9E0\nbdrU+fujjz6Sx+NxzkBK/3fppMfjcZUNx9fnxhj9+9//vqRno3yvF+ncKKKbNm3SkSNHNHjw4JBl\nciJa/z788MNasGCB8uTJo5YtW6pjx46Kj4+XJO3ZsydsvWfOnFGnTp20evVqSdJf//rXkCPn+t6H\nsrKy1KdPH+3du1dnzpxRRkaG3nrrLd1www1Rt+G3337TwYMHdfDgQdfZ1aNHj+rgwYPOpdWSXJcV\nv/nmmzpy5IjWrl2rBQsWSDr3/lCjRg1X/b73plq1akVtC/C7d+l/dgkAOB/+g734D/zh4z9ohM+v\nv/5qatWqFXHAHd9AHtEG0fGv98cffwwatdL/8cADD7ja1qNHD2fwlED+g4EEDvISbhTWRYsWmcTE\nxJDrjo2NNe+8807Ifgs1MEqo+b6BTsI9fKOrTp8+3RmRNPCRlJTkWp//wB/+2+k/3b/8Qw89FFRn\nr169jDHGtGjRImhexYoVnb8bN24cdb3RhNsv7777btht9t9PZ86ccUYAzpcvn9m5c6fZt2+fMwhP\nlSpVzIkTJ5x6fQPs+D8mT54ctZ2lSpVyypcoUcKZXr58eWd64cKFXcuEO9bXrFkTcpt8fM+bNGni\nqs83vUyZMlHbG2l/+AabCfVIT083+/fvd8r69k/gOv33m79I/Rtuf3q9XjN27FhjTOhBdBYvXhzx\ndeI7Xvfv3+8MphRuPdGEGp3Y/xHYD507dw5ZLiYmxkydOtVVdsuWLc78SZMmRW0L8HvHGUgAuEp4\nLC6v8wT8Fi4pKUlLly7ViBEjVL16deXNm1d58uRRuXLl1LFjR02cOFHXXHNNxPpDTS9atKjWrFmj\ngQMHqly5cs59IOvWratJkybp9ddfd9Vx7733Sjo3QEXgYBm+NofarnBtaty4sb7++mt17drVuQ9k\nWlqa2rRpo8WLF6tbt27W/RZpvn/bAh+SdNddd2nx4sVq06aNChUq5NyPsWvXrvr6669d97zMSf9K\n537neuedd6pIkSJB6502bZq6du2qggULKiUlRd27d9d7773narPt9ocTbr/ceeedWr58uTp16qRi\nxYopLi5ORYoUUa1atfTnP/9ZgwYNctr/9ddfy+PxaNSoUSpXrpyKFy+u1157TZK0detWPfroo069\nU6dOVcOGDVWgQIGoAyn5812a6vF4XL+78x+cqHHjxkHbFqpPbr75Zo0bN07lypVTfHx8yDZEOo5s\n2htpf/ztb3/TpEmTVLduXSUnJys+Pl7lypXTwIEDtWbNGtclrOH6KNz0SP37xBNPqEGDBs59PfPm\nzev0xZ/+9Kew22/+/xnaaK+TIkWKaM2aNXrsscdUuXJlJSYmKjk5WZUqVdIf//hHzZgxI0f9Fmld\nPu+++65eeOEFXXfddUpISFCBAgV022236YsvvtDdd9/tKutbf4ECBdS1a9eobQF+7zzG8GthAMDF\nd+utt2rlypXq1q2bpk+ffrmbAwA6c+aMypcvrz179ujJJ5+M+ptPAARIAMAlsmrVKtWrV0+xsbHa\nunWr9W8DAeBimThxou69914VLVpUO3fudEaxBRAeARIAAAAAYIXfQAIAAAAArBAgAQAAAABWCJAA\nAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAA\nAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAA\nrBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFgh\nQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAE\nAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAA\nAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAA\nYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAK\nARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIk\nAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAA\nAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAA\nACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABW\nCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAg\nAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIA\nAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAA\nAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACw\nQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUA\nCQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIA\nAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAA\nAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACA\nFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsE\nSAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAA\nAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAA\nAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAA\nrBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFgh\nQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAE\nAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAA\nAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAA\nYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAK\nARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIk\nAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAA\nAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAA\nACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABW\nCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAg\nAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIA\nAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAA\nAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACw\nQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUA\nCQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIA\nAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAA\nAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACA\nFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsE\nSAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAA\nAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAArBAgAQAA\nAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFghQAIAAAAA\nrBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAEAAAAAFgh\nQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAAAACwQoAE\nAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAAYIUACQAA\nAACwQoAEAAAAAFghQAIAAAAArBAgAQAAAABWCJAAAAAAACsESAAAAACAFQIkAAAAAMAKARIAAAAA\nYIUACQAAAACwQoAEAAAA8P/Yu/cgver6juOfZ3O/SLgnyiUkUiiNXGJoKwq4toNVLgrDRa3EWJCa\ncBEGREp1KNG0A5V2qI46VQyYUrENxtRQEcaWQImkViUhVq3BxAQZIGQwlEsW4ubpHzQLayD5xjH7\nHNjX658s5znJftmZ/c2+93fOeaBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIB\nCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACg\nREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEA\nACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhI\nACrWxdwAACAASURBVAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACU\nCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAA\nACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJ\nAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBE\nQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAA\nKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgA\nAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUC\nEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABA\niYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIA\nAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQ\nAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABK\nBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAA\ngBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAE\nAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAi\nIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAA\nlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQA\nAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIB\nCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACg\nREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEA\nACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhI\nAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAl\nAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAA\nQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREAC\nAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgR\nkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAA\nSgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIA\nAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImA\nBAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQ\nIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAA\nAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQk\nAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIAS\nAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAA\noERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiAB\nAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQI\nSAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAA\nJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkA\nAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERA\nAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAo\nEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAA\nAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQIS\nAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJ\ngAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAA\nUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAA\nAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoE\nJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACA\nEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQA\nAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIg\nAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACU\nCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAA\nACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAAKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJ\nAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAICSoZ0eAHhpTz/9dO69\n99488sgjabfbmTBhQqZOnZrRo0d3ejQAAAYhAQkNs2nTpixYsCBf+MIXcvfdd2fTpk1pt9tJklar\nlaFDh+aoo47KOeeckzPOOCPDhg3r8MQAAAwWrfaWn0yBjps/f34uv/zyrFq1qnT+pEmTctVVV+X0\n00/fyZMBAICAhEbp6nr+tuTf+73fyzHHHJPDDz88e+yxR5Jk/fr1Wb58ef7jP/4j//Vf/5XkuV3J\n3t7ejswLAMDgIiChQcaNG5fzzz8/H/jABzJp0qRtnrtq1apcd911+exnP5sNGzYM0IQAAAxmAhIa\nZMOGDdl11113+t8BAIBfh4CEhlqzZk1arVb233//To8CAABJCu8D+aEPfSjjx49PV1dXTjrppJc8\nb+HChTnwwAMzatSovOUtb8nPfvaz3+ScMOhMmjTpJS9jnTRpUiZPnjzAEwEAMNhtNyBbrVbe8573\n9H38Yh5++OG8+93vzq677pprrrkm3/ve9zJjxozf7KRAkqTdbmfNmjVZs2ZNp0cBAGCQ2e77QP7d\n3/1d1qxZk0996lMvec5NN92UZ599NpdffnlOPfXU/Od//mduvPHGrFq1yi4J7IDHH388jz/+eF54\nZfnatWvTbrf7foGzbNmyJMmQIUM6MiMAAIPXdgMySbZ3m+Tq1auTJPvss0+SZN999+07LiCh7tpr\nr83s2bP7YrHdbm91GeuW78fXvOY1Az4fAACDWykgd9S2gvOII47I8uXLd8anhVeMF34PvdT305aH\n7DA4HH744X27zwAAnfJrB2RPT0+GDBmSYcOG9e0yPvDAA3nDG96QBx98MEledPdx+fLl293RHAhX\nXnllrrzyyk6P0Qi+Fs/r9Ndi4cKFWbhwYZJk3rx5SZIZM2b0fc+0Wq3sueeeecMb3pBTTz11p87S\n6a9FkzTha+GXBQBAE2w3IP/1X/81P/jBD5I8dy/WF7/4xRx77LE5+OCDM2XKlKxYsSLvfve782d/\n9me5+uqr8/DDD+drX/tajjnmmO2+ETrQ38knn5yTTz45yfMBef3113dyJAAA6LPdp7Bec801ufzy\ny9NqtXLfffflT//0T/Ptb387yfO/EZ8wYUJuuummbNiwIZdeemmmTZuWG264YacODq90GzZsyObN\nm1/y9VWrVg3gNAAAUAjIO+64I5s3b05vb2/fnzNmzMjmzZtz33339Z13yimn5P77709PT08WL17c\n+N3H7u7uTo/QGL4Wz2vS1+KII47I0qVLX/S1L33pS5k6depO/fxN+lp0mq8FAMBzWu0BviGx1Wo1\n4h5IaLqurq4MHTo0f/EXf5GPfvSjSZ57m4+ZM2fmn/7pn9JqtdLb29vhKRko1k4AoAkEJDTU+PHj\n8+ijjyZJjj322HzoQx/KxRdfnLVr1yZJDj30UE80HkSsnQBAEwhIaKhHH300s2bNyoIFC/od7+rq\nyiWXXJJPfOITGT58eIemY6BZOwGAJhCQ0HDveMc7csstt/T990c/+tF84hOf6OBEdIK1EwBogu0+\nRAfojLVr1+a4447rF49J8ld/9Vf54Ac/mKeffrpDkwEAMFjZgYSGGjduXJ544okkyYknnpiLL744\n559/fn74wx8mSSZPnpz777+/kyMygKydAEAT2IGEhnriiScycuTIfPrTn87Xv/71dHd357vf/W5m\nzZqVJFm9enWHJwQAYLCxAwkNdeihh+YrX/lKpkyZstVrixYtytlnn51169Z1YDI6wdoJADSBgISG\neuaZZzJixIiXfP2hhx7Kq1/96gGciE6ydgIATTC00wMAL25LPN577725/fbb89hjj+Xqq6/OmjVr\n0mq1xCMAAAPODiQ02AUXXJDPfOYzSZ773unt7c3RRx+de+65J3Pnzs2MGTM6PCEDxdoJADSBh+hA\nQ11//fV98fhCs2bNSrvdzqJFizowFQAAg5mAhIb63Oc+lyQ544wz+h1/85vfnCRZvnz5gM8EAMDg\n5hJWaKgxY8akp6cn69aty1577dV3CeumTZsyYsSIjB49Ok8++WSnx2SAWDsBgCawAwkNtSUWRo4c\n2e/4mjVrkjwXFAAAMJAEJDTUa1/72rTb7cybN6/v2EMPPZQLLrggSXLggQd2ajQAAAYpAQkN9a53\nvStJct555yV5bkdy3333zW233ZYkOf300zs2GwAAg5N7IKFBZs+enVarlSuuuCI9PT3p7u7Od77z\nna3OO/LII3PXXXdtdXkrr1zWTgCgCQQkNEhXV1ffw3KS5Omnn86nPvWpLFq0KOvWrcv48eNz4okn\n5sILL8yoUaM6PC0DydoJADSBgIQG+dWAhC2snQBAE7gHEgAAgJKhnR4A6K/dbuess84qnTt37tyd\nPA0AADzPJazQIF1d9YsCXOo6uFg7AYAmcAkrvEyJCQAABppLWKFhWq1W5s6du91AbLVaAzQRAAA8\nxyWs0CCewspLsXYCAE3gElYAAABKBCQ0jF0mAACayj2Q0CD//u//7t5GAAAayz2QAC8D1k4AoAlc\nwgoAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJRs9208lixZklmzZuUnP/lJpkyZkuuuuy5Tp07t\nd0673c7FF1+cr3zlK9mwYUMOOOCAzJ49O2ecccZOGxxeif7kT/5kh97GY+7cuTtxGgAA6G+bb+PR\n09OTAw44IGPGjMmll16aOXPmZMSIEVm5cmW6up7fvLz11ltzwgknZNq0aXn/+9+fyy+/PL/85S/z\nxBNPZMiQIf0/oUfRw0t64ffV9rRarfT29u7EaWgSaycA0ATb/Gn11ltvzbp163Luuedm5syZOfvs\ns7N69eosXry433m77rprkuS1r31t/vAP/zC77LJLdtlllx36YRjYMWICAICBts1LWFevXp0k2Wef\nffr9ueX4FkcddVSuuOKKfPzjH88///M/Z+TIkbnlllt26FI8IFm1alWnRwAAgJe03XsgX+ildjy+\n853v5C//8i/zR3/0R5k5c2YuuuiizJgxI//zP/+T0aNHb3X+lVde2fdxd3d3uru7d2hoeKU64IAD\nOj0CDbF48eKtrvYAAOi0bQbk5MmTkyQPPPBAkuTBBx/sO97T05MhQ4Zk2LBhWbx4cXp7ezN9+vS8\n853vzKJFizJ37tz86Ec/yrRp07b6d18YkMC2/eIXv8j999+fjRs3bvXascce24GJGAi/+su12bNn\nd24YAID/t82AfPvb35699947n/vc5zJ27Nh88YtfzKRJk/LmN785Q4cOzZQpU7JixYoccsghSZLP\nfvazeeqpp3LLLbdkxIgRmTRp0oD8T8Ar0aZNm/LBD34w8+bNS7vd3uoKAA/RAQBgoG3zKTcjRozI\n/PnzM3bs2Fx00UWZMGFC5s+f3/dwnC33OJ500kn52Mc+lrVr1+bCCy/MnnvumRtvvDG77777zv8/\ngFeoa665JjfccEM2b978opePe4gOAAADbZtv47FTPqFH0UPJ4YcfnhUrVuSII47IsmXLkiSnnHJK\nvvGNb2TffffN0Ucfneuvv77DUzJQrJ0AQBN4nw1oqPvvvz+tVis333xzkucC4qtf/WpuvvnmrF69\nOu94xzs6PCEAAIONHUhoqOHDh6e3tzfPPPNMRo4cmXa7nSeeeCJdXV0ZPXp03z3IDA7WTgCgCXbo\nbTyAgbPbbrtl/fr12bhxY3bfffesX78+c+bMyZgxY5IkP/3pTzs8IQAAg42AhIaaPHly1q9fnwcf\nfDCvf/3rc/vtt+eqq67qe917RgIAMNDcAwkN9da3vjUHHXRQfvzjH+fDH/5w31OPk+cuZ7ziiis6\nOB0AAIOReyDhZWLJkiWZP39+hg0blpNPPjlvetObOj0SA8jaCQA0gYAEeBmwdgIATeASVmioefPm\n5ayzzsqNN97Y7/g//MM/5Kyzzsq8efM6NBkAAIOVHUhoqGnTpmXZsmW58847c/TRR/cdX7p0ad74\nxjfmsMMOy7Jlyzo4IQPJ2gkANIGAhIbaZZdd8tRTT+WJJ57I6NGj+44/9dRTedWrXpWxY8fmf//3\nfzs4IQPJ2gkANIFLWKGhnn322STJI4880u/4unXrkiS//OUvB3wmAAAGNwEJDbX//vun3W7n0ksv\nzcaNG5MkGzduzGWXXZYk2W+//To5HgAAg5CAhIY64YQTkiQLFizIhAkTcuihh2bChAm5+eabkyTH\nH398J8cDAGAQcg8kNNTDDz+cI444ou+S1RcaP358li1blvHjx3dgMjrB2gkANIEdSGioCRMm5O67\n787b3va2DBkyJEkydOjQvP3tb8/dd98tHgEAGHB2IOFlYOPGjXnsscey++67Z9SoUZ0ehw6wdgIA\nTSAgAV4GrJ0AQBMM7fQAwPMmTZqUVquVVatW9X38Ytrtdt95AAAwUOxAQoN0dXWl1Wqlt7c3XV3b\nvkV5y3kMDtZOAKAJ7EBCg+y///59u47777//Ns99qd1JAADYWexAArwMWDsBgCbwNh7QUF/60pcy\nb968F31t7dq1Wbt27QBPBADAYGcHEhrqhfdD7shrvDJZOwGAJrADCS8zohEAgE7xEB1okOXLl2f5\n8uV9O03tdnury1hXrFiRJBkxYsSAzwcAwOAmIKFBFi5cmNmzZ/c79v73v/9Fz508efIATAQAAM9z\nCSs0SPUet+HDh+eKK67YydMAAEB/HqIDDbJs2bIsW7YsSXLWWWclSa6//vq+75lWq5U999wzU6dO\nzWte85qOzcnAs3YCAE0gIKGhuru702q1cscdd3R6FBrA2gkANIFLWKGBNm7cmLVr12bNmjX58Y9/\n3OlxAAAgiR1IaKxx48blySefzMaNGzN8+PBOj0OHWTsBgCawAwkNddxxx6XdbvfdEwkAAJ1mBxIa\n6u67784pp5yScePGZc6cOZk6dWpGjRrV75z999+/Q9Mx0KydAEATCEhoqK6u/hcItFqtvo/b7XZa\nrVZ6e3sHeiw6xNoJADTB0E4PANT8ajyICQAABpqAhIZ63/vet83XX7gjCQAAA2G7l7AuWbIks2bN\nyk9+8pNMmTIl1113XaZOnbrVeQ888EDOP//8fOtb38qwYcNy4okn5sYbb9z6E7oMC2CHWTsBgCbY\n5lNYe3p6cuqpp+app57Ktddem0ceeSSnnXZaNm/e3O+8drudU045Jf/2b/+Wyy67LJ/85Cez9957\n79TBYTBZt25dfvSjH3V6DAAABrltBuStt96adevW5dxzz83MmTNz9tlnZ/Xq1Vm8eHG/8+644458\n//vfz8UXX5zLLrss55xzTv72b/92Z84Ng8Ldd9+dww8/PBMmTMjrXve6JMm73/3u/MEf/EGWLl3a\n4ekAABhsthmQq1evTpLss88+/f7ccnyLH/7wh0mSm2++OaNHj84uu+yST3/607/xYWEwWbFiRd76\n1rdmxYoV/Y7/zu/8ThYvXpyvfOUrHZoMAIDBaoceovNS998888wzSZLhw4dn4cKF+djHPpaLLroo\nb3vb2/Jbv/VbW51/5ZVX9n3c3d2d7u7uHRkDBoWPf/zj6enpyV577ZVHH3207/g73/nOXHnllbnz\nzjs7OB072+LFi7e62gMAoNO2GZCTJ09O8twDcpLkwQcf7Dve09OTIUOGZNiwYX3nnXDCCTnppJPy\n7W9/OytWrMjPfvaz7QYk8OLuvPPOtFqt3HbbbXn961/fd/zggw9Okvz85z/v1GgMgF/95drs2bM7\nNwwAwP/b5lNYn3nmmUycODGjR4/OpZdemjlz5mTkyJFZuXJlhg4dmilTpmTFihXZuHFjJk2alHHj\nxuUjH/lIrr766jzyyCP56U9/mj333LP/J/QkQSgZPnx4ent709PTkxEjRqTVaqW3tzcbNmzI7rvv\nnuHDh6enp6fTYzJArJ0AQBNs8x7IESNGZP78+Rk7dmwuuuiiTJgwIfPnz09X13N/bcv70I0aNSo3\n33xzRowYkfPPPz9jx47NggULtopHoG6vvfZKkvz3f/93v+Nf+tKXkiTjx48f8JkAABjctvs+kL/x\nT+i36FAyffr0/OM//mMOOOCA/OxnP0uSHHfccfnWt76Vdrud973vfbnhhhs6OiMDx9oJADSBgISG\n+tGPfpRp06a96GWqI0eOzPe+970ccsghHZiMTrB2AgBNsM1LWIHOOeSQQ3L77bf3PTRni4MOOijf\n/OY3xSMAAAPODiQ0SHd3d6ZPn57TTz89u+yyS9/xlStXZt26dRk/fnwOPPDADk5Ip1g7AYAmEJDQ\nIFseUDVy5MiceOKJOfPMM3P88cdn6NAdestWXoGsnQBAEwhIaJAtAflCe+yxR84444yceeaZOeqo\nozowFU1g7QQAmkBAQoN861vfyk033ZQFCxbk8ccf7/daq9XKpEmTcuaZZ+bMM890KesgY+0EAJpA\nQEIDPfvss7n11ltz0003ZdGiRdm4cWO/11utVn73d383S5cu7dCEDDRrJwDQBAISGu6pp57Kv/zL\nv+Smm27K7bffnk2bNiV57nupt7e3w9MxUKydAEATeDIHNNyYMWNy8sknp9VqZcOGDVmyZEmnRwIA\nYJASkNBQmzZtym233ZYvf/nL+frXv56NGzf224GyGwUAwEATkNAg7XY7d955Z7785S/nq1/9an7x\ni19sdc6kSZPy3ve+N9OnT+/AhAAADGYCEhpkv/32y0MPPbTV7uLuu++e008/PdOnT88b3/jGDk0H\nAMBg5yE60CAvfB/IESNG5IQTTsj06dNz/PHHZ9iwYR2cjE6zdgIATWAHEhrmmGOOyfTp03P66adn\n3LhxnR4HAAD6CEhokNWrV2fixImdHgMAAF5U1/ZPAQbKr/O+jqtWrdoJkwAAwNYEJDTIwQcfnDPP\nPDN33XXXds+988478973vje//du/PQCTAQCAh+hAo2x5iE6r1cqrX/3qvOlNb8phhx2WPffcM0ny\n6KOP5r777suSJUvy8MMP930vbd68uWMzMzCsnQBAEwhIaJClS5fmkksuyT333FM6/6ijjsrf/M3f\n5A1veMNOnoxOs3YCAE0gIKGBlixZks9//vO5/fbb88gjj/R7bfz48XnrW9+aD3zgAznmmGM67JKU\ndAAAD19JREFUNCEDzdoJADSBgISGe+CBB/Lwww8neS4e999//w5PRCdYOwGAJhCQAC8D1k4AoAm8\nDyQ03D333JNvfOMbefTRR7P33nvnhBNOyO///u93eiwAAAYhO5DQYDNnzsznP//5fsdarVY++MEP\n5rOf/WyHpqITrJ0AQBMISGioG264IWedddZLvn799ddnxowZAzgRnWTtBACaoKvTAwAvbsvO48SJ\nE3PttddmwYIFufbaazNx4sR+rwMAwECxAwkN9apXvSpPP/10li1blkMPPbTv+A9+8IMcdthhedWr\nXpXHH3+8gxMykKydAEAT2IGEhnr22WeTJPvtt1+/4/vuu2+/1wEAYKAISGio/fbbL+12O5dcckk2\nbNiQJNmwYUM+/OEPJ3k+JAEAYKAISGiok046KclzD8vZY489Mm7cuOyxxx6ZO3duv9cBAGCguAcS\nGmr9+vU58sgjs3bt2q1emzhxYr773e9mjz326MBkdIK1EwBoAjuQ0FB77rlnli5dmrPPPjsTJkzI\nkCFD8prXvCbnnHNOli5dKh4BABhwdiABXgasnQBAE9iBBAAAoGRopwcAntfV1ZVWq7Xd89rtdlqt\nVnp7ewdgKgAAeI6AhIapXqbockYAAAbadgNyyZIlmTVrVn7yk59kypQpue666zJ16tQXPffRRx/N\nIYccksceeyyf/OQnc8kll/zGB4ZXsmOPPbZ8r1tlpxIAAH6TthmQPT09OfXUUzNmzJhce+21mTNn\nTk477bSsXLkyXV1b3z554YUXpqenJ4kfbuHXsXjx4k6PAAAAL2mbD9G59dZbs27dupx77rmZOXNm\nzj777KxevfpFf8j9xje+kVtuuSWXXXbZzpoVAACADtrmDuTq1auTJPvss0+/P7cc3+LJJ5/Mueee\nm6uuuipjxozZGXPCoDB79uwd2r2/4oorduI0AADQ3w49ROel7su6+uqrM3r06Bx33HH52te+liRZ\nv359NmzYkF133XWr86+88sq+j7u7u9Pd3b0jY8Ar1uzZs8vntlotAfkKtnjxYpc0AwCNs82AnDx5\ncpLkgQceSJI8+OCDfcd7enoyZMiQDBs2LD//+c/z4x//OAcffHDf373qqqsyduzY/Pmf//lW/+4L\nAxL49XgK6yvbr/5ybUd+uQAAsLO02tv4KfSZZ57JxIkTM3r06Fx66aWZM2dORo4cmZUrV2bo0KGZ\nMmVKVqxYke9973tZs2ZNkuSOO+7IZz7zmcyYMSOXX355DjrooP6fsPiESRiMdmTHqdVq5c1vfvPO\nG4ZGsXYCAE2wzR3IESNGZP78+TnvvPNy0UUX5XWve12+8IUv9D2Bdcu9WtOmTcu0adOSJE888URa\nrVYOPfTQreIR2DaXcwMA0GTb3IHcKZ/Qb9Fhh9x77725/fbb89hjj+Xqq6/OmjVr0mq18upXvzrD\nhg3r9HgMEGsnANAEAhIa7IILLshnPvOZJM997/T29uboo4/OPffck7lz52bGjBkdnpCBYu0EAJpg\nm+8DCXTO9ddf3xePLzRr1qy02+0sWrSoA1MBADCYCUhoqM997nNJkjPOOKPf8S0Pzlm+fPmAzwQA\nwODmElZoqDFjxqSnpyfr1q3LXnvt1XcJ66ZNmzJixIiMHj06Tz75ZKfHZIBYOwGAJrADCQ21JRZG\njhzZ7/iWt8zZ8hRkAAAYKAISGuq1r31t2u125s2b13fsoYceygUXXJAkOfDAAzs1GgAAg5SAhIZ6\n17velSQ577zzkjy3I7nvvvvmtttuS5KcfvrpHZsNAIDByT2Q0FA9PT3p7u7Od77zna1eO/LII3PX\nXXdtdXkrr1zWTgCgCQQkNNjTTz+dT33qU1m0aFHWrVuX8ePH58QTT8yFF16YUaNGdXo8BpC1EwBo\nAgEJ8DJg7QQAmsA9kAAAAJQM7fQAwPO6urpKb8/Rbrf73hcSAAAGioCEhnGZIgAATeUSVniZEpoA\nAAw0O5DQIJs3b97q2JbLWl2uCgBAp9mBBAAAoERAAgAAUCIgAQAAKHEPJDTI7Nmz+72Nx5YH5bTb\n7Xz84x/f6vwrrrhiwGYDAIBWe4Af5dhqtTw9El5CV1f9ogAP1hlcrJ0AQBO4hBVepsQEAAADzSWs\n0CA7cknqCy91BQCAgeASVoCXAWsnANAELmEFAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQA\nAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFAiIAEAACgRkAAAAJSUAnLJkiU57LDDMnLkyEybNi33\n3nvvVufcc889eeMb35jddtstu+22W0477bSsX7/+Nz4wAAAAnbHdgOzp6cmpp56ap556Ktdee20e\neeSRnHbaadm8eXO/81auXJm99947f/3Xf53jjz8+CxYsyEc+8pGdNjgAAAADa7sBeeutt2bdunU5\n99xzM3PmzJx99tlZvXp1Fi9e3O+897znPVm4cGHOOeec/P3f/32S5Ic//OFOGRoAAICBt92AXL16\ndZJkn3326ffnluNbDBs2rO/jb37zm0mSY4899jczJQAAAB03dEf/Qrvd3ubrS5YsyVlnnZUjjzwy\nV1555Yue88Lj3d3d6e7u3tExAF7RFi9evNWVHgAAnbbdgJw8eXKS5IEHHkiSPPjgg33He3p60tXV\nleHDhydJ7rrrrpxwwgk56KCDctttt2X06NEv+m++VFgC8Jxf/eXa7NmzOzcMAMD/a7W3s6X4zDPP\nZOLEiRk9enQuvfTSzJkzJyNHjszKlSszdOjQTJkyJStWrMj3v//9HHPMMUmSa665JrvttlvGjh2b\nE088sf8nbLW2u4sJQH/WTgCgCbZ7D+SIESMyf/78jB07NhdddFEmTJiQ+fPnp6vrub/aarWSJPfd\nd182btyYnp6enHfeefnjP/7jfOhDH9q50wMAADBgtrsD+Rv/hH6LDrDDrJ0AQBNsdwcSAAAAEgEJ\nAABAkYAEAACgREACAABQIiABAAAoEZAAAACUCEgAAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBE\nQAIAAFAiIAEAACgRkAAAAJQISAAAAEoEJAAAACUCEgAAgBIBCQAAQImABAAAoERAAgAAUCIgAQAA\nKBGQAAAAlAhIAAAASgQkAAAAJQISAACAEgEJAABAiYAEAACgREACAABQIiABAAAoEZAAAACUCEgA\nAABKBCQAAAAlAhIAAIASAQkAAECJgAQAAKBEQAIAAFCy3YBcsmRJDjvssIwcOTLTpk3Lvffe+6Ln\nLVy4MAceeGBGjRqVt7zlLfm/9u4vpOn9j+P4a0tp2R8KigYKm94YJI2cF9JFoBdBBCHoxQJLRCF1\nBt3sIi/6I7uUmEU37cKIUMKbrvImcjK6KworTYxWzUrt34hG0+n2u5A5PP3yeDi5j6c9HzAGHz5j\nr70ZY+/v5/v9fl6/fv27s/5WoVDIdIQNg1pkUYssapFFLQAAAJas2kAmEgnV19crHo8rEAhoZmZG\nDQ0NSqVSK+ZNT0/L4/Fo586d6unp0aNHj9TU1LSuwf8t/hBmUYssapFFLbKoBQAAwJJVG8ihoSHN\nzs6qo6NDbW1tamlpUSQS+enP1MDAgObn53Xu3Dl5vV7V1dUpHA7r1atX65kdAAAAAJBDqzaQkUhE\nklRcXLziOTP+q3klJSX/dx4AAAAA4L+r4J9MTqfT/3qey+WSxWL5J2+7bi5dumQ6woZBLbKoRRa1\nyDJdC5fLZfT9AQAApL9pIMvKyiRJ0WhUkvTu3bvl8UQioU2bNqmwsHDFvOrq6hXz/urJkye/Lz0A\nAAAAIGcs6VWWC+fm5uRwOFRUVCSfzye/3y+bzabJyUkVFBRo//79evr0qaanp+V0OlVRUaGmpiZ1\ndXWpsrJSIyMjufwsAAAAAIB1tOo1kJs3b9bg4KC2bdums2fPym63a3BwUFbr0ssyp6La7XYNDAwo\nFovJ5/PJ7Xbrxo0b6x4eAAAAAJA7q65AAgAAAACQseoKZD44f/68rFartm/fbjqKMZ2dnXI6ndqy\nZYvKy8vV399vOlLOPXjwQAcOHJDNZpPb7dbjx49NRzJicnJSNTU12r17t3bs2KEjR47k9XY8iURC\n5eXlslqtOnPmjOk4AAAAxuV1A/n8+XP19PTIZrNtmDvDmvDw4UM1Nzfr8uXLisViampqyqstWBKJ\nhOrr6xWPxxUIBDQzM6OGhgalUinT0XLu/fv3kqTu7m41Nzfr3r17am1tNZzKnO7u7uWbguXzbwQA\nAEBG3jaQqVRKra2tOn36tPbu3Ws6jlHhcFgXLlxQe3u7Ghsbtbi4qImJCdOxcmZoaEizs7Pq6OhQ\nW1ubWlpaFIlEFAqFTEfLuUOHDml4eFgdHR3q7e3Vrl27NDY2ZjqWEaOjowoEAsa37wAAANhI8raB\nvHbtmmZmZuT3+9e8v+WfqrCwUJKUTCY1PDysrVu3yu12G06VO5nV1uLi4hXP+bQKm5H5LkhLK9Nf\nv37V4cOHDSYyI3OAqbOzU1VVVabjAAAAbBh/dANZUlIiq9X606O3t1ddXV3y+Xz68OGDFhYWlE6n\n/+hrvX5Vi5s3b0qSFhYW1NjYqNHRUQWDQe3Zs8dwYnPy/YCCJL148ULHjx9XaWmprl69ajpOzvX1\n9enNmzc6efKkpqamJEmxWEyfPn0ynAwAAMCsAtMB1lM4HFYymfxpPJFIKB6Py+v1rhjft2+f5ufn\ncxUvp35VC7vdrmQyKY/Hozt37igYDMrj8RhIaE5ZWZkkKRqNStLyNW+Z8XwzNjam2tpaFRUV6f79\n+3l5ivfU1JQ+fvwol8u1PHbr1i3ZbDZdv37dYDIAAACz8nIbjx8/fuju3buyWCxKp9Nqb2/X9+/f\n1d/fr7q6OtPxcu7EiRO6ffu2jh07psbGRqXTaVVXV8vpdJqOlhNzc3NyOBwqKiqSz+eT3++XzWbT\ny5cv8+7GKdFoVFVVVfry5Yv8fr8cDock5d1BhfHxcY2Pj0uSnj17posXL+ro0aPy+/06ePCg4XQA\nAADm5GUD+VelpaX6/Pmzvn37ZjqKEaWlpXr79u3yqZsWi0V9fX06deqU4WS5Ew6H5fV6NTExoYqK\nCgWDQVVWVpqOlXOhUEi1tbXLB1ekpe/D4uKi4WTmjIyMqKamRp2dnbpy5YrpOAAAAEbRQAIAAAAA\n1uSPvokOAAAAAOD3oYEEAAAAAKwJDSQAAAAAYE1oIAEAAAAAa0IDCQAAAABYExpIAAAAAMCa0EAC\nAAAAANbkf1M+pbyPupgkAAAAAElFTkSuQmCC\n",
+ "text": [
+ "<matplotlib.figure.Figure at 0x792e430>"
+ ]
+ }
+ ],
+ "prompt_number": 95
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.9, Page number: 521<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display status of mouse button pressed \n",
+ "\n",
+ "from Tkinter import *\n",
+ "from tkFileDialog import askopenfilename\n",
+ "import Image, ImageTk\n",
+ "\n",
+ "if __name__ == \"__main__\":\n",
+ " root = Tk()\n",
+ "\n",
+ " #setting up a tkinter canvas with scrollbars\n",
+ " frame = Frame(root, bd=2, relief=SUNKEN)\n",
+ " frame.grid_rowconfigure(0, weight=1)\n",
+ " frame.grid_columnconfigure(0, weight=1)\n",
+ " xscroll = Scrollbar(frame, orient=HORIZONTAL)\n",
+ " xscroll.grid(row=1, column=0, sticky=E+W)\n",
+ " yscroll = Scrollbar(frame)\n",
+ " yscroll.grid(row=0, column=1, sticky=N+S)\n",
+ " canvas = Canvas(frame, bd=0, xscrollcommand=xscroll.set, yscrollcommand=yscroll.set)\n",
+ " canvas.grid(row=0, column=0, sticky=N+S+E+W)\n",
+ " xscroll.config(command=canvas.xview)\n",
+ " yscroll.config(command=canvas.yview)\n",
+ " frame.pack(fill=BOTH,expand=1)\n",
+ "\n",
+ " \n",
+ "\n",
+ " #function to be called when mouse is clicked\n",
+ " def printcoords(event):\n",
+ " #outputting x and y coords to console\n",
+ " print \"Mouse Button pressed\"\n",
+ " print (event.x,event.y)\n",
+ " #mouseclick event\n",
+ " canvas.bind(\"<Button 1>\",printcoords)\n",
+ "\n",
+ " root.mainloop()\n",
+ " \n",
+ "import win32api, win32con\n",
+ "\n",
+ "print \"Current cursor position at \" \n",
+ "print win32api.GetCursorPos()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mouse Button pressed\n",
+ "(207, 115)\n",
+ "Current cursor position at "
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "(502, 188)\n"
+ ]
+ }
+ ],
+ "prompt_number": 108
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 15.10, Page number: 523<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Change mouse cursor.\n",
+ "\n",
+ "#Placing the cursor on top of the circle button will change the pointer to circle\n",
+ "# and plus button to plus symbol\n",
+ "\n",
+ "from Tkinter import *\n",
+ "import Tkinter\n",
+ "\n",
+ "top = Tkinter.Tk()\n",
+ "\n",
+ "B1 = Tkinter.Button(top, text =\"circle\", relief=RAISED,\\\n",
+ " cursor=\"circle\")\n",
+ "B2 = Tkinter.Button(top, text =\"plus\", relief=RAISED,\\\n",
+ " cursor=\"plus\")\n",
+ "B1.pack()\n",
+ "B2.pack()\n",
+ "top.mainloop()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [],
+ "prompt_number": 110
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Programming_in_C_using_ANSI_C/KamthaneChapter16.ipynb b/Programming_in_C_using_ANSI_C/KamthaneChapter16.ipynb new file mode 100755 index 00000000..cafb9828 --- /dev/null +++ b/Programming_in_C_using_ANSI_C/KamthaneChapter16.ipynb @@ -0,0 +1,2160 @@ +{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 16: Marching Towards C++<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.1, Page number: 537<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read and display a string\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Initialize variable\n",
+ "name = raw_input(\"Enter Your Name : \")\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Your name is %s\"%(name))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Your Name : Amit\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Your name is Amit"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.2, Page number: 540<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the value of a variable using reference variable\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "qty = 10\n",
+ "qt = qty\n",
+ "#in python, value tagging method is used for storage. so there is no reference concept\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"qty\\tqt\\n\")\n",
+ "sys.stdout.write(\"%d\\t%d\\n\"%(qty,qt))\n",
+ "qt = qt + 1\n",
+ "qty = qty + 1\n",
+ "sys.stdout.write(\"%d\\t%d\\n\"%(qty,qt))\n",
+ "qty = qty - 1\n",
+ "qt = qt - 1\n",
+ "sys.stdout.write(\"%d\\t%d\\n\"%(qty,qt))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "qty\tqt\n",
+ "10\t10\n",
+ "11\t11\n",
+ "10\t10\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.3, Page number: 541<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to use scope access operator.\n",
+ "#Display the variaous values of the same variable declared at different scope levels.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = 10\n",
+ "\n",
+ "def main():\n",
+ " a = 20\n",
+ " sys.stdout.write(\"::a = %d\"%(a))\n",
+ " return\n",
+ "\n",
+ "#There is no scope operator. Intendation is used to define scope/block of statements\n",
+ "main()\n",
+ "sys.stdout.write(\" a = %d\"%(a))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "::a = 20 a = 10"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.4, Page number: 542<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to read tow integers through the keyboard.\n",
+ "#Declare the variables in C++ style.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Read Variables\n",
+ "num = int(raw_input(\"Enter Two numbers : \"))\n",
+ "num1 = int(raw_input(\"Enter Two numbers : \"))\n",
+ "#No variable declaration is needed in python\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Entered Numbers are : %d %d\"%(num,num1))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Two numbers : 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Two numbers : 9\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entered Numbers are : 8 9"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.5, Page number: 543<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Length of a string\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#There is no variable declaration is needed in python\n",
+ "#Read string\n",
+ "name = raw_input(\"Enter Your Name : \")\n",
+ "\n",
+ "#Calculation\n",
+ "len1 = len(name)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"The length of the string is : %d\"%(len1))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Your Name : Santosh\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The length of the string is : 7"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.6, Page number: 544<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Sum of numbers using function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definition\n",
+ "def sum1(x,y):\n",
+ " return x+y\n",
+ "#Forward function definition is not possible in python.\n",
+ "#Otherwise wrap the function within the main() function\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = 20\n",
+ "b = 2.5\n",
+ "\n",
+ "#Function call\n",
+ "sys.stdout.write(\"Sum = %f\"%(sum1(a,b)))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum = 22.500000"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.7, Page number: 545<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Function with default arguments.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definition\n",
+ "def sum1(j,k=10,l=15,m=20):\n",
+ " return j+k+l+m\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = 2\n",
+ "b = 3\n",
+ "c = 4\n",
+ "d = 5\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Sum = %d\"%(sum1(a,b,c,d)))\n",
+ "sys.stdout.write(\"\\nSum = %d\"%(sum1(a,b,c)))\n",
+ "sys.stdout.write(\"\\nSum = %d\"%(sum1(a,b)))\n",
+ "sys.stdout.write(\"\\nSum = %d\"%(sum1(a)))\n",
+ "sys.stdout.write(\"\\nSum = %d\"%(sum1(b,c,d)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum = 14\n",
+ "Sum = 29\n",
+ "Sum = 40\n",
+ "Sum = 47\n",
+ "Sum = 32"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.8, Page number: 547<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Square of integer and float number using function overloading\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Function definition/ There is no seperate function definition is needed.\n",
+ "def sqr(s):\n",
+ " return s*s\n",
+ "\n",
+ "#Variable iNitialization\n",
+ "a = 15\n",
+ "b = 2.5\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Square = %d\"%(sqr(a)))\n",
+ "sys.stdout.write(\"\\nSquare = %f\"%(sqr(b)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Square = 225\n",
+ "Square = 6.250000"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.9, Page number: 549<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display private and public member variables of the class.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class num:\n",
+ " def readdata(self,j,k):\n",
+ " self.x = j\n",
+ " self.y = k\n",
+ " \n",
+ " def display(self):\n",
+ " sys.stdout.write(\"x = %d y = %f\"%(self.x,self.y))\n",
+ "\n",
+ "#Object declaration\n",
+ "j = num()\n",
+ "\n",
+ "#Result\n",
+ "j.z = 'C'\n",
+ "j.readdata(10,10.5)\n",
+ "j.display()\n",
+ "sys.stdout.write(\" z = %c\"%(j.z))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "x = 10 y = 10.500000 z = C"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.10, Page number: 550<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Private and public data member of a class.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class player:\n",
+ " def __init__(self,name=None,height=0,weight=0):\n",
+ " self.name = name\n",
+ " self.height = height\n",
+ " self.weight = weight\n",
+ " \n",
+ "#Object declaration\n",
+ "a = player()\n",
+ "\n",
+ "#Variable Initialization\n",
+ "#There is no need/concept for private variables in python.\n",
+ "a.name = \"Sanjay\"\n",
+ "a.height = 5.5\n",
+ "a.weight = 38\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Height : %d\"%(a.height))\n",
+ "sys.stdout.write(\"\\nWeight : %d\"%(a.weight))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Height : 5\n",
+ "Weight : 38"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.11, Page number: 551<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Class with member variables and functions. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class player:\n",
+ " def __init__(self,name=None,height=0,weight=0):\n",
+ " self.name = name\n",
+ " self.height = height\n",
+ " self.weight = weight\n",
+ " \n",
+ " def setdata(self):\n",
+ " self.name = raw_input(\"Enter Name Age Height Weight\")\n",
+ " self.age = int(raw_input(\"Enter Name Age Height Weight\"))\n",
+ " self.height = float(raw_input(\"Enter Name Age Height Weight\"))\n",
+ " self.weight = int(raw_input(\"Enter Name Age Height Weight\"))\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"\\nName : %s\"%(self.name))\n",
+ " sys.stdout.write(\"\\nAge : %d\"%(self.age))\n",
+ " sys.stdout.write(\"\\nHeight : %f\"%(self.height))\n",
+ " sys.stdout.write(\"\\nWeight : %d\"%(self.weight))\n",
+ " \n",
+ "#Object declaration\n",
+ "a = player()\n",
+ "\n",
+ "#Function call\n",
+ "a.setdata()\n",
+ "a.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name Age Height WeightSanjay\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name Age Height Weight24\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name Age Height Weight5.5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name Age Height Weight54\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Name : Sanjay\n",
+ "Age : 24\n",
+ "Height : 5.500000\n",
+ "Weight : 54"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.12, Page number: 552<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Class with member variables and functions.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class player:\n",
+ " def __init__(self,name=None,height=0,weight=0):\n",
+ " self.name = name\n",
+ " self.height = height\n",
+ " self.weight = weight\n",
+ " \n",
+ " def setdata(self):\n",
+ " self.name = raw_input(\"Enter Name Age Height Weight\")\n",
+ " self.age = int(raw_input(\"Enter Name Age Height Weight\"))\n",
+ " self.height = float(raw_input(\"Enter Name Age Height Weight\"))\n",
+ " self.weight = int(raw_input(\"Enter Name Age Height Weight\"))\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"\\nName : %s\"%(self.name))\n",
+ " sys.stdout.write(\"\\nAge : %d\"%(self.age))\n",
+ " sys.stdout.write(\"\\nHeight : %f\"%(self.height))\n",
+ " sys.stdout.write(\"\\nWeight : %d\"%(self.weight))\n",
+ "#In python, member functions should be defined inside the class instance\n",
+ "\n",
+ "#Object declaration\n",
+ "a = player()\n",
+ "\n",
+ "#Function call\n",
+ "a.setdata()\n",
+ "a.show() "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name Age Height WeightAjay\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name Age Height Weight24\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name Age Height Weight5.2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Name Age Height Weight45\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Name : Ajay\n",
+ "Age : 24\n",
+ "Height : 5.200000\n",
+ "Weight : 45"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.13, Page number: 554<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Static data member. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class sumnum:\n",
+ " def __init__(self,num = 0):\n",
+ " self.num = num\n",
+ " \n",
+ " def input1(self,c):\n",
+ " self.num = int(raw_input(\"Enter Number : \"))\n",
+ " c = c + self.num\n",
+ " return c\n",
+ " \n",
+ " def sum1(self,c):\n",
+ " sys.stdout.write(\"The sum of entered numbers is %d\"%(c))\n",
+ " \n",
+ "#Object declaration\n",
+ "a = sumnum()\n",
+ "b = sumnum()\n",
+ "c1 = sumnum()\n",
+ "c = 0\n",
+ "\n",
+ "#Function call\n",
+ "#There is no static variable in python\n",
+ "c = a.input1(c)\n",
+ "c = b.input1(c)\n",
+ "c = c1.input1(c)\n",
+ "\n",
+ "a.sum1(c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The sum of entered numbers is 14"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.14, Page number: 555<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Static member functions \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class bita:\n",
+ " def __initi__(self):\n",
+ " self.c = 0\n",
+ " \n",
+ " @staticmethod \n",
+ " def count(c):\n",
+ " c = c + 1\n",
+ " return c\n",
+ " \n",
+ " @staticmethod\n",
+ " def display(k,c):\n",
+ " k = k + 1\n",
+ " sys.stdout.write(\"\\nCall Number : %d\"%(k))\n",
+ " sys.stdout.write(\"\\nValue of c : %d\"%(c))\n",
+ " return k\n",
+ " \n",
+ "#Object declaration\n",
+ "b = bita()\n",
+ "c1 = bita()\n",
+ "\n",
+ "c = 0\n",
+ "k = 0\n",
+ "\n",
+ "#Function call\n",
+ "k = bita.display(k,c)\n",
+ "c = bita.count(c)\n",
+ "c = b.count(c)\n",
+ "c = c1.count(c)\n",
+ "k = bita.display(k,c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Call Number : 1\n",
+ "Value of c : 0\n",
+ "Call Number : 2\n",
+ "Value of c : 3"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.15, Page number: 557<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Array of objects to maintain records of bank \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class bank:\n",
+ " def __init__(self):\n",
+ " self.city = None\n",
+ " self.bank = None\n",
+ " self.branches = 0\n",
+ " self.no_ac = 0\n",
+ " \n",
+ " def input1(self):\n",
+ " self.city = raw_input(\"City Name : \")\n",
+ " self.bank = raw_input(\"Bank Name : \")\n",
+ " self.branches = int(raw_input(\"Total Branches : \"))\n",
+ " self.no_ac = int(raw_input(\"Number of A/c : \"))\n",
+ " \n",
+ " def console(self):\n",
+ " sys.stdout.write(\"\\n\\nCity Name : %s\"%(self.city))\n",
+ " sys.stdout.write(\"\\nBank Name : %s\"%(self.bank))\n",
+ " sys.stdout.write(\"\\nTotal Branches : %d\"%(self.branches))\n",
+ " sys.stdout.write(\"\\nNumber of A/c : %d\"%(self.no_ac))\n",
+ " \n",
+ "#Object declaration\n",
+ "ms = [bank() for i in range(0,2)]\n",
+ "\n",
+ "#Processing\n",
+ "for k in range(0,2):\n",
+ " ms[k].input1()\n",
+ " \n",
+ "for k in range(0,2):\n",
+ " ms[k].console()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "City Name : Nanded\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bank Name : SNSB\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total Branches : 10\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of A/c : 7500\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "City Name : Latur\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Bank Name : SNSB\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total Branches : 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number of A/c : 5400\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "City Name : Nanded\n",
+ "Bank Name : SNSB\n",
+ "Total Branches : 10\n",
+ "Number of A/c : 7500\n",
+ "\n",
+ "City Name : Latur\n",
+ "Bank Name : SNSB\n",
+ "Total Branches : 8\n",
+ "Number of A/c : 5400"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.16, Page number: 559<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Accessing private data using non member function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class ac:\n",
+ " def __init__(self):\n",
+ " self.name = None\n",
+ " self.acno = 0\n",
+ " self.bal = 0\n",
+ " \n",
+ " def read(self):\n",
+ " self.name = raw_input(\"Name : \")\n",
+ " self.acno = int(raw_input(\"A/c No :\"))\n",
+ " self.bal = int(raw_input(\"Balance : \"))\n",
+ " \n",
+ "#Non member function\n",
+ "def showbal(a):\n",
+ " sys.stdout.write(\"\\nBalance of A/c no. %d is Rs. %d\"%(a.acno,a.bal))\n",
+ " \n",
+ "#object declaration\n",
+ "k = ac()\n",
+ "\n",
+ "#Function call\n",
+ "k.read()\n",
+ "showbal(k)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name : Manoj\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A/c No :474\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Balance : 40000\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Balance of A/c no. 474 is Rs. 40000"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.17, Page number: 561<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Friend function in two classes. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class first:\n",
+ " def __init__(self):\n",
+ " self.f = 0\n",
+ " \n",
+ " def getvalue(self):\n",
+ " self.f = int(raw_input(\"Enter a number : \"))\n",
+ " \n",
+ "class second:\n",
+ " def __init__(self):\n",
+ " self.s = 0\n",
+ " \n",
+ " def getvalue(self):\n",
+ " self.s = int(raw_input(\"Enter a number : \"))\n",
+ " \n",
+ " \n",
+ "#Non member function\n",
+ "def sum1(d,t):\n",
+ " sys.stdout.write(\"\\nSum of two numbers : %d\"%(t.f+d.s))\n",
+ " \n",
+ "#Object declaration\n",
+ "a = first()\n",
+ "b = second()\n",
+ "\n",
+ "#Function call\n",
+ "a.getvalue()\n",
+ "b.getvalue()\n",
+ "sum1(b,a)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number : 7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number : 8\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Sum of two numbers : 15"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.18, Page number: 562<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#String Replacement\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class fandr:\n",
+ " def __init__(self):\n",
+ " self.str1 = None\n",
+ " self.f = ''\n",
+ " self.r = ''\n",
+ " \n",
+ " def accept(self):\n",
+ " #Since string object does not support item assignment, initialize the string as character array\n",
+ " self.str1 = ['P','r','o','g','r','a','_','e','r']\n",
+ " self.f = raw_input(\"Find what (char) \")\n",
+ " self.r = raw_input(\"Replace with (char) \")\n",
+ " \n",
+ " def display(self,d):\n",
+ " sys.stdout.write(\"%c\"%(self.str1[d]))\n",
+ " \n",
+ " def len1(self):\n",
+ " self.l = len(self.str1)\n",
+ " return self.l\n",
+ " \n",
+ " def find(self,i):\n",
+ " if self.str1[i] == self.f:\n",
+ " self.replace(i)\n",
+ " \n",
+ " def replace(self,k):\n",
+ " self.str1[k] = self.r\n",
+ " \n",
+ "#Object declaration\n",
+ "b = fandr()\n",
+ "\n",
+ "#function call\n",
+ "b.accept()\n",
+ "l = b.len1()\n",
+ "sys.stdout.write(\"\\nReplaced text : \")\n",
+ "\n",
+ "for i in range(0,l):\n",
+ " b.find(i)\n",
+ " b.display(i)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Find what (char) _\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Replace with (char) m\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Replaced text : Programer"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.19, Page number: 564<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Largest out of ten numbers.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class num:\n",
+ " def __init__(self):\n",
+ " self.number = [0 for i in range(0,10)]\n",
+ " \n",
+ " def input1(self,i):\n",
+ " self.number[i] = int(raw_input(\"Enter Number (%d) : \"%(i+1)))\n",
+ " return self.number[i]\n",
+ " \n",
+ " def large(self,s,m):\n",
+ " if self.number[s] == m:\n",
+ " sys.stdout.write(\"\\nLargest number : %d\"%(self.number[s]))\n",
+ " return 0\n",
+ " else:\n",
+ " return 1\n",
+ " \n",
+ "#Object declaration\n",
+ "b = num()\n",
+ "\n",
+ "sum1 = 0\n",
+ "c = 1\n",
+ "\n",
+ "#Sum\n",
+ "for i in range(0,10):\n",
+ " sum1 = sum1 + b.input1(i)\n",
+ " \n",
+ "#largest\n",
+ "for k in range(sum1,0,-1):\n",
+ " for i in range(0,10):\n",
+ " if c == 1:\n",
+ " c = b.large(i,k)\n",
+ " else:\n",
+ " break"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (1) : 125\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (2) : 654\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (3) : 246\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (4) : 945\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (5) : 258\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (6) : 159\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (7) : 845\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (8) : 940\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (9) : 944\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number (10) : 485\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Largest number : 945"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.20, Page number: 567<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constructor to initialize the class member variables \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class num:\n",
+ " #Constructor\n",
+ " def __init__(self):\n",
+ " sys.stdout.write(\"\\nConstructor called\")\n",
+ " self.x = 5\n",
+ " self.a = 0\n",
+ " self.b = 1\n",
+ " self.c = 2\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"\\nx = %d a = %d b = %d c = %d\"%(self.x,self.a,self.b,self.c))\n",
+ " \n",
+ "#Object declaration\n",
+ "x = num()\n",
+ "\n",
+ "#Function call\n",
+ "x.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Constructor called\n",
+ "x = 5 a = 0 b = 1 c = 2"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.21, Page number: 569<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constructor with arguments \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class num:\n",
+ " #Constructor\n",
+ " def __init__(self,m,j,k):\n",
+ " self.a = m\n",
+ " self.b = j\n",
+ " self.c = k\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"\\na = %d b = %d c = %d\"%(self.a,self.b,self.c))\n",
+ " \n",
+ " \n",
+ "#Object declaration\n",
+ "x = num(4,5,7)\n",
+ "y = num(1,2,8)\n",
+ "\n",
+ "#Function call\n",
+ "x.show()\n",
+ "y.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "a = 4 b = 5 c = 7\n",
+ "a = 1 b = 2 c = 8"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.22, Page number: 571<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Constructor overloading\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class num:\n",
+ " def __init__(self,m = None,j = None,k = None):\n",
+ " if m and j and k is not None:\n",
+ " sys.stdout.write(\"Constructor with three arguments\")\n",
+ " self.a = m\n",
+ " self.b = j\n",
+ " self.c = k\n",
+ " \n",
+ " else:\n",
+ " if m and j is not None:\n",
+ " sys.stdout.write(\"Constructor with two arguments\")\n",
+ " self.a = m\n",
+ " self.b = j\n",
+ " self.c = ''\n",
+ " else:\n",
+ " if m == j == k == None:\n",
+ " sys.stdout.write(\"Constructor without arguments\")\n",
+ " self.a = 0\n",
+ " self.b = 0\n",
+ " self.c = ''\n",
+ " \n",
+ " \n",
+ " def show(self): \n",
+ " sys.stdout.write(\"\\na = %d b = %f c = \"%(self.a,self.b))\n",
+ " print self.c\n",
+ " \n",
+ " \n",
+ "#Object declaration\n",
+ "\n",
+ "x = num(4,5.5,'A')\n",
+ "x.show()\n",
+ "\n",
+ "y = num(1,2.2)\n",
+ "y.show()\n",
+ "\n",
+ "z = num()\n",
+ "z.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Constructor with three arguments\n",
+ "a = 4 b = 5.500000 c = A\n",
+ "Constructor with two arguments\n",
+ "a = 1 b = 2.200000 c = \n",
+ "Constructor without arguments\n",
+ "a = 0 b = 0.000000 c = \n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.23, Page number: 573<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Default arguments in constructor. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class power:\n",
+ " def __init__(self,n = 9,p = 3):\n",
+ " self.num = n\n",
+ " self.power = p\n",
+ " self.ans = pow(n,p)\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"\\n%d raise to %d is %d\"%(self.num,self.power,self.ans))\n",
+ " \n",
+ " \n",
+ "#Object declaration\n",
+ "p1 = power()\n",
+ "p2 = power(5)\n",
+ "\n",
+ "#Result\n",
+ "p1.show()\n",
+ "p2.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "9 raise to 3 is 729\n",
+ "5 raise to 3 is 125"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.24, Page number: 575<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Object with reference to constructor. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class num:\n",
+ " #There is no overloading concept in python\n",
+ " def __init__(self,k=None,j=None):\n",
+ " if k is not None:\n",
+ " self.n = k\n",
+ " return\n",
+ " else:\n",
+ " if j is not None:\n",
+ " self.n = j.n\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"%d\"%(self.n))\n",
+ " \n",
+ "#Object creation\n",
+ "J = num(50)\n",
+ "K = num(J.n)\n",
+ "L = num()\n",
+ "L = J\n",
+ "M = num()\n",
+ "M = J\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nObject J Value of n : \")\n",
+ "J.show()\n",
+ "sys.stdout.write(\"\\nObject K Value of n : \")\n",
+ "K.show()\n",
+ "sys.stdout.write(\"\\nObject L Value of n : \")\n",
+ "L.show()\n",
+ "sys.stdout.write(\"\\nObject M Value of n : \")\n",
+ "M.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Object J Value of n : 50\n",
+ "Object K Value of n : 50\n",
+ "Object L Value of n : 50\n",
+ "Object M Value of n : 50"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.25, Page number: 576<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Destructors\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "c = 0\n",
+ "\n",
+ "#Class definition\n",
+ "class num:\n",
+ " def __init__(self,c):\n",
+ " c = c + 1\n",
+ " sys.stdout.write(\"\\nObject Created : Object(%d)\"%(c))\n",
+ " \n",
+ " \n",
+ " def __exit__(self, type, value, traceback,c):\n",
+ " self.package_obj.cleanup()\n",
+ " sys.stdout.write(\"\\nObject Released : Object(%d)\"%(c))\n",
+ " c = c - 1\n",
+ " \n",
+ " \n",
+ "#Object creation\n",
+ "sys.stdout.write(\"\\nIn main()\\n\")\n",
+ "a = num(c)\n",
+ "b = num(c)\n",
+ "\n",
+ "sys.stdout.write(\"\\nIn Block A()\\n\")\n",
+ "c = num(c)\n",
+ "\n",
+ "sys.stdout.write(\"\\n\\nAgain in main()\\n\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "In main()\n",
+ "\n",
+ "Object Created : Object(1)\n",
+ "Object Created : Object(1)\n",
+ "In Block A()\n",
+ "\n",
+ "Object Created : Object(1)\n",
+ "\n",
+ "Again in main()\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.26, Page number: 579<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Overload unary ++ operator\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class num:\n",
+ " def input1(self):\n",
+ " self.a = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " self.b = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " self.c = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " self.d = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"\\nA = %d B = %d C = %d D = %d\"%(self.a,self.b,self.c,self.d))\n",
+ " \n",
+ " def operatorplusplus(self):\n",
+ " self.a = self.a + 1\n",
+ " self.b = self.b + 1\n",
+ " self.c = self.c + 1\n",
+ " self.d = self.d + 1\n",
+ " \n",
+ "#Object creation\n",
+ "X = num()\n",
+ "\n",
+ "X.input1()\n",
+ "sys.stdout.write(\"\\nBefore Overloading X : \")\n",
+ "X.show()\n",
+ "\n",
+ "#There is no operator overloading in python\n",
+ "X.operatorplusplus()\n",
+ "sys.stdout.write(\"\\nAfter Overloading X : \")\n",
+ "X.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 9\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Before Overloading X : \n",
+ "A = 4 B = 5 C = 8 D = 9\n",
+ "After Overloading X : \n",
+ "A = 5 B = 6 C = 9 D = 10"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.27, Page number: 581<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Overload + binary operator\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class num:\n",
+ " def input1(self):\n",
+ " self.a = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " self.b = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " self.c = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " self.d = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"A = %d B = %d C = %d D = %d\"%(self.a,self.b,self.c,self.d))\n",
+ " \n",
+ " def operatorplus(self,t):\n",
+ " tmp = num()\n",
+ " tmp.a = self.a + t.a\n",
+ " tmp.b = self.b + t.b\n",
+ " tmp.c = self.c + t.c\n",
+ " tmp.d = self.d + t.d\n",
+ " return tmp\n",
+ " \n",
+ "#Object creation\n",
+ "X = num()\n",
+ "Y = num()\n",
+ "Z = num()\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nObject X \")\n",
+ "X.input1()\n",
+ "sys.stdout.write(\"\\nObject Y \")\n",
+ "Y.input1()\n",
+ "\n",
+ "Z = X.operatorplus(Y)\n",
+ "\n",
+ "sys.stdout.write(\"\\nX : \")\n",
+ "X.show()\n",
+ "sys.stdout.write(\"\\nY : \")\n",
+ "Y.show()\n",
+ "sys.stdout.write(\"\\nZ : \")\n",
+ "Z.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Object X "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Object Y "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "X : A = 1 B = 4 C = 2 D = 1\n",
+ "Y : A = 2 B = 5 C = 4 D = 2\n",
+ "Z : A = 3 B = 9 C = 6 D = 3"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.28, Page number: 583<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Multiplication using an integer and object. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class definition\n",
+ "class num:\n",
+ " def input1(self):\n",
+ " self.a = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " self.b = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " self.c = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " self.d = int(raw_input(\"Enter Values for a,b,c and d : \"))\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"A = %d B = %d C = %d D = %d\"%(self.a,self.b,self.c,self.d))\n",
+ " \n",
+ "def operatormul(a,t):\n",
+ " tmp = num()\n",
+ " tmp.a = a * t.a\n",
+ " tmp.b = a * t.b\n",
+ " tmp.c = a * t.c\n",
+ " tmp.d = a * t.d\n",
+ " return tmp\n",
+ "\n",
+ "#Result\n",
+ "X = num()\n",
+ "Z = num()\n",
+ "\n",
+ "sys.stdout.write(\"\\nObject X \")\n",
+ "X.input1()\n",
+ "\n",
+ "Z = operatormul(3,X)\n",
+ "sys.stdout.write(\"\\nX : \")\n",
+ "X.show()\n",
+ "sys.stdout.write(\"\\nZ : \")\n",
+ "Z.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Object X "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a,b,c and d : 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "X : A = 1 B = 2 C = 2 D = 3\n",
+ "Z : A = 3 B = 6 C = 6 D = 9"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.29, Page number: 585<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Inheritance\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Class declaration\n",
+ "class one:\n",
+ " def __init__(self):\n",
+ " self.a = 0\n",
+ " self.b = 0\n",
+ " \n",
+ "class two(one):\n",
+ " def __init__(self):\n",
+ " one.__init__(self)\n",
+ " self.c = 0\n",
+ " self.d = 0\n",
+ " \n",
+ " def input1(self):\n",
+ " self.a = int(raw_input(\"Enter values for a,b,c,d : \"))\n",
+ " self.b = int(raw_input(\"Enter values for a,b,c,d : \"))\n",
+ " self.c = int(raw_input(\"Enter values for a,b,c,d : \"))\n",
+ " self.d = int(raw_input(\"Enter values for a,b,c,d : \"))\n",
+ " \n",
+ " def display(self):\n",
+ " sys.stdout.write(\"\\na = %d b = %d c = %d d = %d\"%(self.a,self.b,self.c,self.d))\n",
+ " \n",
+ "#Object declaration\n",
+ "a = two()\n",
+ "\n",
+ "#Result\n",
+ "a.input1()\n",
+ "a.display()\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter values for a,b,c,d : 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter values for a,b,c,d : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter values for a,b,c,d : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter values for a,b,c,d : 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "a = 2 b = 5 c = 4 d = 7"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 16.30, Page number: 586<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Member function using pointer\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#class declaration\n",
+ "class super1:\n",
+ " def display(self):\n",
+ " sys.stdout.write(\"\\nIn function display() class super\")\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"\\nIn function show() class super\")\n",
+ " \n",
+ "class sub(super1):\n",
+ " def display(self):\n",
+ " sys.stdout.write(\"\\nIn function display() class sub\")\n",
+ " \n",
+ " def show(self):\n",
+ " sys.stdout.write(\"\\nIn function show() class sub\")\n",
+ " \n",
+ "#Object declaration\n",
+ "S = super1()\n",
+ "A = sub()\n",
+ "\n",
+ "#There is no pointer concept in python\n",
+ "S.display()\n",
+ "S.show()\n",
+ "\n",
+ "sys.stdout.write(\"\\n\\nNow Pointer point points to derived class sub\\n\")\n",
+ "A.display()\n",
+ "A.show()"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "In function display() class super\n",
+ "In function show() class super\n",
+ "\n",
+ "Now Pointer point points to derived class sub\n",
+ "\n",
+ "In function display() class sub\n",
+ "In function show() class sub"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Programming_in_C_using_ANSI_C/KamthaneChapter3.ipynb b/Programming_in_C_using_ANSI_C/KamthaneChapter3.ipynb new file mode 100755 index 00000000..880e4fac --- /dev/null +++ b/Programming_in_C_using_ANSI_C/KamthaneChapter3.ipynb @@ -0,0 +1,1060 @@ +{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 3: Operators and Expressions<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.1, Page number: 22<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to demonstrate the use of Comma operator\n",
+ "\n",
+ "#Result\n",
+ "print \"Addition = \",2+3,\" \\nSubtraction = \",5-4"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Addition = 5 \n",
+ "Subtraction = 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.2, Page number: 23<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to demonstrate the use of Conditional operator with two values\n",
+ "\n",
+ "#Result\n",
+ "#in python if..else statement can be written similar to conditional operator\n",
+ "#prints Result = 4 if 2 == 3, otherwise Result = 5\n",
+ "\n",
+ "print \"Result = \",4 if 2==3 else 5"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Result = 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.3, Page number: 23<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to use Conditional operator with two statements\n",
+ "\n",
+ "#Result\n",
+ "#in python if..else statement can be written similar to conditional operator\n",
+ "#prints True if 3>2, otherwise prints False\n",
+ "\n",
+ "print \"True\" if 3>2 else \"False\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "True\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.4, Page number: 25<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to use increment operator as prefix\n",
+ "\n",
+ "#Variable declaration\n",
+ "x = 10\n",
+ "y = 20\n",
+ "\n",
+ "#Calculation\n",
+ "#there is no ++/-- operator in python\n",
+ "\n",
+ "z = x * y\n",
+ "y += 1\n",
+ "a = x * y\n",
+ "\n",
+ "#Result\n",
+ "print z,\" \",a"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "200 210\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.5, Page number: 25<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to use increment operator as prefix\n",
+ "\n",
+ "#Variable declaration\n",
+ "x = 10\n",
+ "y = 20\n",
+ "\n",
+ "#Calculation\n",
+ "#there is no ++/-- operator in python\n",
+ "\n",
+ "y += 1\n",
+ "z = x * y\n",
+ "a = x * y\n",
+ "\n",
+ "#Result\n",
+ "print z,\" \",a"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "210 210\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.6, Page number: 26<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to find the size and address of integer and float variables\n",
+ "\n",
+ "#import python module\n",
+ "#sys python module is required for getsizeof() function.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable declaration\n",
+ "#No specific float type variable declaration is available in python. If we\n",
+ "#assign a floating point value to a variable,\n",
+ "#it will be treated as floating point variable\n",
+ "x = 2\n",
+ "y = 2.0\n",
+ "\n",
+ "#Result\n",
+ "#In python, integer variable uses 12 bytes and float variable uses 16 bytes of\n",
+ "#memory to store the variables\n",
+ "#sys.getsizeof() function returns the size of variable in bytes which is similar\n",
+ "#to sizeof() operator\n",
+ "#id() function returns the address of variables which is similar to '&' operator\n",
+ "\n",
+ "print \"Size (x) = \",sys.getsizeof(x)\n",
+ "print \"Size (y) = \",sys.getsizeof(y)\n",
+ "print \"Address of x = \",id(x),\"and y = \",id(y)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Size (x) = 12\n",
+ "Size (y) = 16\n",
+ "Address of x = 5626076 and y = 54761072\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.7, Page number: 27<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to use various relational operators and display their return values\n",
+ "\n",
+ "#Result\n",
+ "#int() function is used to convert the boolean return value of the relational\n",
+ "#expression to integer/binary\n",
+ "\n",
+ "print \"Condition : Return Values\"\n",
+ "print \"10 != 10 : \",int(10 != 10)\n",
+ "print \"10 == 10 : \",int(10 == 10)\n",
+ "print \"10 >= 10 : \",int(10 >= 10)\n",
+ "print \"10 <= 100 : \",int(10 <= 100)\n",
+ "print \"10 != 9 : \",int(10 != 9)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Condition : Return Values\n",
+ "10 != 10 : 0\n",
+ "10 == 10 : 1\n",
+ "10 >= 10 : 1\n",
+ "10 <= 100 : 1\n",
+ "10 != 9 : 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.8, Page number: 28<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program uses conditional operator to determine the value of 'b'depending the inputted value of 'a'\n",
+ "\n",
+ "#Reads Input value for a\n",
+ "\n",
+ "a = raw_input(\"Enter Any Integer either above 5 or below 5 :-\")\n",
+ "a = int(a)\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#Calculation\n",
+ "#Assigns b = 3 if a > 5, otherwise b = 4\n",
+ "b = 3 if a > 5 else 4\n",
+ "\n",
+ "#Result\n",
+ "print \"Calculated Value of b is :- \",b"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Any Integer either above 5 or below 5 :-6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Calculated Value of b is :- 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.9, Page number: 28<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to determine the value of 'b' using conditional operator\n",
+ "\n",
+ "#Input\n",
+ "\n",
+ "a = raw_input(\"Enter Any Integer either above 5 or below 5 :-\")\n",
+ "a = int(a)\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#Calculation\n",
+ "#Assigns b = 3 if a == 5, otherwise b = 4\n",
+ "b = 3 if a == 5 else 4\n",
+ "\n",
+ "#Result\n",
+ "print \"Calculated Value of b is :- \",b"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Any Integer either above 5 or below 5 :-3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Calculated Value of b is :- 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.10, Page number: 29<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read three variables x, y and z and Using conditional statements, evaluate\n",
+ "#values of variables a, b and c.\n",
+ "#Perform the sum with two sets of variables. Check whether the sums are equal or not\n",
+ "#and print appropriate messages.\n",
+ "\n",
+ "\n",
+ "#Reads three Input values for x,y and z\n",
+ "\n",
+ "x = raw_input(\"Enter Value of x \")\n",
+ "x = int(x)\n",
+ "\n",
+ "y = raw_input(\"Enter Value of y \")\n",
+ "y = int(y)\n",
+ "\n",
+ "z = raw_input(\"Enter Value of z \")\n",
+ "z = int(z)\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#Calculation\n",
+ "#Assigns a = 3 if x >= 5, otherwise a = 4\n",
+ "a = 3 if x >= 5 else 4\n",
+ "\n",
+ "#Result\n",
+ "print \"Calculated Value of a is :- \",a\n",
+ "\n",
+ "#Calculation\n",
+ "#Assigns b = 10 if y <= 8, otherwise b = 9\n",
+ "b = 10 if y <= 8 else 9\n",
+ "\n",
+ "#Result\n",
+ "print \"Calculated Value of b is :- \",b\n",
+ "\n",
+ "#Calculation\n",
+ "#Assigns c = 20 if z == 10, otherwise c = 30\n",
+ "c = 20 if z == 10 else 30\n",
+ "\n",
+ "#Result\n",
+ "print \"Calculated Value of c is :- \",c\n",
+ "\n",
+ "#Calculation\n",
+ "m = x + y + z\n",
+ "n = a + b + c\n",
+ "\n",
+ "#Result\n",
+ "print \"Addition of x,y,z is \",m,\"(m)\"\n",
+ "print \"Addition of a,b,c is \",n,\"(n)\"\n",
+ "print \"m & n NOT EQUAL\" if m != n else \"m & n ARE EQUAL\""
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Value of x 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Value of y 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Value of z 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Calculated Value of a is :- 3\n",
+ "Calculated Value of b is :- 10\n",
+ "Calculated Value of c is :- 30\n",
+ "Addition of x,y,z is 14 (m)\n",
+ "Addition of a,b,c is 43 (n)\n",
+ "m & n NOT EQUAL\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.11, Page number: 30<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Use of logical operators\n",
+ "\n",
+ "#Result\n",
+ "#In python, not equal to can be represented using both != and <>.\n",
+ "\n",
+ "print \"Condition : Return Values\"\n",
+ "print \"5 > 3 && 5 < 10 : \",int(5 > 3 & 5 < 10)\n",
+ "print \"8 > 5 || 8 < 2 : \",int(8 > 5 | 8 < 2)\n",
+ "print \"!(8 == 8) : \",int(8 != 8)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Condition : Return Values\n",
+ "5 > 3 && 5 < 10 : 1\n",
+ "8 > 5 || 8 < 2 : 0\n",
+ "!(8 == 8) : 0\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.12, Page number: 30<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print logic 1 if input character is capital otherwise 0\n",
+ "\n",
+ "#Import\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "#raw_input() function is used to read a character from the keyboard in Python 2.7\n",
+ "#ord() function converts the character into its corresponding ASCII integer\n",
+ "\n",
+ "\n",
+ "#Reads Input value for x\n",
+ "\n",
+ "x = raw_input(\"Enter a Character : \")\n",
+ "x = ord(x)\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#Condition\n",
+ "y = 1 if (x >= 65) and (x <= 90) else 0\n",
+ "\n",
+ "#Result\n",
+ "print \"Y : \",y"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Character : A\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Y : 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.13, Page number: 31<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display logic 0 if one reads a character through keyboard otherwise logic 1.\n",
+ "#ASCII values for 0 to 9 are 48 to 57 respectively\n",
+ "\n",
+ "#Variable initialization\n",
+ "#raw_input() function is used to read a character from the keyboard in Python 2.7\n",
+ "#ord() function converts the character into its corresponding ASCII integer\n",
+ "\n",
+ "#Reads Input value for x\n",
+ "\n",
+ "x = raw_input(\"Enter The Character or Integer : \")\n",
+ "x = ord(x)\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#Condition\n",
+ "y = 1 if (x >= 48) and (x <= 57) else 0\n",
+ "\n",
+ "#Result\n",
+ "print \"Value of Y = \",y"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter The Character or Integer : A\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of Y = 0\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.14, Page number: 32<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display 1 if inputted number is between 1-100 otherwise 0.\n",
+ "#Use the logical AND operator\n",
+ "\n",
+ "#Variable initialization\n",
+ "#Reads Input value for x\n",
+ "\n",
+ "x = raw_input(\"Enter numbers : \")\n",
+ "x = int(x)\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#Condition\n",
+ "z = 1 if (x >= 1) and (x <= 100) else 0\n",
+ "\n",
+ "#Result\n",
+ "print \"Z = \",z"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter numbers : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Z = 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.15, Page number: 32<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display 1 if inputted number is either 1 or 100 otherwise 0.\n",
+ "#Use the logical OR operator\n",
+ "\n",
+ "#Variable initialization\n",
+ "#Reads Input value for x\n",
+ "\n",
+ "x = raw_input(\"Enter numbers : \")\n",
+ "x = int(x)\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#Condition\n",
+ "z = 1 if (x == 1) or (x == 100) else 0\n",
+ "\n",
+ "#Result\n",
+ "print \"Z = \",z"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter numbers : 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Z = 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.16, Page number: 33<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display 1 if inputted number is except 100 otherwise 0.\n",
+ "#Use the logical NOT operator\n",
+ "\n",
+ "#Variable initialization\n",
+ "#Reads Input value for x\n",
+ "\n",
+ "x = raw_input(\"Enter number : \")\n",
+ "x = int(x)\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#Condition\n",
+ "z = 1 if (x != 100) else 0\n",
+ "\n",
+ "#Result\n",
+ "print \"Z : \",z"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter number : 100\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Z : 0\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.17, Page number: 33<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Shift inputted data by two bits right\n",
+ "\n",
+ "#Variable initialization\n",
+ "#Reads Input value for x\n",
+ "\n",
+ "x = raw_input(\"Read The Integer from keyboard (x) :- \")\n",
+ "x = int(x)\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#bitwise shifting\n",
+ "x >>= 2\n",
+ "y = x\n",
+ "\n",
+ "#Result\n",
+ "print \"The Right shifted data is = \",y"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Read The Integer from keyboard (x) :- 8\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Right shifted data is = 2\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.18, Page number: 34<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Shift inputted data by two bits to the left\n",
+ "\n",
+ "#Variable initialization\n",
+ "#Reads Input value for x\n",
+ "\n",
+ "x = raw_input(\"Read The Integer from keyboard (x) :- \")\n",
+ "x = int(x)\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#bitwise shifting\n",
+ "x <<= 3\n",
+ "y = x\n",
+ "\n",
+ "#Result\n",
+ "print \"The Left shifted data is = \",y"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Read The Integer from keyboard (x) :- 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Left shifted data is = 16\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.19, Page number: 35<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Use bitwise AND operator between the two integers and display the results\n",
+ "\n",
+ "#Variable initialization\n",
+ "#Reads Input value for x\n",
+ "\n",
+ "a = raw_input(\"Read The Integers from keyboard (a & b) :- \")\n",
+ "a = int(a)\n",
+ "\n",
+ "b = raw_input(\"Read The Integers from keyboard (a & b) :- \")\n",
+ "b = int(b)\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#bitwise operation\n",
+ "c = a & b\n",
+ "\n",
+ "#Result\n",
+ "print \"The Answer after ANDing is (C) = \",c"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Read The Integers from keyboard (a & b) :- 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Read The Integers from keyboard (a & b) :- 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Answer after ANDing is (C) = 0\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.20, Page number: 37<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#operate OR operation on two integers and display the result\n",
+ "\n",
+ "#Variable initialization\n",
+ "#Reads Input value for x\n",
+ "\n",
+ "a = raw_input(\"Read The Integers from keyboard (a & b) :- \")\n",
+ "a = int(a)\n",
+ "\n",
+ "b = raw_input(\"Read The Integers from keyboard (a & b) :- \")\n",
+ "b = int(b)\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#bitwise operation\n",
+ "c = a | b\n",
+ "\n",
+ "#Result\n",
+ "print \"The Oring operation betwen a & b in c = \",c"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Read The Integers from keyboard (a & b) :- 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Read The Integers from keyboard (a & b) :- 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Oring operation betwen a & b in c = 12\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 3.21, Page number: 38<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Exclusive OR operation between the two integers and display the result\n",
+ "\n",
+ "#Variable initialization\n",
+ "#Reads Input value for x\n",
+ "\n",
+ "a = raw_input(\"Read The Integers from keyboard (a & b) :- \")\n",
+ "a = int(a)\n",
+ "\n",
+ "b = raw_input(\"Read The Integers from keyboard (a & b) :- \")\n",
+ "b = int(b)\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#bitwise operation\n",
+ "c = a ^ b\n",
+ "\n",
+ "#Result\n",
+ "print \"The data after Exclusive OR operation is in c = \",c"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Read The Integers from keyboard (a & b) :- 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Read The Integers from keyboard (a & b) :- 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The data after Exclusive OR operation is in c = 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Programming_in_C_using_ANSI_C/KamthaneChapter4.ipynb b/Programming_in_C_using_ANSI_C/KamthaneChapter4.ipynb new file mode 100755 index 00000000..758457a3 --- /dev/null +++ b/Programming_in_C_using_ANSI_C/KamthaneChapter4.ipynb @@ -0,0 +1,972 @@ +{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 4: Input & Output in C<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.1, Page number: 47<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#show the effect of mismatch of data types\n",
+ "\n",
+ "#Reads Input value for a\n",
+ "\n",
+ "a = raw_input(\"Enter value of 'A' : \")\n",
+ "a = int(a)\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#Result\n",
+ "print \"A = \",a\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value of 'A' : 8\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A = 8\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.2, Page number: 47<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#show the effect of mismatch of data types\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "#Reads Input value for a\n",
+ "\n",
+ "a = raw_input(\"Enter value of 'A' : \")\n",
+ "a = int(a)\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#there is no char datatype of 1 byte size in python.\n",
+ "#python has string variable only.\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "sys.stdout.write(\"A = %d\"%(a%256))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value of 'A' : 256\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A = 0"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.3, Page number: 49<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#show the effect of various escape sequences\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "a = 1\n",
+ "b = a + 1\n",
+ "c = b + 1\n",
+ "d = c + 1\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write ('\\tA = %d\\nB = %d \\'C = %d\\''%(a,b,c))\n",
+ "sys.stdout.write ('\\n**D = %d**'%(d))\n",
+ "sys.stdout.write ('\\nA = %d B = %d'%(a,b))\n",
+ "sys.stdout.write ('\\r******')\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\tA = 1\n",
+ "B = 2 'C = 3'\n",
+ "**D = 4**\n",
+ "A = 1 B = 2******"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.4, Page number: 50<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#print the third power of 2 using pow() function.\n",
+ "#assume the floating point numbers\n",
+ "\n",
+ "#Variable initialization\n",
+ "x = 2.0\n",
+ "y = 3.0\n",
+ "\n",
+ "#Result\n",
+ "print '%lf raised to %lf is %lf\\n' %(x,y,pow(x,y))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2.000000 raised to 3.000000 is 8.000000\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.5, Page number: 50<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#print the third power of 10 using pow() function.\n",
+ "#assume the floating point numbers\n",
+ "\n",
+ "#Variable initialization\n",
+ "p = 3\n",
+ "\n",
+ "#Result\n",
+ "#There is no pow10() function in Python.\n",
+ "print 'Ten raised to %lf is %lf\\n' %(p,pow(10,p))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Ten raised to 3.000000 is 1000.000000\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.6, Page number: 51<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#detect an error while inputting a data. Use return value of scanf() statement.\n",
+ "\n",
+ "#Variable initialization\n",
+ "#in python,the map(int,a.split()) function splits the input characters\n",
+ "#and converts it into integers and returns a value if all the values are integers\n",
+ "#otherwise an exception will be generated and initializes v as 0.\n",
+ "#using exception handling, this result can be achieved.\n",
+ "\n",
+ "\n",
+ "#Exception handling\n",
+ "try:\n",
+ " a = raw_input(\"Enter value of 'A','B' & 'C' : \")\n",
+ " v = map(int,a.split())\n",
+ "except:\n",
+ " v = 0\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#Result\n",
+ "print '\\nError In Inputting.' if v < 3 else '\\nValues Successfully read.'\n",
+ "\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value of 'A','B' & 'C' : 1 2 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Values Successfully read.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.7, Page number: 51<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find length of the string using print() function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "#in python, print()or write() function would not return the number of characters\n",
+ "#written to the output buffer. so len() function is used to find the length.\n",
+ "\n",
+ "nm = raw_input(\"Enter String : \")\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "l = len(nm)\n",
+ "\n",
+ "#Result\n",
+ "print '\\nLength = ',l\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter String : HELLO\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Length = 5\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.8, Page number: 52<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Perform addition of two numbers\n",
+ "\n",
+ "#Variable initialization\n",
+ "a = raw_input(\"ENTER TWO VALUES \")\n",
+ "b = raw_input(\"ENTER TWO VALUES \")\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "c = int(a) + int(b)\n",
+ "\n",
+ "#Result\n",
+ "print '\\nSUM IS = ',c\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ENTER TWO VALUES 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ENTER TWO VALUES 8\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "SUM IS = 13\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.9, Page number: 52<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find the square of the given number\n",
+ "\n",
+ "#Variable initialization\n",
+ "a = raw_input(\"ENTER ANY NUMBER \")\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "c = int(a) * int(a)\n",
+ "\n",
+ "#Result\n",
+ "print '\\nSQUARE OF GIVEN NUMBER = ',c\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ENTER ANY NUMBER 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "SQUARE OF GIVEN NUMBER = 25\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.10, Page number: 53<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate average of three real numbers.\n",
+ "\n",
+ "#Variable initialization\n",
+ "\n",
+ "a = raw_input(\"ENTER THREE FLOAT NUMBERS : \")\n",
+ "b = raw_input(\"ENTER THREE FLOAT NUMBERS : \")\n",
+ "c = raw_input(\"ENTER THREE FLOAT NUMBERS : \")\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "d = float(a) + float(b) + float(c)\n",
+ "\n",
+ "#Result\n",
+ "print '\\nAverage of Given Numbers : ',d/3\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ENTER THREE FLOAT NUMBERS : 2.5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ENTER THREE FLOAT NUMBERS : 3.5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ENTER THREE FLOAT NUMBERS : 4.5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Average of Given Numbers : 3.5\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.11, Page number: 53<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print message with inputted name\n",
+ "\n",
+ "#Variable initialization\n",
+ "yourname = raw_input(\"Enter Your Name : \")\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#Result\n",
+ "print \"\\nWel Come %s to 'C' Programming Course\"%(yourname)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Your Name : Ajay\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Wel Come Ajay to 'C' Programming Course\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.12, Page number: 54<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Input a single character and display it\n",
+ "\n",
+ "#Variable initialization\n",
+ "ch = raw_input(\"Enter any character : \")\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#Result\n",
+ "print \"\\nYour Entered Character is : %c\"%(ch)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any character : C\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Your Entered Character is : C\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.13, Page number: 54<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Swap the values of two variables without using third variable.\n",
+ "\n",
+ "#Variable initialization\n",
+ "a = 7\n",
+ "b = 4\n",
+ "\n",
+ "print \"\\n A = %d B = %d\"%(a,b)\n",
+ "\n",
+ "#Swapping\n",
+ "a = a + b\n",
+ "b = a - b\n",
+ "a = a - b\n",
+ "\n",
+ "#Result\n",
+ "print \"Now A = %d B = %d\"%(a,b)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " A = 7 B = 4\n",
+ "Now A = 4 B = 7\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.14, Page number: 55<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Accept characters through keyboard using getchar() function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "#in python, string is an object. It has no nul-termination character.\n",
+ "#raw_input() reads the string constant from the stdin and the write() function\n",
+ "#prints it to the stdout based on the attribute length.\n",
+ "\n",
+ "ch = raw_input(\" \")\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(ch)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " COMPILER\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "COMPILER"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.15, Page number: 56<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print the characters using putchar() function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "#in python, string is an object. It has no nul-termination character.\n",
+ "#raw_input() reads the string constant from the stdin.\n",
+ "\n",
+ "ch = raw_input(\"Enter Text Here : \")\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#Result\n",
+ "#using for loop, the string can be displayed character by character.\n",
+ "\n",
+ "sys.stdout.write(\"The Entered Text : \")\n",
+ "for c in ch:\n",
+ " sys.stdout.write(c)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Text Here : Characters\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Entered Text : Characters"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.16, Page number: 56<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Show the effect of getche() and getch() functions\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "#in python, there is no equivalent function for getche() and getch() functions.\n",
+ "#raw_input() function reads the characters and terminates by pressing the\n",
+ "#enter key\n",
+ "\n",
+ "ch = raw_input(\"Enter any two alphabetics \")\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "#Result\n",
+ "sys.stdout.write(ch)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any two alphabetics A \n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A "
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.17, Page number: 57<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read and display the character using getch() and putch() functions\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "#in python, there is no equivalent function for getch() function.\n",
+ "#raw_input() function reads the characters and terminates by pressing the\n",
+ "#enter key\n",
+ "\n",
+ "ch = raw_input(\"Press any key to continue \")\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"You Pressed : %s\"%(ch))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Press any key to continue 9\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "You Pressed : 9"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.18, Page number: 57<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Accept string through the keyboard using gets() function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "#in python, raw_input() function reads the string and terminates by pressing the\n",
+ "#enter key and write() function displays the string.\n",
+ "\n",
+ "ch = raw_input(\"Enter the String : \")\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Entered String : %s\"%(ch))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the String : USE OF GETS()\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entered String : USE OF GETS()"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.19, Page number: 58<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print the accepted character using puts() function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "#in python, raw_input() function reads the string and terminates by pressing the\n",
+ "#enter key and print() function displays the string.\n",
+ "\n",
+ "ch = raw_input(\"Enter the String : \")\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#Result\n",
+ "print\"Entered String : \"\n",
+ "print ch\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the String : puts is in use.\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Entered String : \n",
+ "puts is in use.\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 4.20, Page number: 58<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#read string using cgets() and display it using cputs()\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "#in python, raw_input() function reads the string and terminates by pressing the\n",
+ "#enter key and print() function displays the string.\n",
+ "#in python, string is an object.\n",
+ "\n",
+ "t = raw_input(\"Enter Text Here : \")\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#Result\n",
+ "print \"Your Entered Text : %s\"%(t)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Text Here : How are you?\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Your Entered Text : How are you?\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Programming_in_C_using_ANSI_C/KamthaneChapter5.ipynb b/Programming_in_C_using_ANSI_C/KamthaneChapter5.ipynb new file mode 100755 index 00000000..dac1632e --- /dev/null +++ b/Programming_in_C_using_ANSI_C/KamthaneChapter5.ipynb @@ -0,0 +1,2624 @@ +{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 5.1: Decision Statements<h1>\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.1, Page number: 64<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Check whether the entered number is less than 10? if yes, display the same\n",
+ "\n",
+ "#Variable initialization\n",
+ "v = raw_input(\"Enter the number : \")\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "v = int(v)\n",
+ "\n",
+ "#Result\n",
+ "if v < 10 :\n",
+ " print '\\nNumber entered is less than 10'\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number : 9\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Number entered is less than 10\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.2, Page number: 65<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Check equivalence of two numbers. Use if statement.\n",
+ "\n",
+ "#Variable initialization\n",
+ "\n",
+ "m = raw_input(\"Enter two numbers : \")\n",
+ "n = raw_input(\"Enter two numbers : \")\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "m = int(m)\n",
+ "n = int(n)\n",
+ "\n",
+ "#Result\n",
+ "if m - n == 0 :\n",
+ " print '\\nTwo numbers are equal'\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter two numbers : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter two numbers : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Two numbers are equal\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.3, Page number: 66<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Check whether the candidate's age is greater than 17 or not. If yes, display\n",
+ "#message \"Eligible for Voting\"\n",
+ "\n",
+ "#Variable initialization\n",
+ "age = raw_input(\"Enter age : \")\n",
+ "age = int(age)\n",
+ "\n",
+ "#In python, raw_input() is used to read values\n",
+ "\n",
+ "#Result\n",
+ "if age > 17 :\n",
+ " print '\\nEligible for Voting.'\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter age : 20\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Eligible for Voting.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.4, Page number: 66<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Use curly brace in the if block. Enter only the three numbers and calculate\n",
+ "#their sum and multiplication\n",
+ "\n",
+ "#Variable initialization\n",
+ "#in python,the map(int,raw_input().split()) function splits the input characters\n",
+ "#and converts it into integers and returns a value if all the values are integers\n",
+ "#otherwise an exception will be generated and initializes v as 0.\n",
+ "#using exception handling, this result can be achieved.\n",
+ "\n",
+ "#Exception handling\n",
+ "try:\n",
+ " #use space to separate the input characters\n",
+ " v = raw_input(\"Enter Three Numbers : \")\n",
+ " a,b,c = map(int,v.split())\n",
+ " x = 3\n",
+ "except:\n",
+ " x = 0\n",
+ "\n",
+ "#Result\n",
+ "#in python, block of statements are identified using indentation\n",
+ " \n",
+ "if x == 3:\n",
+ " print \"Addition : %d\"%(a+b+c)\n",
+ " print \"Multiplication : %d\"%(a*b*c)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three Numbers : 1 2 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Addition : 7\n",
+ "Multiplication : 8\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.5, Page number: 68<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read the values of a,b,c through the keyboard. Add them and after addition\n",
+ "#check if it is in the range of 100 & 200 or not. Print separate message for each.\n",
+ "\n",
+ "\n",
+ "#Variable initialization\n",
+ "a = raw_input(\"Enter Three Numbers a b c : \")\n",
+ "b = raw_input(\"Enter Three Numbers a b c : \")\n",
+ "c = raw_input(\"Enter Three Numbers a b c : \")\n",
+ "\n",
+ "a = int(a)\n",
+ "b = int(b)\n",
+ "c = int(c)\n",
+ "\n",
+ "print 'a = %d b = %d c = %d'%(a,b,c)\n",
+ "#Calculation\n",
+ "d = a + b + c\n",
+ "\n",
+ "#Condition evaluation and Result\n",
+ "if d <= 200 and d >= 100 :\n",
+ " print \"Sum is %d which is in between 100 & 200\"%(d)\n",
+ "else:\n",
+ " print \"\\nSum is %d which is out of range\"%(d)\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three Numbers a b c : 50\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three Numbers a b c : 52\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three Numbers a b c : 54\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a = 50 b = 52 c = 54\n",
+ "Sum is 156 which is in between 100 & 200\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.6, Page number: 68<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find the roots of a quadratic equation by using if else condition\n",
+ "\n",
+ "#Variable initialization\n",
+ "a = raw_input(\"Enter Values for a, b, c : \")\n",
+ "b = raw_input(\"Enter Values for a, b, c : \")\n",
+ "c = raw_input(\"Enter Values for a, b, c : \")\n",
+ "\n",
+ "a = int(a)\n",
+ "b = int(b)\n",
+ "c = int(c)\n",
+ "\n",
+ "#Condition evaluation and Result\n",
+ "if b * b > 4 * a * c :\n",
+ " x1 = b + sqrt(b*b - 4*a*c)/2*a\n",
+ " x2 = b - sqrt(b*b - 4*a*c)/2*a\n",
+ " print \"\\nx1 = %f x2 = %f\"%(x1,x2)\n",
+ "else:\n",
+ " print \"\\nRoots are Imaginary\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a, b, c : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a, b, c : 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Values for a, b, c : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Roots are Imaginary\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.7, Page number: 69<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the square of those numbers only whose least significant digit is 5.\n",
+ "\n",
+ "\n",
+ "#Variable initialization\n",
+ "s = raw_input(\"Enter a Number : \")\n",
+ "s = int(s)\n",
+ "\n",
+ "d = s % 10;\n",
+ "\n",
+ "#Condition evaluation and Result\n",
+ "#There is no increment/decrement operator in python.\n",
+ "if d==5 :\n",
+ " s = s/10\n",
+ " s += 1\n",
+ " print \"\\nSquare = %d%d\"%(s*(s-1),d*d)\n",
+ "else:\n",
+ " print \"\\nInvalid Number\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number : 25\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Square = 625\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.8, Page number: 70<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the salary of medical representative based on the sales. Bonus and\n",
+ "#incentive to be offered to him will be based on total sales. If the sale\n",
+ "#exceeds Rs.100000/- follow the particulars of table (1) otherwise (2)\n",
+ "\n",
+ "# 1. TABLE 2. TABLE\n",
+ "# Basic = Rs. 3000 Basic = Rs. 3000\n",
+ "# HRA = 20% of basic HRA = 20% of basic\n",
+ "# DA = 110% of basic DA = 110% of basic\n",
+ "# Conveyance = Rs. 500 Conveyance = Rs. 500\n",
+ "# Incentive = 10% of sales Incentive = 5% of sales\n",
+ "# Bonus = Rs. 500 Bonus = Rs. 200\n",
+ "\n",
+ "\n",
+ "#Variable initialization\n",
+ "sale = raw_input(\"Enter Total Sales in Rs. : \")\n",
+ "sale = int(sale)\n",
+ "\n",
+ "#Condition evaluation\n",
+ "if sale >= 100000 :\n",
+ " bs = 3000\n",
+ " hra = 20 * bs/100\n",
+ " da = 110 * bs/100\n",
+ " cv = 500\n",
+ " incentive = sale * 10/100\n",
+ " bonus = 500\n",
+ "else:\n",
+ " bs = 3000\n",
+ " hra = 20 * bs/100\n",
+ " da = 110 * bs/100\n",
+ " cv = 500\n",
+ " incentive = sale * 5/100\n",
+ " bonus = 200\n",
+ "\n",
+ "#Result\n",
+ "ts = bs + hra + da + cv + incentive + bonus\n",
+ "print \"\\nTotal Sales : %.2f\"%(sale)\n",
+ "print \"\\nBasic Salary : %.2f\"%(bs)\n",
+ "print \"\\nHra : %.2f\"%(hra)\n",
+ "print \"\\nDa : %.2f\"%(da)\n",
+ "print \"\\nConveyance : %.2f\"%(cv)\n",
+ "print \"\\nIncentive : %.2f\"%(incentive)\n",
+ "print \"\\nBonus : %.2f\"%(bonus)\n",
+ "print \"\\nGross Salary : %.2f\"%(ts)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Total Sales in Rs. : 100000\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Total Sales : 100000.00\n",
+ "\n",
+ "Basic Salary : 3000.00\n",
+ "\n",
+ "Hra : 600.00\n",
+ "\n",
+ "Da : 3300.00\n",
+ "\n",
+ "Conveyance : 500.00\n",
+ "\n",
+ "Incentive : 10000.00\n",
+ "\n",
+ "Bonus : 500.00\n",
+ "\n",
+ "Gross Salary : 17900.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.9, Page number: 72<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate energy bill using the starting and ending meter reading.\n",
+ "#The charges are as follows:\n",
+ "\n",
+ "# No. of Units consumed Rates in (Rs.)\n",
+ "# 200 - 500 3.50\n",
+ "# 100 - 200 2.50\n",
+ "# Less than 100 1.50\n",
+ "\n",
+ "#Variable initialization\n",
+ "initial = raw_input(\"Initial & Final Readings : \")\n",
+ "final = raw_input(\"Initial & Final Readings : \")\n",
+ "\n",
+ "consumed = int(final) - int(initial)\n",
+ "\n",
+ "#Condition evaluation\n",
+ "if consumed >= 200 and consumed <= 500 :\n",
+ " total = consumed * 3.50\n",
+ "else:\n",
+ " if consumed >= 100 and consumed <= 199:\n",
+ " total = consumed * 2.50\n",
+ " else :\n",
+ " if consumed < 100 :\n",
+ " total = consumed * 1.50\n",
+ "\n",
+ "#Result\n",
+ "print \"Total bill for %d unit is %f\"%(consumed,total)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Initial & Final Readings : 1200\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Initial & Final Readings : 1500\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total bill for 300 unit is 1050.000000\n"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.10, Page number: 73<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate energy bill by reading the starting and ending meter reading.\n",
+ "#If the consumed electricity energy is greater than or equal to 200 units\n",
+ "#the rate should be 2.50/unit otherwise 1.50/unit.\n",
+ "\n",
+ "\n",
+ "#Variable initialization\n",
+ "initial = raw_input(\"Initial & Final Readings : \")\n",
+ "final = raw_input(\"Initial & Final Readings : \")\n",
+ "\n",
+ "consumed = int(final) - int(initial)\n",
+ "\n",
+ "#Condition evaluation\n",
+ "if consumed >= 200 :\n",
+ " total = consumed * 2.50\n",
+ "else:\n",
+ " total = consumed * 1.50\n",
+ "\n",
+ "#Result\n",
+ "print \"Total bill for %d unit is %f\"%(consumed,total)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total bill for 100 unit is 150.000000\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.11, Page number: 73<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Sort six numbers and find the largest one by using ladder of if else\n",
+ "\n",
+ "#Variable initialization\n",
+ "a = int(raw_input(\"Enter 1st number : \"))\n",
+ "b = int(raw_input(\"Enter 2nd number : \"))\n",
+ "c = int(raw_input(\"Enter 3rd number : \"))\n",
+ "d = int(raw_input(\"Enter 4th number : \"))\n",
+ "e = int(raw_input(\"Enter 5th number : \"))\n",
+ "f = int(raw_input(\"Enter 6th number : \"))\n",
+ "\n",
+ "#Condition evaluation and Result\n",
+ "if a > b and a > c and a > d and a > e and a > f :\n",
+ " print \"Highest of six Number is : %d\"%(a)\n",
+ "else:\n",
+ " if b > a and b > c and b > d and b > e and b > f :\n",
+ " print \"Highest of six Number is : %d\"%(b)\n",
+ " else:\n",
+ " if c > a and c > b and c > d and c > e and c > f :\n",
+ " print \"Highest of six Number is : %d\"%(c)\n",
+ " else:\n",
+ " if d > a and d > b and d > c and d > e and d > f :\n",
+ " print \"Highest of six Number is : %d\"%(d)\n",
+ " else:\n",
+ " if e > a and e > b and e > c and e > d and e > f :\n",
+ " print \"Highest of six Number is : %d\"%(e)\n",
+ " else:\n",
+ " print \"Highest of six Number is : %d\"%(f)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter 1st number : 52\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter 2nd number : 74\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter 3rd number : 90\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter 4th number : 45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter 5th number : 10\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter 6th number : 22\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Highest of six Number is : 90\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.12, Page number: 74<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find largest number out of three numbers. Read the numbers through the keyboard\n",
+ "\n",
+ "\n",
+ "#Variable initialization\n",
+ "x = int(raw_input(\"\\nEnter Three Numbers x,y,z : \"))\n",
+ "y = int(raw_input(\"\\nEnter Three Numbers x,y,z : \"))\n",
+ "z = int(raw_input(\"\\nEnter Three Numbers x,y,z : \"))\n",
+ "\n",
+ "print \"\\nLargest out of Three Numbers is : \"\n",
+ "\n",
+ "#Condition evaluation and Result\n",
+ "if x > y :\n",
+ " if x > z:\n",
+ " print \"x = %d\\n\"%(x)\n",
+ " else:\n",
+ " print \"z = %d\\n\"%(z)\n",
+ "else:\n",
+ " if z > y:\n",
+ " print \"z = %d\\n\"%(z)\n",
+ " else:\n",
+ " print \"y = %d\\n\"%(y)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Three Numbers x,y,z : 10\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Three Numbers x,y,z : 20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Three Numbers x,y,z : 30\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Largest out of Three Numbers is : \n",
+ "z = 30\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.13, Page number: 75<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find the smallest out of the three numbers.\n",
+ "\n",
+ "\n",
+ "#Variable initialization\n",
+ "a = int(raw_input(\"\\nEnter Three Numbers : \"))\n",
+ "b = int(raw_input(\"\\nEnter Three Numbers : \"))\n",
+ "c = int(raw_input(\"\\nEnter Three Numbers : \"))\n",
+ " \n",
+ "#Condition evaluation and Result\n",
+ "if a < b :\n",
+ " if a < c:\n",
+ " smallest = a\n",
+ " else:\n",
+ " smallest = c\n",
+ "else:\n",
+ " if b < c:\n",
+ " smallest = b\n",
+ " else:\n",
+ " smallest = c\n",
+ "\n",
+ "#Result\n",
+ "print \"The smallest of %d %d %d is %d\\n\"%(a,b,c,smallest)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Three Numbers : 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Three Numbers : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Three Numbers : 8\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The smallest of 1 5 8 is 1\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.14, Page number: 76<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate gross salary for the conditions given below\n",
+ "\n",
+ "# BASIC SALARY(Rs.) DA(Rs.) HRA(Rs.) CONVEYANCE(Rs.)\n",
+ "# >= 5000 110% of basic 20% of basic 500\n",
+ "# bs>=3000 & bs<5000 100% of basic 15% of basic 400\n",
+ "# bs<3000 90% of basic 10% of basic 300\n",
+ "\n",
+ "\n",
+ "#Variable initialization\n",
+ "bs = int(raw_input(\"\\nEnter Basic Salary : \"))\n",
+ "\n",
+ "#Condition evaluation\n",
+ "if bs >= 5000 :\n",
+ " hra = 20 * bs/100\n",
+ " da = 110 * bs/100\n",
+ " cv = 500\n",
+ "else:\n",
+ " if bs >= 3000 and bs < 5000 :\n",
+ " hra = 15 * bs/100\n",
+ " da = 100 * bs/100\n",
+ " cv = 400\n",
+ " else:\n",
+ " if bs < 3000:\n",
+ " hra = 10 * bs/100\n",
+ " da = 90 * bs/100\n",
+ " cv = 300\n",
+ "\n",
+ "#Calculation\n",
+ "ts = bs + hra + da + cv\n",
+ "\n",
+ "#Result\n",
+ "print \"Basic Salary : %5.0f\"%(bs)\n",
+ "print \"Hra : %5.0f\"%(hra)\n",
+ "print \"Da : %5.0f\"%(da)\n",
+ "print \"Conveyance : %5.0f\"%(cv)\n",
+ "print \"Gross Salary : %5.0f\"%(ts)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Basic Salary : 5400\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Basic Salary : 5400\n",
+ "Hra : 1080\n",
+ "Da : 5940\n",
+ "Conveyance : 500\n",
+ "Gross Salary : 12920\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.15, Page number: 77<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the total interest based on the following.\n",
+ "\n",
+ "#Principle Amount(Rs.) Rate of Interest(Rs.)\n",
+ "# >= 10000 20%\n",
+ "# >= 8000 & <= 9999 18%\n",
+ "# < 8000 16%\n",
+ "\n",
+ "\n",
+ "#Variable initialization\n",
+ "princ = int(raw_input(\"\\nEnter Loan & No. of years :- \"))\n",
+ "nyrs = int(raw_input(\"\\nEnter Loan & No. of years :- \"))\n",
+ "\n",
+ "#Condition evaluation\n",
+ "if princ >= 10000 :\n",
+ " rate = 20\n",
+ "else:\n",
+ " if princ >= 8000 and princ <= 9999 :\n",
+ " rate = 18\n",
+ " else:\n",
+ " if princ < 8000:\n",
+ " rate = 16\n",
+ "\n",
+ "#Calculation\n",
+ "interest = princ * nyrs * rate/100\n",
+ "\n",
+ "#Result\n",
+ "print \"Loan : %6.2f\"%(princ)\n",
+ "print \"Years : %6.2f\"%(nyrs)\n",
+ "print \"Rate : %6.2f\"%(rate)\n",
+ "print \"Interest : %6.2f\"%(interest)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Loan & No. of years :- 5500\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Loan & No. of years :- 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Loan : 5500.00\n",
+ "Years : 3.00\n",
+ "Rate : 16.00\n",
+ "Interest : 2640.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.16, Page number: 78<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find the average of six subjects and display the results as follows.\n",
+ "\n",
+ "# AVERAGE RESULT\n",
+ "# >34 & <50 Third Division\n",
+ "# >49 & <60 Second Division\n",
+ "# >60 & <75 First Division\n",
+ "# >75 & <100 Distinction\n",
+ "\n",
+ "\n",
+ "#Variable initialization\n",
+ "a = int(raw_input(\"\\nEnter Marks\\nP C B M E H\\n\"))\n",
+ "b = int(raw_input(\"\\nEnter Marks\\nP C B M E H\\n\"))\n",
+ "c = int(raw_input(\"\\nEnter Marks\\nP C B M E H\\n\"))\n",
+ "d = int(raw_input(\"\\nEnter Marks\\nP C B M E H\\n\"))\n",
+ "e = int(raw_input(\"\\nEnter Marks\\nP C B M E H\\n\"))\n",
+ "f = int(raw_input(\"\\nEnter Marks\\nP C B M E H\\n\"))\n",
+ "\n",
+ "#Calculation\n",
+ "#here sum1 is used instead of sum because sum is a function in python.\n",
+ "sum1 = a + b + c + d + e + f\n",
+ "avg = sum1/6\n",
+ "\n",
+ "print \"Total : %d \\nAverage : %.2f\"%(sum1,avg)\n",
+ "\n",
+ "#Condition evaluation and Result\n",
+ "if a < 35 or b < 35 or c < 35 or d < 35 or e < 35 :\n",
+ " print \"Result : Fail\"\n",
+ " exit\n",
+ "if avg >= 34 and avg < 50 :\n",
+ " print \"Result : Third Division \"\n",
+ "else:\n",
+ " if avg >= 49 and avg < 60:\n",
+ " print \"Result : Second Division\"\n",
+ " else:\n",
+ " if avg >= 60 and avg > 75:\n",
+ " print \"Result : First Division\"\n",
+ " else:\n",
+ " if avg >= 75 and avg <= 100:\n",
+ " print \"Result : Distinction\"\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Marks\n",
+ "P C B M E H\n",
+ "75\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Marks\n",
+ "P C B M E H\n",
+ "75\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Marks\n",
+ "P C B M E H\n",
+ "75\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Marks\n",
+ "P C B M E H\n",
+ "75\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Marks\n",
+ "P C B M E H\n",
+ "75\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Marks\n",
+ "P C B M E H\n",
+ "75\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Total : 450 \n",
+ "Average : 75.00\n",
+ "Result : Distinction\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.17, Page number: 80<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Detect the entered number as to whether it is even or odd. Use goto statement.\n",
+ "\n",
+ "\n",
+ "#Variable initialization\n",
+ "x = int(raw_input(\"\\nEnter a Number : \"))\n",
+ "\n",
+ "#Condition evaluation\n",
+ "#There is no goto/label statement in python\n",
+ "\n",
+ "if x%2 == 0:\n",
+ " print \"\\n%d is Even Number.\"%(x)\n",
+ "else:\n",
+ " print \"\\n%d is Odd Number.\"%(x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter a Number : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "5 is Odd Number.\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.18, Page number: 81<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate telephone bill. Transfer controls at different places according\n",
+ "#to number of calls and calculate the total charges. Follow rates as per\n",
+ "#given in the table.\n",
+ "\n",
+ "# Telephone call Rate in Rs.\n",
+ "# < 100 No charges\n",
+ "# > 99 & < 200 1\n",
+ "# > 199 & < 300 2\n",
+ "# > 299 3\n",
+ "\n",
+ "\n",
+ "#Variable initialization\n",
+ "nc = int(raw_input(\"\\nEnter Number of Calls : \"))\n",
+ "\n",
+ "#Condition evaluation\n",
+ "#There is no goto/label statement in python\n",
+ "\n",
+ "if nc < 100:\n",
+ " print \"\\nNo charges\"\n",
+ "else:\n",
+ " if nc > 99 and nc < 200:\n",
+ " print \"\\nTotal Charges : %d Rs.\"%(nc*1)\n",
+ " else:\n",
+ " if nc > 199 and nc < 300:\n",
+ " print \"\\nTotal Charges : %d Rs.\"%(nc*2)\n",
+ " else:\n",
+ " print \"\\nTotal Charges : %d Rs.\"%(nc*3)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Number of Calls : 500\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Total Charges : 1500 Rs.\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.19, Page number: 82<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Check whether the entered year is a leap year or not. Use goto statement.\n",
+ "\n",
+ "#Variable initialization\n",
+ "leap = int(raw_input(\"\\nEnter Year : \"))\n",
+ "\n",
+ "#Condition evaluation\n",
+ "#There is no goto/label statement in python\n",
+ "\n",
+ "if leap%4 == 0:\n",
+ " print \"\\n%d is a leap year.\"%(leap)\n",
+ "else:\n",
+ " print \"%d is not a leap year.\"%(leap)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Year : 2000\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "2000 is a leap year.\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.20, Page number: 84<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print lines by selecting the choice.\n",
+ "\n",
+ "print \"\\n[1] ............\"\n",
+ "print \"\\n[2] ____________\"\n",
+ "print \"\\n[3] ************\"\n",
+ "print \"\\n[4] ============\"\n",
+ "print \"\\n[5] EXIT\"\n",
+ "\n",
+ "#Variable initialization\n",
+ "ch = int(raw_input(\"\\nENTER YOUR CHOICE : \"))\n",
+ "\n",
+ "#Condition evaluation\n",
+ "#there is no switch case statement in python, an alternative is to use\n",
+ "#dictionary and functions\n",
+ "\n",
+ "def dot():\n",
+ " print \"\\n......................................................\"\n",
+ "\n",
+ "def line():\n",
+ " print \"\\n______________________________________________________\"\n",
+ "\n",
+ "def star():\n",
+ " print \"\\n******************************************************\"\n",
+ "\n",
+ "def equal():\n",
+ " print \"\\n======================================================\"\n",
+ "\n",
+ "def ex():\n",
+ " exit\n",
+ " \n",
+ "options = {1 : dot,\n",
+ " 2 : line,\n",
+ " 3 : star,\n",
+ " 4 : equal,\n",
+ " 5 : ex\n",
+ "}\n",
+ "\n",
+ "options[ch]()\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "[1] ............\n",
+ "\n",
+ "[2] ____________\n",
+ "\n",
+ "[3] ************\n",
+ "\n",
+ "[4] ============\n",
+ "\n",
+ "[5] EXIT\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "ENTER YOUR CHOICE : 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "......................................................\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.21, Page number: 85<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Provide multiple functions such as 1. addition 2.Subtraction 3. Multiplication\n",
+ "#4.Division 5.Remainder calculation 6.Larger out of two by using switch statement\n",
+ "\n",
+ "print \"\\n=============================\"\n",
+ "print \"\\n\\t\\tMENU\"\n",
+ "print \"\\n=============================\"\n",
+ "print \"\\n\\t[1] ADDITION\"\n",
+ "print \"\\n\\t[2] SUBTRACTION\"\n",
+ "print \"\\n\\t[3] MULTIPLICATION\"\n",
+ "print \"\\n\\t[4] DIVISION\"\n",
+ "print \"\\n\\t[5] REMAINDER\"\n",
+ "print \"\\n\\t[6] LARGER OUT OF TWO\"\n",
+ "print \"\\n\\t[0] EXIT\"\n",
+ "print \"\\n=============================\"\n",
+ "\n",
+ "#Variable initialization\n",
+ "ch = int(raw_input(\"\\nENTER YOUR CHOICE : \"))\n",
+ "\n",
+ "#Condition evaluation\n",
+ "#there is no switch case statement in python, an alternative is to use\n",
+ "#dictionary and functions\n",
+ "\n",
+ "if ch <= 6 and ch > 0:\n",
+ " a = int(raw_input(\"Enter Two Numbers : \"))\n",
+ " b = int(raw_input(\"Enter Two Numbers : \"))\n",
+ " \n",
+ "def add():\n",
+ " c = a + b\n",
+ " print \"\\nAddition : %d\"%(c)\n",
+ "\n",
+ "def sub():\n",
+ " c = a - b\n",
+ " print \"\\nSubtraction : %d\"%(c)\n",
+ "\n",
+ "def mul():\n",
+ " c = a * b\n",
+ " print \"\\nMultiplication : %d\"%(c)\n",
+ "\n",
+ "def div():\n",
+ " c = a/b\n",
+ " print \"\\nDivision : %d\"%(c)\n",
+ "\n",
+ "def rem():\n",
+ " c = a % b\n",
+ " print \"\\nRemainder : %d\"%(c)\n",
+ "\n",
+ "def larger():\n",
+ " if a > b:\n",
+ " print \"\\n%d (a) is larger than %d (b)\"%(a,b)\n",
+ " else:\n",
+ " if b > a:\n",
+ " print \"\\n%d (b) is larger than %d (a)\"%(b,a)\n",
+ " else:\n",
+ " print \"\\n%d (a) & %d (b) are same\"%(a,b)\n",
+ "\n",
+ "def ex():\n",
+ " print \"\\nTerminated by choice\"\n",
+ " exit\n",
+ "\n",
+ "def default():\n",
+ " print \"\\nInvalid Choice\"\n",
+ "\n",
+ "options = { 1 : add,\n",
+ " 2 : sub,\n",
+ " 3 : mul,\n",
+ " 4 : div,\n",
+ " 5 : rem,\n",
+ " 6 : larger,\n",
+ " 7 : ex,\n",
+ " 0 : default,\n",
+ " 8 : default,\n",
+ " 9 : default\n",
+ "}\n",
+ "\n",
+ "options[ch]()\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "=============================\n",
+ "\n",
+ "\t\tMENU\n",
+ "\n",
+ "=============================\n",
+ "\n",
+ "\t[1] ADDITION\n",
+ "\n",
+ "\t[2] SUBTRACTION\n",
+ "\n",
+ "\t[3] MULTIPLICATION\n",
+ "\n",
+ "\t[4] DIVISION\n",
+ "\n",
+ "\t[5] REMAINDER\n",
+ "\n",
+ "\t[6] LARGER OUT OF TWO\n",
+ "\n",
+ "\t[0] EXIT\n",
+ "\n",
+ "=============================\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "ENTER YOUR CHOICE : 6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Two Numbers : 9\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Two Numbers : 8\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "9 (a) is larger than 8 (b)\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.22, Page number: 87<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Convert years into Minutes, Hours, Days, Months and Seconds using switch()\n",
+ "#statement\n",
+ "\n",
+ "\n",
+ "print \"[1] MINUTES\"\n",
+ "print \"[2] HOURS\"\n",
+ "print \"[3] DAYS\"\n",
+ "print \"[4] MONTHS\"\n",
+ "print \"[5] SECONDS\"\n",
+ "print \"[0] EXIT\"\n",
+ "\n",
+ "#Variable initialization\n",
+ "ch = int(raw_input(\"\\nEnter Your Choice : \"))\n",
+ "\n",
+ "#Condition evaluation\n",
+ "#there is no switch case statement in python, an alternative is to use\n",
+ "#dictionary and functions\n",
+ "\n",
+ "if ch > 0 and ch < 6:\n",
+ " yrs = int(raw_input(\"Enter Years : \"))\n",
+ "\n",
+ "#Calculation\n",
+ "#since min is a keyword in python, min1 is used instead.\n",
+ "mon = yrs * 12\n",
+ "ds = mon * 30\n",
+ "hrs = ds * 24\n",
+ "min1 = hrs * 60\n",
+ "se = min1 * 60\n",
+ "\n",
+ "def minute():\n",
+ " print \"\\nMinutes : %ld\"%(min1)\n",
+ "\n",
+ "def hours():\n",
+ " print \"\\nHours : %ld\"%(hrs)\n",
+ "\n",
+ "def days():\n",
+ " print \"\\nDays : %ld\"%(ds)\n",
+ "\n",
+ "def months():\n",
+ " print \"\\nMonths : %ld\"%(mon)\n",
+ "\n",
+ "def seconds():\n",
+ " print \"\\nSeconds : %ld\"%(se)\n",
+ "\n",
+ "def ex():\n",
+ " print \"\\nTerminated by choice\"\n",
+ " exit\n",
+ "\n",
+ "def default():\n",
+ " print \"\\nInvalid Choice\"\n",
+ "\n",
+ "options = { 1 : minute,\n",
+ " 2 : hours,\n",
+ " 3 : days,\n",
+ " 4 : months,\n",
+ " 5 : seconds,\n",
+ " 6 : ex,\n",
+ " 0 : default,\n",
+ " 8 : default,\n",
+ " 9 : default\n",
+ "}\n",
+ "\n",
+ "options[ch]()\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "[1] MINUTES\n",
+ "[2] HOURS\n",
+ "[3] DAYS\n",
+ "[4] MONTHS\n",
+ "[5] SECONDS\n",
+ "[0] EXIT\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Your Choice : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Years : 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Months : 24\n"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.23, Page number: 89<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the names of the days of a week.\n",
+ "\n",
+ "\n",
+ "#Variable initialization\n",
+ "day = int(raw_input(\"\\nEnter a number between 1 to 7 : \"))\n",
+ "\n",
+ "#Condition evaluation\n",
+ "#there is no switch case statement in python, an alternative is to use\n",
+ "#dictionary and functions\n",
+ "\n",
+ "def first():\n",
+ " print \"\\n1st day of week is Sunday\"\n",
+ "\n",
+ "def second():\n",
+ " print \"\\n2nd day of week is Monday\"\n",
+ "\n",
+ "def third():\n",
+ " print \"\\n3rd day of week is Tuesday\"\n",
+ "\n",
+ "def fourth():\n",
+ " print \"\\n4th day of week is Wednesday\"\n",
+ "\n",
+ "def fifth():\n",
+ " print \"\\n5th day of week is Thursday\"\n",
+ "\n",
+ "def sixth():\n",
+ " print \"\\n6th day of week is Friday\"\n",
+ "\n",
+ "def seventh():\n",
+ " print \"\\n7th day of week is Saturday\"\n",
+ "\n",
+ "def default():\n",
+ " print \"\\nInvalid day\"\n",
+ "\n",
+ "options = { 1 : first,\n",
+ " 2 : second,\n",
+ " 3 : third,\n",
+ " 4 : fourth,\n",
+ " 5 : fifth,\n",
+ " 6 : sixth,\n",
+ " 7 : seventh,\n",
+ " 0 : default,\n",
+ " 8 : default,\n",
+ " 9 : default\n",
+ "}\n",
+ "for i in range(1,day+1):\n",
+ " options[i]()\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter a number between 1 to 7 : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "1st day of week is Sunday\n",
+ "\n",
+ "2nd day of week is Monday\n",
+ "\n",
+ "3rd day of week is Tuesday\n",
+ "\n",
+ "4th day of week is Wednesday\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.24, Page number: 90<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Perform following operations\n",
+ "\n",
+ "#1. Display any numbers or stars on the screen by using for loop\n",
+ "#2. Display the menu containing the following\n",
+ "#a) Whole screen b)Half screen c)Top 3 lines d)Bottom 3 lines\n",
+ "\n",
+ "import os\n",
+ "import sys\n",
+ "import turtle\n",
+ "\n",
+ "\n",
+ "#Print numbers in the whole screen\n",
+ "for i in range(1,700):\n",
+ " sys.stdout.write(\"%d\"%i)\n",
+ "\n",
+ "print \"\\nCLEAR MENU\"\n",
+ "print \"\\t1] Whole Screen\\t2] Half Screen\\t3]Top 3 lines\\t4] Bottom 3 lines\\t5] Exit\"\n",
+ "\n",
+ "#Variable initialization\n",
+ "c = int(raw_input(\"Enter Your Choice : \"))\n",
+ "\n",
+ "#Condition evaluation\n",
+ "#there is no switch case statement in python, an alternative is to use\n",
+ "#dictionary and functions\n",
+ "\n",
+ "def one():\n",
+ " os.system('cls')\n",
+ "\n",
+ "def two():\n",
+ " for i in range(0,190):\n",
+ " turtle.goto(i,1)\n",
+ " sys.stdout.write(\"\\t\")\n",
+ " \n",
+ "def three():\n",
+ " for i in range(1,100):\n",
+ " turtle.goto(i,1)\n",
+ " sys.stdout.write(\"\\t\")\n",
+ "\n",
+ "def four():\n",
+ " for i in range(1,120):\n",
+ " turtle.goto(i,21)\n",
+ " sys.stdout.write(\"\\t\")\n",
+ "\n",
+ "def five():\n",
+ " exit\n",
+ "\n",
+ "\n",
+ "options = { 1 : one,\n",
+ " 2 : two,\n",
+ " 3 : three,\n",
+ " 4 : four,\n",
+ " 5 : five\n",
+ "}\n",
+ "options[c]()\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699\n",
+ "CLEAR MENU\n",
+ "\t1] Whole Screen\t2] Half Screen\t3]Top 3 lines\t4] Bottom 3 lines\t5] Exit\n",
+ "\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t\t"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t\t\t\t"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.25, Page number: 91<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the files of current directory\n",
+ "\n",
+ "import os\n",
+ "\n",
+ "print \"\\nFILE LISTING MENU\"\n",
+ "print \"1] .EXE\"\n",
+ "print \"2] .BAT\"\n",
+ "print \"3] .OBJ\"\n",
+ "print \"4] .BAK\"\n",
+ "#Variable initialization\n",
+ "c = int(raw_input(\"Enter Your Choice -: \"))\n",
+ "\n",
+ "#Condition evaluation\n",
+ "#there is no switch case statement in python, an alternative is to use\n",
+ "#dictionary and functions\n",
+ "\n",
+ "def one():\n",
+ " os.system('dir *.exe')\n",
+ "\n",
+ "def two():\n",
+ " os.system('dir *.c')\n",
+ "\n",
+ "def three():\n",
+ " os.system('dir *.obj')\n",
+ "\n",
+ "def four():\n",
+ " os.system('dir *.bak')\n",
+ "\n",
+ "options = { 1 : one,\n",
+ " 2 : two,\n",
+ " 3 : three,\n",
+ " 4 : four\n",
+ "}\n",
+ "options[c]()\n",
+ "\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "FILE LISTING MENU\n",
+ "1] .EXE\n",
+ "2] .BAT\n",
+ "3] .OBJ\n",
+ "4] .BAK\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.26, Page number: 92<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display number of days in calendar format of an entered month of year 2001.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "m = int(raw_input(\"Enter Month No. of Year 2001 : \"))\n",
+ "\n",
+ "#Condition evaluation\n",
+ "#there is no switch case statement in python, an alternative is to use\n",
+ "#else-if ladder.\n",
+ "\n",
+ "print \"\\nMonth - %d - 2001\"%(m)\n",
+ "print \"\\n\\tSUN\\tMON\\tTUE\\tWED\\tTHU\\tFRI\\tSAT\"\n",
+ "\n",
+ "#Find a day any month of 2001\n",
+ "\n",
+ "if m == 1:\n",
+ " a = 2\n",
+ " j = 31\n",
+ "else:\n",
+ " if m == 2:\n",
+ " a = 5\n",
+ " j = 28\n",
+ " else:\n",
+ " if m == 3:\n",
+ " a = 5\n",
+ " j = 31\n",
+ " else:\n",
+ " if m == 4:\n",
+ " a = 1\n",
+ " j = 30\n",
+ " else:\n",
+ " if m == 5:\n",
+ " a = 3\n",
+ " j = 31\n",
+ " else:\n",
+ " if m == 6:\n",
+ " a = 6\n",
+ " j = 30\n",
+ " else:\n",
+ " if m == 7:\n",
+ " a = 1\n",
+ " j = 31\n",
+ " else:\n",
+ " if m == 8:\n",
+ " a = 4\n",
+ " j = 31\n",
+ " else:\n",
+ " if m == 9:\n",
+ " a = 7\n",
+ " j = 30\n",
+ " else:\n",
+ " if m == 10:\n",
+ " a = 2\n",
+ " j = 31\n",
+ " else:\n",
+ " if m == 11:\n",
+ " a = 5\n",
+ " j = 30\n",
+ " else:\n",
+ " if m == 12:\n",
+ " a = 7\n",
+ " j = 31\n",
+ " else:\n",
+ " print \"Invalid Month\"\n",
+ " exit\n",
+ "\n",
+ "#Starting day is to be adjusted under the respective day\n",
+ "#sys.stdout.write() function performs the same task as printf() function\n",
+ " \n",
+ "i = 1\n",
+ "if a == 1:\n",
+ " sys.stdout.write(\"\\t%d\"%(i))\n",
+ "else:\n",
+ " if a == 2:\n",
+ " sys.stdout.write(\"\\t\\t%d\"%(i))\n",
+ " else:\n",
+ " if a == 3:\n",
+ " sys.stdout.write(\"\\t\\t\\t%d\"%(i))\n",
+ " else:\n",
+ " if a == 4:\n",
+ " sys.stdout.write(\"\\t\\t\\t\\t%d\"%(i))\n",
+ " else:\n",
+ " if a == 5:\n",
+ " sys.stdout.write(\"\\t\\t\\t\\t\\t%d\"%(i))\n",
+ " else:\n",
+ " if a == 6:\n",
+ " sys.stdout.write(\"\\t\\t\\t\\t\\t\\t%d\"%(i))\n",
+ " else:\n",
+ " if a == 7:\n",
+ " sys.stdout.write(\"\\t\\t\\t\\t\\t\\t\\t%d\"%(i))\n",
+ "\n",
+ "\n",
+ "h = 8 - a #The starting day is subtracted from 8\n",
+ "for i in range(2,h+1): #to display the first row\n",
+ " sys.stdout.write(\"\\t%d\"%(i))\n",
+ "sys.stdout.write(\"\\n\")\n",
+ "b = 1\n",
+ "for i in range(h+1,j+1): #to continue with second row onwards\n",
+ " if b == 8:\n",
+ " sys.stdout.write(\"\\n\")\n",
+ " b = 1\n",
+ " sys.stdout.write(\"\\t%d\"%(i))\n",
+ " b += 1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Month - 1 - 2001\n",
+ "\n",
+ "\tSUN\tMON\tTUE\tWED\tTHU\tFRI\tSAT\n",
+ "\t\t1\t2\t3\t4\t5\t6\n",
+ "\t7\t8\t9\t10\t11\t12\t13\n",
+ "\t14\t15\t16\t17\t18\t19\t20\n",
+ "\t21\t22\t23\t24\t25\t26\t27\n",
+ "\t28\t29\t30\t31"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.27, Page number: 95<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Convert decimal to hexadecimal number.\n",
+ "\n",
+ "import sys\n",
+ "import turtle\n",
+ "\n",
+ "#Variable initialization\n",
+ "x = int(raw_input(\"Enter a number : \"))\n",
+ "y = 30\n",
+ "\n",
+ "#Condition evaluation\n",
+ "#there is no switch case statement in python, an alternative is to use\n",
+ "#else-if ladder.\n",
+ "\n",
+ "print \"\\nConversion of Decimal to Hexadecimal Number\"\n",
+ "\n",
+ "#for loop without condition is not supported in python. so while loop is used.\n",
+ "\n",
+ "c = 1\n",
+ "z = [0 for i in range(0,15)]\n",
+ "\n",
+ "while x != 0:\n",
+ " z[c] = x % 16\n",
+ " c = c + 1\n",
+ " x = x/16\n",
+ "\n",
+ "\n",
+ "for i in range(c-1,0,-1):\n",
+ " if z[i] == 10:\n",
+ " sys.stdout.write(\"A\")\n",
+ " else:\n",
+ " if z[i] == 11:\n",
+ " sys.stdout.write(\"B\")\n",
+ " else:\n",
+ " if z[i] == 12:\n",
+ " sys.stdout.write(\"C\")\n",
+ " else:\n",
+ " if z[i] == 13:\n",
+ " sys.stdout.write(\"D\")\n",
+ " else:\n",
+ " if z[i] == 14:\n",
+ " sys.stdout.write(\"E\")\n",
+ " else:\n",
+ " if z[i] == 15:\n",
+ " sys.stdout.write(\"F\")\n",
+ " else:\n",
+ " sys.stdout.write(\"%d\"%(z[i]))\n",
+ " \n",
+ " \n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number : 31\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Conversion of Decimal to Hexadecimal Number\n",
+ "1F"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.28, Page number: 97<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Detect whether the entered number is even or odd. use nested switch-case\n",
+ "\n",
+ "\n",
+ "#Variable initialization\n",
+ "x = int(raw_input(\"Enter a Number : \"))\n",
+ "\n",
+ "#Condition evaluation\n",
+ "#there is no switch case statement in python, an alternative is to use\n",
+ "#else-if ladder.\n",
+ "\n",
+ "if x == 0:\n",
+ " print \"Number is Even\"\n",
+ "else:\n",
+ " if x == 1:\n",
+ " print \"Number is odd\"\n",
+ " else:\n",
+ " y = x % 2\n",
+ " if y == 0:\n",
+ " print \"Number is Even\"\n",
+ " else:\n",
+ " print \"Number is odd\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number is odd\n"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.29, Page number: 98<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Count number of 1s, 0s, blank spaces and others using nested\n",
+ "#switch() statement in a given stream\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "txt = raw_input(\"Enter Numbers : \")\n",
+ "\n",
+ "#Processing\n",
+ "x = 0\n",
+ "s = 0\n",
+ "a = 0\n",
+ "z = 0\n",
+ "o = 0\n",
+ "\n",
+ "while x < len(txt):\n",
+ " if txt[x] == ' ':\n",
+ " s = s + 1\n",
+ " else:\n",
+ " if txt[x] == '1':\n",
+ " a = a + 1\n",
+ " else:\n",
+ " if txt[x] == '0':\n",
+ " z = z + 1\n",
+ " else:\n",
+ " o = o + 1\n",
+ " x = x + 1\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nTotal Spaces : %d\"%(s))\n",
+ "sys.stdout.write(\"\\nTotal 1s : %d\"%(a))\n",
+ "sys.stdout.write(\"\\nTotal 0s : %d\"%(z))\n",
+ "sys.stdout.write(\"\\nOthers : %d\"%(o))\n",
+ "sys.stdout.write(\"\\nString Length : %d\"%(s+a+z+o))\n",
+ " \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Numbers : 1110022 222\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Total Spaces : 1\n",
+ "Total 1s : 3\n",
+ "Total 0s : 2\n",
+ "Others : 5\n",
+ "String Length : 11"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.30, Page number: 99<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Convert integer to character using if condition\n",
+ "\n",
+ "\n",
+ "#Variable initialization\n",
+ "x = int(raw_input(\"Enter a Number : \"))\n",
+ "\n",
+ "#Condition evaluation\n",
+ "#ord() function converts the character ASCII to integer\n",
+ "\n",
+ "if x == ord('A'):\n",
+ " print \"%c\"%(x)\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number : 65\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 5.31, Page number: 100<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Use nested if..else statements in switch() statement. Also show the effect\n",
+ "#of conversion of integer to character\n",
+ "\n",
+ "\n",
+ "#Variable initialization\n",
+ "i = int(raw_input(\"Enter any ASCII Number : \"))\n",
+ "\n",
+ "#Condition evaluation\n",
+ "#there is no switch..case statement in python. alternative is to use\n",
+ "#if..else and else..if ladder\n",
+ "\n",
+ "if i == ord('A'):\n",
+ " print \"Capital A\"\n",
+ "else:\n",
+ " if i == ord('B'):\n",
+ " print \"Capital B\"\n",
+ " else:\n",
+ " if i == ord('C'):\n",
+ " print \"Capital C\"\n",
+ " else:\n",
+ " if i > 47 and i < 58:\n",
+ " print \"Digit : [%c]\"%(i)\n",
+ " else:\n",
+ " if i >= 58 and i <= 64:\n",
+ " print \"Symbol : [%c]\"%(i)\n",
+ " else:\n",
+ " if i > 64 and i < 91:\n",
+ " print \"Capital : [%c]\"%(i)\n",
+ " else:\n",
+ " if i > 96 and i < 123:\n",
+ " print \"Small : [%c]\"%(i)\n",
+ " else:\n",
+ " print \"Invalid Choice\"\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter any ASCII Number : 65\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Capital A\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Programming_in_C_using_ANSI_C/KamthaneChapter6.ipynb b/Programming_in_C_using_ANSI_C/KamthaneChapter6.ipynb new file mode 100755 index 00000000..d9815e79 --- /dev/null +++ b/Programming_in_C_using_ANSI_C/KamthaneChapter6.ipynb @@ -0,0 +1,42312 @@ +{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 6: Loop Control Statements<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.1, Page number: 107<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print the first five numbers starting from one together with thier squares\n",
+ "\n",
+ "#Result\n",
+ "#Since range() function starts with 0; to print upto 5, use 5+1 or 6\n",
+ "#range() function creates range or numbers from 1 to 6\n",
+ "\n",
+ "for i in range(1,5+1):\n",
+ " print(\"Number : %d it's Square : %d\"%(i,i*i))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number : 1 it's Square : 1\n",
+ "Number : 2 it's Square : 4\n",
+ "Number : 3 it's Square : 9\n",
+ "Number : 4 it's Square : 16\n",
+ "Number : 5 it's Square : 25\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.2, Page number: 108<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display numbers from 1 to 15 using for loop. Use i++\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Result\n",
+ "#There is no increment operator (++) in python\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers\n",
+ "\n",
+ "for i in range(1,15+1):\n",
+ " sys.stdout.write(\"%5d\"%(i))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.3, Page number: 108<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display numbers from 1 to 15 using for loop. Use i = i + 1\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Result\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers\n",
+ "\n",
+ "for i in range(1,15+1):\n",
+ " sys.stdout.write(\"%5d\"%(i))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.4, Page number: 109<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display numbers from 1 to 16. Use incrementation operation in the body of\n",
+ "#the loop for more than once\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable declaration\n",
+ "\n",
+ "c = 0\n",
+ "\n",
+ "#Result\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers and the third argument in the range function\n",
+ "#indicates the interval between the numbers.\n",
+ "\n",
+ "for i in range(0,15+1,2):\n",
+ " i += 1\n",
+ " sys.stdout.write(\"%5d\"%(i))\n",
+ " i = i + 1\n",
+ " sys.stdout.write(\"%5d\"%(i))\n",
+ " c += 1\n",
+ "\n",
+ "sys.stdout.write(\"\\n\\nThe Body of the loop is executed for %d times\"%(c))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16\n",
+ "\n",
+ "The Body of the loop is executed for 8 times"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.5, Page number: 109<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display even numbers from 0 to 14 by declaring the initial counter value before\n",
+ "#the loop statement\n",
+ "import sys\n",
+ "\n",
+ "#Variable declaration\n",
+ "\n",
+ "c = 0\n",
+ "i = 0\n",
+ "\n",
+ "#Result\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers and the third argument in the range function\n",
+ "#indicates the interval between the numbers.\n",
+ "\n",
+ "#counter variable initialization before the for loop will not affect much.\n",
+ "\n",
+ "for i in range(0,15+1,2):\n",
+ " sys.stdout.write(\"%5d\"%(i))\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 0 2 4 6 8 10 12 14"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.6, Page number: 110<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display numbers in ascending and descending orders.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable declaration\n",
+ "\n",
+ "i = 0\n",
+ "\n",
+ "#Result\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers and the third argument in the range function\n",
+ "#indicates the interval between the numbers.\n",
+ "\n",
+ "#counter variable initialization before the for loop will not affect much.\n",
+ "\n",
+ "sys.stdout.write(\"Numbers in Ascending Order : \")\n",
+ "for i in range(1,10+1):\n",
+ " sys.stdout.write(\"%3d\"%(i))\n",
+ " \n",
+ "sys.stdout.write(\"\\nNumbers in Descending Order : \")\n",
+ "for i in range(10,0,-1):\n",
+ " sys.stdout.write(\"%3d\"%(i))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Numbers in Ascending Order : 1 2 3 4 5 6 7 8 9 10\n",
+ "Numbers in Descending Order : 10 9 8 7 6 5 4 3 2 1"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.7, Page number: 110<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display numbers upto 10 using infinite for loop. Use goto statement to\n",
+ "#exit from the loop\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable declaration\n",
+ "\n",
+ "i = 0\n",
+ "\n",
+ "#Result\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers and the third argument in the range function\n",
+ "#indicates the interval between the numbers.\n",
+ "\n",
+ "#counter variable initialization before the for loop will not affect much.\n",
+ "\n",
+ "for i in range(0,15):\n",
+ " sys.stdout.write(\"%3d\"%(i))\n",
+ " i += 1\n",
+ " if i == 11:\n",
+ " break\n",
+ "\n",
+ "#there is no infinite for loop and goto statement in python.\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 0 1 2 3 4 5 6 7 8 9 10"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.8, Page number: 111<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Count numbers between 1 to 100 not divisible by 2, 3, and 5\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable declaration\n",
+ "\n",
+ "c = 0\n",
+ "\n",
+ "sys.stdout.write(\"\\nNumbers from 1 to 100 not divisible by 2,3&5\\n\\n\")\n",
+ "\n",
+ "#Result\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers \n",
+ "\n",
+ "for x in range(0,100+1):\n",
+ " if x%2 != 0 and x%3 != 0 and x%5 != 0:\n",
+ " sys.stdout.write(\"%d\\t\"%(x))\n",
+ " c += 1\n",
+ "\n",
+ "sys.stdout.write(\"\\nTotal Numbers : %d\"%(c))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Numbers from 1 to 100 not divisible by 2,3&5\n",
+ "\n",
+ "1\t7\t11\t13\t17\t19\t23\t29\t31\t37\t41\t43\t47\t49\t53\t59\t61\t67\t71\t73\t77\t79\t83\t89\t91\t97\t\n",
+ "Total Numbers : 26"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.9, Page number: 112<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the numbers in increasing and decreasing order using infinite\n",
+ "#for loop\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable declaration\n",
+ "n = int(raw_input(\"Enter a number : \"))\n",
+ "a = b = n\n",
+ "\n",
+ "sys.stdout.write(\"(++) (--)\\n\")\n",
+ "sys.stdout.write(\"===================\")\n",
+ "\n",
+ "#Result\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers\n",
+ "\n",
+ "#There is no infinite for loop in python. so separate iteration variable i is used\n",
+ "\n",
+ "for i in range(0,100):\n",
+ " sys.stdout.write(\"\\n%d\\t%d\"%(a,b))\n",
+ " if b == 0:\n",
+ " break\n",
+ " a += 1\n",
+ " b -= 1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "(++) (--)\n",
+ "===================\n",
+ "5\t5\n",
+ "6\t4\n",
+ "7\t3\n",
+ "8\t2\n",
+ "9\t1\n",
+ "10\t0"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.10, Page number: 113<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Create an infinite loop. Check each value of the for loop. if the value is\n",
+ "#even, display it otherwise continue with interations. Print even numbers from\n",
+ "#1 to 21. Use break statement to terminate the program.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable declaration\n",
+ "i = 1\n",
+ "\n",
+ "sys.stdout.write(\"\\n\\t\\tTable of Even numbers from 1 to 20\")\n",
+ "sys.stdout.write(\"\\n\\t\\t==================================\\n\")\n",
+ "\n",
+ "#Result\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers\n",
+ "\n",
+ "#There is no infinite for loop in python. so separate iteration variable i is used\n",
+ "\n",
+ "for i in range(1,100):\n",
+ " if i == 20:\n",
+ " break\n",
+ " else:\n",
+ " if i%2 == 0:\n",
+ " sys.stdout.write(\"%d\\t\"%(i))\n",
+ " continue\n",
+ " else:\n",
+ " continue"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\t\tTable of Even numbers from 1 to 20\n",
+ "\t\t==================================\n",
+ "2\t4\t6\t8\t10\t12\t14\t16\t18\t"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.11, Page number: 113<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the sum of first five numbers and their squares. Display their results\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable declaration\n",
+ "#since sum is a function in python, sum1 is used instead of variable sum.\n",
+ "\n",
+ "sum1 = 0\n",
+ "sqsum = 0\n",
+ "\n",
+ "#Result\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers\n",
+ "\n",
+ "for i in range(1,5+1):\n",
+ " sum1 += i\n",
+ " sqsum += i*i\n",
+ " sys.stdout.write(\"\\nNumber : %5d it's Square : %8d\"%(i,i*i))\n",
+ "\n",
+ "sys.stdout.write(\"\\n=================================================\")\n",
+ "sys.stdout.write(\"\\nThe Sum %6d Sum of Squares %9d\"%(sum1,sqsum))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Number : 1 it's Square : 1\n",
+ "Number : 2 it's Square : 4\n",
+ "Number : 3 it's Square : 9\n",
+ "Number : 4 it's Square : 16\n",
+ "Number : 5 it's Square : 25\n",
+ "=================================================\n",
+ "The Sum 15 Sum of Squares 55"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.12, Page number: 114<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display numbers from 1 to 9 and their square roots.\n",
+ "\n",
+ "import math\n",
+ "import sys\n",
+ "\n",
+ "#Result\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers\n",
+ "\n",
+ "for i in range(1,9+1):\n",
+ " a = math.sqrt(i)\n",
+ " sys.stdout.write(\"\\n\\t%d %.2f\"%(i,a))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\t1 1.00\n",
+ "\t2 1.41\n",
+ "\t3 1.73\n",
+ "\t4 2.00\n",
+ "\t5 2.24\n",
+ "\t6 2.45\n",
+ "\t7 2.65\n",
+ "\t8 2.83\n",
+ "\t9 3.00"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.13, Page number: 115<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find the number in between 7 and 100 which is exactly divisible by\n",
+ "#4 and if divided by 5 and 6 remainders obtained should be 4.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Result\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers\n",
+ "\n",
+ "for x in range(7,100+1):\n",
+ " if x%4 == 0 and x%5 == 4 and x%6 == 4:\n",
+ " sys.stdout.write(\"\\nMinimum Number : %d\"%(x))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Minimum Number : 64"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.14, Page number: 115<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Evaluate the series given\n",
+ "# x = 1/1 + 1/4 + 1/9 ... 1/n2\n",
+ "# y = 1/1 + 1/8 + 1/27 ... 1/n3\n",
+ "\n",
+ "#Variable declaration\n",
+ "x = 0.0\n",
+ "y = 0.0\n",
+ "n = int(raw_input(\"Enter Value of n : \"))\n",
+ "\n",
+ "#Result\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers\n",
+ "\n",
+ "for i in range(1,n+1):\n",
+ " x = x + (1.0/pow(i,2))\n",
+ " y = y + (1.0/pow(i,3))\n",
+ "\n",
+ "print(\"Value of x = %f\"%(x))\n",
+ "print(\"\\nValue of y = %f\"%(y))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Value of n : 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of x = 1.250000\n",
+ "\n",
+ "Value of y = 1.125000\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.15, Page number: 116<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Generate Triangular number\n",
+ "#Note: Triangular number is nothing but summation of 1 to given number.\n",
+ "#For example, when entered number is 5 it's triangular number would be\n",
+ "#(1+2+3+4+5) = 15.\n",
+ "\n",
+ "\n",
+ "#Variable declaration\n",
+ "tri_num = 0\n",
+ "n = int(raw_input(\"What Triangular number do you want : \"))\n",
+ "\n",
+ "#Result\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers\n",
+ "\n",
+ "for j in range(1,n+1):\n",
+ " tri_num = tri_num + j\n",
+ "\n",
+ "print(\"Triangular number of %d is %d\\n\"%(n,tri_num))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What Triangular number do you want : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Triangular number of 5 is 15\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.16, Page number: 117<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find sum of the following series\n",
+ "# 1 + 2 + 3 + ... n\n",
+ "# 1^2 + 2^2 + 2^3 + ... n^2\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable declaration\n",
+ "#since sum is a function name in python, sum1 is used instead of sum.\n",
+ "\n",
+ "sum1 = 0\n",
+ "ssum = 0\n",
+ "j = int(raw_input(\"Enter Number : \"))\n",
+ "\n",
+ "#Result\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers\n",
+ "\n",
+ "sys.stdout.write(\"Numbers : \")\n",
+ "for i in range(1,j+1):\n",
+ " sys.stdout.write(\"%5d\"%(i))\n",
+ "\n",
+ "sys.stdout.write(\"\\nSquares : \")\n",
+ "for i in range(1,j+1):\n",
+ " sys.stdout.write(\"%5d\"%(i*i))\n",
+ " sum1 = sum1 + i\n",
+ " ssum = ssum + i*i\n",
+ "sys.stdout.write(\"\\nSum of Numbers from 1 to %d : %d\"%(j,sum1))\n",
+ "sys.stdout.write(\"\\nSum of Squares of 1 to %d Numbers : %d\"%(j,ssum))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Numbers : 1 2 3 4 5\n",
+ "Squares : 1 4 9 16 25\n",
+ "Sum of Numbers from 1 to 5 : 15\n",
+ "Sum of Squares of 1 to 5 Numbers : 55"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.17, Page number: 118<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the perfect squares from 1 to 500.\n",
+ "\n",
+ "import sys\n",
+ "import math\n",
+ "\n",
+ "#Result\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers\n",
+ "\n",
+ "sys.stdout.write(\"\\n\\n\")\n",
+ "sys.stdout.write(\"Perfect square from 1 to 500 \\n\")\n",
+ "count = 0\n",
+ "\n",
+ "for i in range(1,500+1):\n",
+ " c = math.sqrt(i)\n",
+ " x = math.floor(c) #For rounding up floor() is used\n",
+ " if c == x:\n",
+ " sys.stdout.write(\"\\t%5d\"%(i))\n",
+ " count += 1\n",
+ "\n",
+ "sys.stdout.write(\"\\n\\nTotal Perfect Squares = %d\"%(count))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "Perfect square from 1 to 500 \n",
+ "\t 1\t 4\t 9\t 16\t 25\t 36\t 49\t 64\t 81\t 100\t 121\t 144\t 169\t 196\t 225\t 256\t 289\t 324\t 361\t 400\t 441\t 484\n",
+ "\n",
+ "Total Perfect Squares = 22"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.18, Page number: 119<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Detect the largest number out of five numbers.\n",
+ "\n",
+ "import sys\n",
+ "import math\n",
+ "\n",
+ "#Result\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers.\n",
+ "#since sum is a built in function in python, sum1 is used instead of sum.\n",
+ "\n",
+ "a = int(raw_input(\"Enter five numbers : \"))\n",
+ "b = int(raw_input(\"Enter five numbers : \"))\n",
+ "c = int(raw_input(\"Enter five numbers : \"))\n",
+ "d = int(raw_input(\"Enter five numbers : \"))\n",
+ "e = int(raw_input(\"Enter five numbers : \"))\n",
+ "\n",
+ "sum1 = a + b + c + d + e\n",
+ "\n",
+ "for i in range(sum1,1,-1):\n",
+ " if i == a or i == b or i == c or i == d or i == e:\n",
+ " sys.stdout.write(\"The Largest Number : %d\"%(i))\n",
+ " break\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter five numbers : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter five numbers : 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter five numbers : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter five numbers : 7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter five numbers : 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Largest Number : 7"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.19, Page number: 119<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Detect the smallesst number out of five numbers.\n",
+ "\n",
+ "import sys\n",
+ "import math\n",
+ "\n",
+ "#Result\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers.\n",
+ "#since sum is a built in function in python, sum1 is used instead of sum.\n",
+ "\n",
+ "a = int(raw_input(\"Enter five numbers : \"))\n",
+ "b = int(raw_input(\"Enter five numbers : \"))\n",
+ "c = int(raw_input(\"Enter five numbers : \"))\n",
+ "d = int(raw_input(\"Enter five numbers : \"))\n",
+ "e = int(raw_input(\"Enter five numbers : \"))\n",
+ "\n",
+ "sum1 = a + b + c + d + e\n",
+ "\n",
+ "for i in range(1,sum1):\n",
+ " if i == a or i == b or i == c or i == d or i == e:\n",
+ " sys.stdout.write(\"The Smallest Number : %d\"%(i))\n",
+ " break\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter five numbers : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter five numbers : 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter five numbers : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter five numbers : 7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter five numbers : 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Smallest Number : 2"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.20, Page number: 120<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read five numbers and print in ascending order\n",
+ "\n",
+ "import sys\n",
+ "import math\n",
+ "\n",
+ "#Result\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers.\n",
+ "#since sum is a built in function in python, sum1 is used instead of sum.\n",
+ "\n",
+ "#use commas to separate the input values\n",
+ "a = int(raw_input(\"Enter five numbers : \"))\n",
+ "b = int(raw_input(\"Enter five numbers : \"))\n",
+ "c = int(raw_input(\"Enter five numbers : \"))\n",
+ "d = int(raw_input(\"Enter five numbers : \"))\n",
+ "e = int(raw_input(\"Enter five numbers : \"))\n",
+ "\n",
+ "sys.stdout.write(\"Numbers in ascending order : \")\n",
+ "sum1 = a + b + c + d + e\n",
+ "\n",
+ "for i in range(1,sum1):\n",
+ " if i == a or i == b or i == c or i == d or i == e:\n",
+ " sys.stdout.write(\"%3d\"%(i))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter five numbers : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter five numbers : 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter five numbers : 7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter five numbers : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter five numbers : 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Numbers in ascending order : 1 4 5 7 8"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.21, Page number: 121<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Perform multiplication of two integers by using negative sign\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Result\n",
+ "#the range() function creates range of numbers and for loop automatically\n",
+ "#iterate through the numbers.\n",
+ "\n",
+ "a = int(raw_input(\"Enter two numbers : \"))\n",
+ "b = int(raw_input(\"Enter two numbers : \"))\n",
+ "\n",
+ "d = 0\n",
+ "for c in range(1,b+1):\n",
+ " d = d - (-a)\n",
+ "\n",
+ "sys.stdout.write(\"Multiplication of %d * %d : %d\"%(a,b,d))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter two numbers : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter two numbers : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Multiplication of 5 * 5 : 25"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.22, Page number: 121<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Perform multiplication of two integers by using repetitive addition\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Result\n",
+ "#in python, infinite for loop is not possible.\n",
+ "\n",
+ "a = int(raw_input(\"Enter two numbers : \"))\n",
+ "b = int(raw_input(\"Enter two numbers : \"))\n",
+ "\n",
+ "d = 0\n",
+ "c = 1\n",
+ "while True:\n",
+ " d = d + a\n",
+ " if c == b:\n",
+ " break\n",
+ " c += 1\n",
+ "\n",
+ "sys.stdout.write(\"Multiplication of %d * %d : %d\"%(a,b,d))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter two numbers : 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter two numbers : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Multiplication of 8 * 4 : 32"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.23, Page number: 122<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read the marks for five subjects and calculate sum & average of marks.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Result\n",
+ "#use spaces to separate the input values\n",
+ "#since sum is a built-in function in python, sum1 is used as the variable name\n",
+ "\n",
+ "sys.stdout.write(\"Enter The Marks of Five Subjects \")\n",
+ "sum1 = 0\n",
+ "\n",
+ "for i in range(1,5+1):\n",
+ " sys.stdout.write(\"[%d] Student : \"%(i))\n",
+ " #Exception handling\n",
+ " try:\n",
+ " #use space to separate the input characters\n",
+ " v = raw_input(\"\")\n",
+ " a,b,c,d,e = map(int,v.split())\n",
+ " x = 5\n",
+ " except:\n",
+ " x = 0\n",
+ "\n",
+ " if(x == 5):\n",
+ " sum1 = a + b + c + d + e\n",
+ " avg = sum1/5\n",
+ " sys.stdout.write(\"\\nTotal Marks of Student [%d] %d\"%(i,sum1))\n",
+ " sys.stdout.write(\"\\nAverage Marks of Student [%d] %f\"%(i,avg))\n",
+ " else:\n",
+ " sys.stdout.write(\"Type Mismatch\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter The Marks of Five Subjects [1] Student : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "58 52 52 56 78\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Total Marks of Student [1] 296\n",
+ "Average Marks of Student [1] 59.000000[2] Student : "
+ ]
+ }
+ ],
+ "prompt_number": "*"
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.24, Page number: 123<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Enter a character and display its position in alphabetic order.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "c = 1\n",
+ "\n",
+ "ch = raw_input(\"Enter a character :\")\n",
+ "ch = ch.upper()\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "#ord() function converts the character ASCII value to integer\n",
+ "for i in range(65,90+1):\n",
+ " if ord(ch) == i:\n",
+ " sys.stdout.write(\"'%c' is %d [st/nd/rd/th] Character in Alphabetic\"%(i,c))\n",
+ " c += 1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a character :U\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "'U' is 21 [st/nd/rd/th] Character in Alphabetic"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.25, Page number: 124<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate the value of -m^x.\n",
+ "#'m' is a mantissa and 'x' is an exponent\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "number = int(raw_input(\"Enter Number : \"))\n",
+ "power = int(raw_input(\"Enter Power : \"))\n",
+ "\n",
+ "ans = 1\n",
+ "\n",
+ "#Calculation\n",
+ "for i in range(1,power+1):\n",
+ " ans *= number\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"The Power of %d raised to %d is %ld\"%(number,power,ans))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Power : 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Power of 5 raised to 3 is 125"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.26, Page number: 124<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Subtraction of two loop variables using nested for loops.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Calculation & Result\n",
+ "for a in range(3,0,-1):\n",
+ " for b in range(1,2+1):\n",
+ " sub = a - b\n",
+ " sys.stdout.write(\"a = %d b = %d a - b = %d\\n\"%(a,b,sub))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "a = 3 b = 1 a - b = 2\n",
+ "a = 3 b = 2 a - b = 1\n",
+ "a = 2 b = 1 a - b = 1\n",
+ "a = 2 b = 2 a - b = 0\n",
+ "a = 1 b = 1 a - b = 0\n",
+ "a = 1 b = 2 a - b = -1\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.27, Page number: 125<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Illustrate an example based on nested for loops\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Calculation & Result\n",
+ "for i in range(1,3+1): #outer loop\n",
+ " for j in range(1,2+1): #inner loop\n",
+ " sys.stdout.write(\"\\ni * j : %d\"%(i*j))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "i * j : 1\n",
+ "i * j : 2\n",
+ "i * j : 2\n",
+ "i * j : 4\n",
+ "i * j : 3\n",
+ "i * j : 6"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.28, Page number: 126<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print values and messages when any loop ends using nested for loops.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Calculation & Result\n",
+ "for a in range(1,2+1): #outer loop\n",
+ " for b in range(1,2+1): #middle loop\n",
+ " for c in range(1,2+1): #inner loop\n",
+ " sys.stdout.write(\"\\na = %d + b = %d + c = %d : %d\"%(a,b,c,a+b+c))\n",
+ " sys.stdout.write(\"\\nInner Loop Over.\")\n",
+ " sys.stdout.write(\"\\nMiddle Loop Over.\")\n",
+ "sys.stdout.write(\"\\nOuter Loop Over.\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "a = 1 + b = 1 + c = 1 : 3\n",
+ "a = 1 + b = 1 + c = 2 : 4\n",
+ "Inner Loop Over.\n",
+ "a = 1 + b = 2 + c = 1 : 4\n",
+ "a = 1 + b = 2 + c = 2 : 5\n",
+ "Inner Loop Over.\n",
+ "Middle Loop Over.\n",
+ "a = 2 + b = 1 + c = 1 : 4\n",
+ "a = 2 + b = 1 + c = 2 : 5\n",
+ "Inner Loop Over.\n",
+ "a = 2 + b = 2 + c = 1 : 5\n",
+ "a = 2 + b = 2 + c = 2 : 6\n",
+ "Inner Loop Over.\n",
+ "Middle Loop Over.\n",
+ "Outer Loop Over."
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.29, Page number: 127<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display perfect cubes up to given number.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "k = int(raw_input(\"Enter a Number : \"))\n",
+ "\n",
+ "#Calculation & Result\n",
+ "for i in range(1,k+1):\n",
+ " for j in range(1,i+1): \n",
+ " if i == pow(j,3):\n",
+ " sys.stdout.write(\"\\nNumber : %d & it's Cube : %d\"%(j,i))\n",
+ " \n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number : 100\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Number : 1 & it's Cube : 1\n",
+ "Number : 2 & it's Cube : 8\n",
+ "Number : 3 & it's Cube : 27\n",
+ "Number : 4 & it's Cube : 64"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.30, Page number: 128<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display numbers 1 to 100 using ASCII values from 48 to 57. Use nested loops.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "j = 0\n",
+ "k = -9\n",
+ "\n",
+ "sys.stdout.write(\"\\tTable of 1 to 100 Numbers Using ASCII Values\\n\")\n",
+ "sys.stdout.write(\"\\t===== == = == === ======= ===== ===== ======\\n\")\n",
+ "\n",
+ "#Calculation & Result\n",
+ "for i in range(48,57+1):\n",
+ " for j in range(48,57+1): \n",
+ " sys.stdout.write(\"\\t%c%c\"%(i,j))\n",
+ " #if k != 1:\n",
+ " # sys.stdout.write(\"%c\"%(i+1))\n",
+ " #if k == 0:\n",
+ " # sys.stdout.write(\"\\b\\b%d\"%(k+1))\n",
+ " sys.stdout.write(\"\\n\")\n",
+ " k += 1\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\tTable of 1 to 100 Numbers Using ASCII Values\n",
+ "\t===== == = == === ======= ===== ===== ======\n",
+ "\t00\t01\t02\t03\t04\t05\t06\t07\t08\t09\n",
+ "\t10\t11\t12\t13\t14\t15\t16\t17\t18\t19\n",
+ "\t20\t21\t22\t23\t24\t25\t26\t27\t28\t29\n",
+ "\t30\t31\t32\t33\t34\t35\t36\t37\t38\t39\n",
+ "\t40\t41\t42\t43\t44\t45\t46\t47\t48\t49\n",
+ "\t50\t51\t52\t53\t54\t55\t56\t57\t58\t59\n",
+ "\t60\t61\t62\t63\t64\t65\t66\t67\t68\t69\n",
+ "\t70\t71\t72\t73\t74\t75\t76\t77\t78\t79\n",
+ "\t80\t81\t82\t83\t84\t85\t86\t87\t88\t89\n",
+ "\t90\t91\t92\t93\t94\t95\t96\t97\t98\t99\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.31, Page number: 129<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Count number of votes secured by 'A' & 'B'. Assume three voters are\n",
+ "#voting them. Also count the invalid votes.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization & Calculation\n",
+ "a = 0\n",
+ "b = 0\n",
+ "o = 0\n",
+ "sys.stdout.write(\"Press A or B\\n\")\n",
+ "for i in range(1,3+1):\n",
+ " sys.stdout.write(\"\\nVoter no. %d\"%(i))\n",
+ " sys.stdout.write(\" Enter Vote : \")\n",
+ " v = raw_input(\"\")\n",
+ " v = v.upper()\n",
+ " if v == 'A':\n",
+ " a += 1\n",
+ " else:\n",
+ " if v == 'B':\n",
+ " b += 1\n",
+ " else:\n",
+ " o += 1\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nStatus of vote(s)\\n\")\n",
+ "sys.stdout.write(\"\\nA secures %d vote(s).\"%(a))\n",
+ "sys.stdout.write(\"\\nB secures %d vote(s).\"%(b))\n",
+ "sys.stdout.write(\"\\nInvalid vote(s) %d.\"%(o))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Press A or B\n",
+ "\n",
+ "Voter no. 1 Enter Vote : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "A\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Voter no. 2 Enter Vote : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "B\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Voter no. 3 Enter Vote : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "X\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Status of vote(s)\n",
+ "\n",
+ "A secures 1 vote(s).\n",
+ "B secures 1 vote(s).\n",
+ "Invalid vote(s) 1."
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.32, Page number: 130<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Simulate a digital clock\n",
+ "\n",
+ "import sys\n",
+ "import os\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"hh mm ss\\n\")\n",
+ "for h in range(1,12):\n",
+ " for m in range(1,59):\n",
+ " for s in range(1,59):\n",
+ " sys.stdout.write(\"\\r%d %d %d\"%(h,m,s))\n",
+ " \n",
+ "#Displays the last value"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "hh mm ss\n",
+ "\r",
+ "1 1 1\r",
+ "1 1 2\r",
+ "1 1 3\r",
+ "1 1 4\r",
+ "1 1 5\r",
+ "1 1 6\r",
+ "1 1 7\r",
+ "1 1 8\r",
+ "1 1 9\r",
+ "1 1 10\r",
+ "1 1 11\r",
+ "1 1 12\r",
+ "1 1 13\r",
+ "1 1 14\r",
+ "1 1 15\r",
+ "1 1 16\r",
+ "1 1 17\r",
+ "1 1 18\r",
+ "1 1 19\r",
+ "1 1 20\r",
+ "1 1 21\r",
+ "1 1 22\r",
+ "1 1 23\r",
+ "1 1 24\r",
+ "1 1 25\r",
+ "1 1 26\r",
+ "1 1 27\r",
+ "1 1 28\r",
+ "1 1 29\r",
+ "1 1 30\r",
+ "1 1 31\r",
+ "1 1 32\r",
+ "1 1 33\r",
+ "1 1 34\r",
+ "1 1 35\r",
+ "1 1 36\r",
+ "1 1 37\r",
+ "1 1 38\r",
+ "1 1 39\r",
+ "1 1 40\r",
+ "1 1 41\r",
+ "1 1 42\r",
+ "1 1 43\r",
+ "1 1 44\r",
+ "1 1 45\r",
+ "1 1 46\r",
+ "1 1 47\r",
+ "1 1 48\r",
+ "1 1 49\r",
+ "1 1 50\r",
+ "1 1 51\r",
+ "1 1 52\r",
+ "1 1 53\r",
+ "1 1 54\r",
+ "1 1 55\r",
+ "1 1 56\r",
+ "1 1 57\r",
+ "1 1 58\r",
+ "1 2 1\r",
+ "1 2 2\r",
+ "1 2 3\r",
+ "1 2 4\r",
+ "1 2 5\r",
+ "1 2 6\r",
+ "1 2 7\r",
+ "1 2 8\r",
+ "1 2 9\r",
+ "1 2 10\r",
+ "1 2 11\r",
+ "1 2 12\r",
+ "1 2 13\r",
+ "1 2 14\r",
+ "1 2 15\r",
+ "1 2 16\r",
+ "1 2 17\r",
+ "1 2 18\r",
+ "1 2 19\r",
+ "1 2 20\r",
+ "1 2 21\r",
+ "1 2 22\r",
+ "1 2 23\r",
+ "1 2 24\r",
+ "1 2 25\r",
+ "1 2 26\r",
+ "1 2 27\r",
+ "1 2 28\r",
+ "1 2 29\r",
+ "1 2 30\r",
+ "1 2 31\r",
+ "1 2 32\r",
+ "1 2 33\r",
+ "1 2 34\r",
+ "1 2 35\r",
+ "1 2 36\r",
+ "1 2 37\r",
+ "1 2 38\r",
+ "1 2 39\r",
+ "1 2 40\r",
+ "1 2 41\r",
+ "1 2 42\r",
+ "1 2 43\r",
+ "1 2 44\r",
+ "1 2 45\r",
+ "1 2 46\r",
+ "1 2 47\r",
+ "1 2 48\r",
+ "1 2 49\r",
+ "1 2 50\r",
+ "1 2 51\r",
+ "1 2 52\r",
+ "1 2 53\r",
+ "1 2 54\r",
+ "1 2 55\r",
+ "1 2 56\r",
+ "1 2 57\r",
+ "1 2 58\r",
+ "1 3 1\r",
+ "1 3 2\r",
+ "1 3 3\r",
+ "1 3 4\r",
+ "1 3 5\r",
+ "1 3 6\r",
+ "1 3 7\r",
+ "1 3 8\r",
+ "1 3 9\r",
+ "1 3 10\r",
+ "1 3 11\r",
+ "1 3 12\r",
+ "1 3 13\r",
+ "1 3 14\r",
+ "1 3 15\r",
+ "1 3 16\r",
+ "1 3 17\r",
+ "1 3 18\r",
+ "1 3 19\r",
+ "1 3 20\r",
+ "1 3 21\r",
+ "1 3 22\r",
+ "1 3 23\r",
+ "1 3 24\r",
+ "1 3 25\r",
+ "1 3 26\r",
+ "1 3 27\r",
+ "1 3 28\r",
+ "1 3 29\r",
+ "1 3 30\r",
+ "1 3 31\r",
+ "1 3 32\r",
+ "1 3 33\r",
+ "1 3 34\r",
+ "1 3 35\r",
+ "1 3 36\r",
+ "1 3 37\r",
+ "1 3 38\r",
+ "1 3 39\r",
+ "1 3 40\r",
+ "1 3 41\r",
+ "1 3 42\r",
+ "1 3 43\r",
+ "1 3 44\r",
+ "1 3 45\r",
+ "1 3 46\r",
+ "1 3 47\r",
+ "1 3 48\r",
+ "1 3 49\r",
+ "1 3 50\r",
+ "1 3 51\r",
+ "1 3 52\r",
+ "1 3 53\r",
+ "1 3 54\r",
+ "1 3 55\r",
+ "1 3 56\r",
+ "1 3 57\r",
+ "1 3 58\r",
+ "1 4 1\r",
+ "1 4 2\r",
+ "1 4 3\r",
+ "1 4 4\r",
+ "1 4 5\r",
+ "1 4 6\r",
+ "1 4 7\r",
+ "1 4 8\r",
+ "1 4 9\r",
+ "1 4 10\r",
+ "1 4 11\r",
+ "1 4 12\r",
+ "1 4 13\r",
+ "1 4 14\r",
+ "1 4 15\r",
+ "1 4 16\r",
+ "1 4 17\r",
+ "1 4 18\r",
+ "1 4 19\r",
+ "1 4 20\r",
+ "1 4 21\r",
+ "1 4 22\r",
+ "1 4 23\r",
+ "1 4 24\r",
+ "1 4 25\r",
+ "1 4 26\r",
+ "1 4 27\r",
+ "1 4 28\r",
+ "1 4 29\r",
+ "1 4 30\r",
+ "1 4 31\r",
+ "1 4 32\r",
+ "1 4 33\r",
+ "1 4 34\r",
+ "1 4 35\r",
+ "1 4 36\r",
+ "1 4 37\r",
+ "1 4 38\r",
+ "1 4 39\r",
+ "1 4 40\r",
+ "1 4 41\r",
+ "1 4 42\r",
+ "1 4 43\r",
+ "1 4 44\r",
+ "1 4 45\r",
+ "1 4 46\r",
+ "1 4 47\r",
+ "1 4 48\r",
+ "1 4 49\r",
+ "1 4 50\r",
+ "1 4 51\r",
+ "1 4 52\r",
+ "1 4 53\r",
+ "1 4 54\r",
+ "1 4 55\r",
+ "1 4 56\r",
+ "1 4 57\r",
+ "1 4 58\r",
+ "1 5 1\r",
+ "1 5 2\r",
+ "1 5 3\r",
+ "1 5 4\r",
+ "1 5 5\r",
+ "1 5 6\r",
+ "1 5 7\r",
+ "1 5 8\r",
+ "1 5 9\r",
+ "1 5 10\r",
+ "1 5 11\r",
+ "1 5 12\r",
+ "1 5 13\r",
+ "1 5 14\r",
+ "1 5 15\r",
+ "1 5 16\r",
+ "1 5 17\r",
+ "1 5 18\r",
+ "1 5 19\r",
+ "1 5 20\r",
+ "1 5 21\r",
+ "1 5 22\r",
+ "1 5 23\r",
+ "1 5 24\r",
+ "1 5 25\r",
+ "1 5 26\r",
+ "1 5 27\r",
+ "1 5 28\r",
+ "1 5 29\r",
+ "1 5 30\r",
+ "1 5 31\r",
+ "1 5 32\r",
+ "1 5 33\r",
+ "1 5 34\r",
+ "1 5 35\r",
+ "1 5 36\r",
+ "1 5 37\r",
+ "1 5 38\r",
+ "1 5 39\r",
+ "1 5 40\r",
+ "1 5 41\r",
+ "1 5 42\r",
+ "1 5 43\r",
+ "1 5 44\r",
+ "1 5 45\r",
+ "1 5 46\r",
+ "1 5 47\r",
+ "1 5 48\r",
+ "1 5 49\r",
+ "1 5 50\r",
+ "1 5 51\r",
+ "1 5 52\r",
+ "1 5 53\r",
+ "1 5 54\r",
+ "1 5 55\r",
+ "1 5 56\r",
+ "1 5 57\r",
+ "1 5 58\r",
+ "1 6 1\r",
+ "1 6 2\r",
+ "1 6 3\r",
+ "1 6 4\r",
+ "1 6 5\r",
+ "1 6 6\r",
+ "1 6 7\r",
+ "1 6 8\r",
+ "1 6 9\r",
+ "1 6 10\r",
+ "1 6 11\r",
+ "1 6 12\r",
+ "1 6 13\r",
+ "1 6 14\r",
+ "1 6 15\r",
+ "1 6 16\r",
+ "1 6 17\r",
+ "1 6 18\r",
+ "1 6 19\r",
+ "1 6 20\r",
+ "1 6 21\r",
+ "1 6 22\r",
+ "1 6 23\r",
+ "1 6 24\r",
+ "1 6 25\r",
+ "1 6 26\r",
+ "1 6 27\r",
+ "1 6 28\r",
+ "1 6 29\r",
+ "1 6 30\r",
+ "1 6 31\r",
+ "1 6 32\r",
+ "1 6 33\r",
+ "1 6 34\r",
+ "1 6 35\r",
+ "1 6 36\r",
+ "1 6 37\r",
+ "1 6 38\r",
+ "1 6 39\r",
+ "1 6 40\r",
+ "1 6 41\r",
+ "1 6 42\r",
+ "1 6 43\r",
+ "1 6 44\r",
+ "1 6 45\r",
+ "1 6 46\r",
+ "1 6 47\r",
+ "1 6 48\r",
+ "1 6 49\r",
+ "1 6 50\r",
+ "1 6 51\r",
+ "1 6 52\r",
+ "1 6 53\r",
+ "1 6 54\r",
+ "1 6 55\r",
+ "1 6 56\r",
+ "1 6 57\r",
+ "1 6 58\r",
+ "1 7 1\r",
+ "1 7 2\r",
+ "1 7 3\r",
+ "1 7 4\r",
+ "1 7 5\r",
+ "1 7 6\r",
+ "1 7 7\r",
+ "1 7 8\r",
+ "1 7 9\r",
+ "1 7 10\r",
+ "1 7 11\r",
+ "1 7 12\r",
+ "1 7 13\r",
+ "1 7 14\r",
+ "1 7 15\r",
+ "1 7 16\r",
+ "1 7 17\r",
+ "1 7 18\r",
+ "1 7 19\r",
+ "1 7 20\r",
+ "1 7 21\r",
+ "1 7 22\r",
+ "1 7 23\r",
+ "1 7 24\r",
+ "1 7 25\r",
+ "1 7 26\r",
+ "1 7 27\r",
+ "1 7 28\r",
+ "1 7 29\r",
+ "1 7 30\r",
+ "1 7 31\r",
+ "1 7 32\r",
+ "1 7 33\r",
+ "1 7 34\r",
+ "1 7 35\r",
+ "1 7 36\r",
+ "1 7 37\r",
+ "1 7 38\r",
+ "1 7 39\r",
+ "1 7 40\r",
+ "1 7 41\r",
+ "1 7 42\r",
+ "1 7 43\r",
+ "1 7 44\r",
+ "1 7 45\r",
+ "1 7 46\r",
+ "1 7 47\r",
+ "1 7 48\r",
+ "1 7 49\r",
+ "1 7 50\r",
+ "1 7 51\r",
+ "1 7 52\r",
+ "1 7 53\r",
+ "1 7 54\r",
+ "1 7 55\r",
+ "1 7 56\r",
+ "1 7 57\r",
+ "1 7 58\r",
+ "1 8 1\r",
+ "1 8 2\r",
+ "1 8 3\r",
+ "1 8 4\r",
+ "1 8 5\r",
+ "1 8 6\r",
+ "1 8 7\r",
+ "1 8 8\r",
+ "1 8 9\r",
+ "1 8 10\r",
+ "1 8 11\r",
+ "1 8 12\r",
+ "1 8 13\r",
+ "1 8 14\r",
+ "1 8 15\r",
+ "1 8 16\r",
+ "1 8 17\r",
+ "1 8 18\r",
+ "1 8 19\r",
+ "1 8 20\r",
+ "1 8 21\r",
+ "1 8 22\r",
+ "1 8 23\r",
+ "1 8 24\r",
+ "1 8 25\r",
+ "1 8 26\r",
+ "1 8 27\r",
+ "1 8 28\r",
+ "1 8 29\r",
+ "1 8 30\r",
+ "1 8 31\r",
+ "1 8 32\r",
+ "1 8 33\r",
+ "1 8 34\r",
+ "1 8 35\r",
+ "1 8 36\r",
+ "1 8 37\r",
+ "1 8 38\r",
+ "1 8 39\r",
+ "1 8 40\r",
+ "1 8 41\r",
+ "1 8 42\r",
+ "1 8 43\r",
+ "1 8 44\r",
+ "1 8 45\r",
+ "1 8 46\r",
+ "1 8 47\r",
+ "1 8 48\r",
+ "1 8 49\r",
+ "1 8 50\r",
+ "1 8 51\r",
+ "1 8 52\r",
+ "1 8 53\r",
+ "1 8 54\r",
+ "1 8 55\r",
+ "1 8 56\r",
+ "1 8 57\r",
+ "1 8 58\r",
+ "1 9 1\r",
+ "1 9 2\r",
+ "1 9 3\r",
+ "1 9 4\r",
+ "1 9 5\r",
+ "1 9 6\r",
+ "1 9 7\r",
+ "1 9 8\r",
+ "1 9 9\r",
+ "1 9 10\r",
+ "1 9 11\r",
+ "1 9 12\r",
+ "1 9 13\r",
+ "1 9 14\r",
+ "1 9 15\r",
+ "1 9 16\r",
+ "1 9 17\r",
+ "1 9 18\r",
+ "1 9 19\r",
+ "1 9 20\r",
+ "1 9 21\r",
+ "1 9 22\r",
+ "1 9 23\r",
+ "1 9 24\r",
+ "1 9 25\r",
+ "1 9 26\r",
+ "1 9 27\r",
+ "1 9 28\r",
+ "1 9 29\r",
+ "1 9 30\r",
+ "1 9 31\r",
+ "1 9 32\r",
+ "1 9 33\r",
+ "1 9 34\r",
+ "1 9 35\r",
+ "1 9 36\r",
+ "1 9 37\r",
+ "1 9 38\r",
+ "1 9 39\r",
+ "1 9 40\r",
+ "1 9 41\r",
+ "1 9 42\r",
+ "1 9 43\r",
+ "1 9 44\r",
+ "1 9 45\r",
+ "1 9 46\r",
+ "1 9 47\r",
+ "1 9 48\r",
+ "1 9 49\r",
+ "1 9 50\r",
+ "1 9 51\r",
+ "1 9 52\r",
+ "1 9 53\r",
+ "1 9 54\r",
+ "1 9 55\r",
+ "1 9 56\r",
+ "1 9 57\r",
+ "1 9 58\r",
+ "1 10 1\r",
+ "1 10 2\r",
+ "1 10 3\r",
+ "1 10 4\r",
+ "1 10 5\r",
+ "1 10 6\r",
+ "1 10 7\r",
+ "1 10 8\r",
+ "1 10 9\r",
+ "1 10 10\r",
+ "1 10 11\r",
+ "1 10 12\r",
+ "1 10 13\r",
+ "1 10 14\r",
+ "1 10 15\r",
+ "1 10 16\r",
+ "1 10 17\r",
+ "1 10 18\r",
+ "1 10 19\r",
+ "1 10 20\r",
+ "1 10 21\r",
+ "1 10 22\r",
+ "1 10 23\r",
+ "1 10 24\r",
+ "1 10 25\r",
+ "1 10 26\r",
+ "1 10 27\r",
+ "1 10 28\r",
+ "1 10 29\r",
+ "1 10 30\r",
+ "1 10 31\r",
+ "1 10 32\r",
+ "1 10 33\r",
+ "1 10 34\r",
+ "1 10 35\r",
+ "1 10 36\r",
+ "1 10 37\r",
+ "1 10 38\r",
+ "1 10 39\r",
+ "1 10 40\r",
+ "1 10 41\r",
+ "1 10 42\r",
+ "1 10 43\r",
+ "1 10 44\r",
+ "1 10 45\r",
+ "1 10 46\r",
+ "1 10 47\r",
+ "1 10 48\r",
+ "1 10 49\r",
+ "1 10 50\r",
+ "1 10 51\r",
+ "1 10 52\r",
+ "1 10 53\r",
+ "1 10 54\r",
+ "1 10 55\r",
+ "1 10 56\r",
+ "1 10 57\r",
+ "1 10 58\r",
+ "1 11 1\r",
+ "1 11 2\r",
+ "1 11 3\r",
+ "1 11 4\r",
+ "1 11 5\r",
+ "1 11 6\r",
+ "1 11 7\r",
+ "1 11 8\r",
+ "1 11 9\r",
+ "1 11 10\r",
+ "1 11 11\r",
+ "1 11 12\r",
+ "1 11 13\r",
+ "1 11 14\r",
+ "1 11 15\r",
+ "1 11 16\r",
+ "1 11 17\r",
+ "1 11 18\r",
+ "1 11 19\r",
+ "1 11 20\r",
+ "1 11 21\r",
+ "1 11 22\r",
+ "1 11 23\r",
+ "1 11 24\r",
+ "1 11 25\r",
+ "1 11 26\r",
+ "1 11 27\r",
+ "1 11 28\r",
+ "1 11 29\r",
+ "1 11 30\r",
+ "1 11 31\r",
+ "1 11 32\r",
+ "1 11 33\r",
+ "1 11 34\r",
+ "1 11 35\r",
+ "1 11 36\r",
+ "1 11 37\r",
+ "1 11 38\r",
+ "1 11 39\r",
+ "1 11 40\r",
+ "1 11 41\r",
+ "1 11 42\r",
+ "1 11 43\r",
+ "1 11 44\r",
+ "1 11 45\r",
+ "1 11 46\r",
+ "1 11 47\r",
+ "1 11 48\r",
+ "1 11 49\r",
+ "1 11 50\r",
+ "1 11 51\r",
+ "1 11 52\r",
+ "1 11 53\r",
+ "1 11 54\r",
+ "1 11 55\r",
+ "1 11 56\r",
+ "1 11 57\r",
+ "1 11 58\r",
+ "1 12 1\r",
+ "1 12 2\r",
+ "1 12 3\r",
+ "1 12 4\r",
+ "1 12 5\r",
+ "1 12 6\r",
+ "1 12 7\r",
+ "1 12 8\r",
+ "1 12 9\r",
+ "1 12 10\r",
+ "1 12 11\r",
+ "1 12 12\r",
+ "1 12 13\r",
+ "1 12 14\r",
+ "1 12 15\r",
+ "1 12 16\r",
+ "1 12 17\r",
+ "1 12 18\r",
+ "1 12 19\r",
+ "1 12 20\r",
+ "1 12 21\r",
+ "1 12 22\r",
+ "1 12 23\r",
+ "1 12 24\r",
+ "1 12 25\r",
+ "1 12 26\r",
+ "1 12 27\r",
+ "1 12 28\r",
+ "1 12 29\r",
+ "1 12 30\r",
+ "1 12 31\r",
+ "1 12 32\r",
+ "1 12 33\r",
+ "1 12 34\r",
+ "1 12 35\r",
+ "1 12 36\r",
+ "1 12 37\r",
+ "1 12 38\r",
+ "1 12 39\r",
+ "1 12 40\r",
+ "1 12 41\r",
+ "1 12 42\r",
+ "1 12 43\r",
+ "1 12 44\r",
+ "1 12 45\r",
+ "1 12 46\r",
+ "1 12 47\r",
+ "1 12 48\r",
+ "1 12 49\r",
+ "1 12 50\r",
+ "1 12 51\r",
+ "1 12 52\r",
+ "1 12 53\r",
+ "1 12 54\r",
+ "1 12 55\r",
+ "1 12 56\r",
+ "1 12 57\r",
+ "1 12 58\r",
+ "1 13 1\r",
+ "1 13 2\r",
+ "1 13 3\r",
+ "1 13 4\r",
+ "1 13 5\r",
+ "1 13 6\r",
+ "1 13 7\r",
+ "1 13 8\r",
+ "1 13 9\r",
+ "1 13 10\r",
+ "1 13 11\r",
+ "1 13 12\r",
+ "1 13 13\r",
+ "1 13 14\r",
+ "1 13 15\r",
+ "1 13 16\r",
+ "1 13 17\r",
+ "1 13 18\r",
+ "1 13 19\r",
+ "1 13 20\r",
+ "1 13 21\r",
+ "1 13 22\r",
+ "1 13 23\r",
+ "1 13 24\r",
+ "1 13 25\r",
+ "1 13 26\r",
+ "1 13 27\r",
+ "1 13 28\r",
+ "1 13 29\r",
+ "1 13 30\r",
+ "1 13 31\r",
+ "1 13 32\r",
+ "1 13 33\r",
+ "1 13 34\r",
+ "1 13 35\r",
+ "1 13 36\r",
+ "1 13 37\r",
+ "1 13 38\r",
+ "1 13 39\r",
+ "1 13 40\r",
+ "1 13 41\r",
+ "1 13 42\r",
+ "1 13 43\r",
+ "1 13 44\r",
+ "1 13 45\r",
+ "1 13 46\r",
+ "1 13 47\r",
+ "1 13 48\r",
+ "1 13 49\r",
+ "1 13 50\r",
+ "1 13 51\r",
+ "1 13 52\r",
+ "1 13 53\r",
+ "1 13 54\r",
+ "1 13 55\r",
+ "1 13 56\r",
+ "1 13 57\r",
+ "1 13 58\r",
+ "1 14 1\r",
+ "1 14 2\r",
+ "1 14 3\r",
+ "1 14 4\r",
+ "1 14 5\r",
+ "1 14 6\r",
+ "1 14 7\r",
+ "1 14 8\r",
+ "1 14 9\r",
+ "1 14 10\r",
+ "1 14 11\r",
+ "1 14 12\r",
+ "1 14 13\r",
+ "1 14 14\r",
+ "1 14 15\r",
+ "1 14 16\r",
+ "1 14 17\r",
+ "1 14 18\r",
+ "1 14 19\r",
+ "1 14 20\r",
+ "1 14 21\r",
+ "1 14 22\r",
+ "1 14 23\r",
+ "1 14 24\r",
+ "1 14 25\r",
+ "1 14 26\r",
+ "1 14 27\r",
+ "1 14 28\r",
+ "1 14 29\r",
+ "1 14 30\r",
+ "1 14 31\r",
+ "1 14 32\r",
+ "1 14 33\r",
+ "1 14 34\r",
+ "1 14 35\r",
+ "1 14 36\r",
+ "1 14 37\r",
+ "1 14 38\r",
+ "1 14 39\r",
+ "1 14 40\r",
+ "1 14 41\r",
+ "1 14 42\r",
+ "1 14 43\r",
+ "1 14 44\r",
+ "1 14 45\r",
+ "1 14 46\r",
+ "1 14 47\r",
+ "1 14 48\r",
+ "1 14 49\r",
+ "1 14 50\r",
+ "1 14 51\r",
+ "1 14 52\r",
+ "1 14 53\r",
+ "1 14 54\r",
+ "1 14 55\r",
+ "1 14 56\r",
+ "1 14 57\r",
+ "1 14 58\r",
+ "1 15 1\r",
+ "1 15 2\r",
+ "1 15 3\r",
+ "1 15 4\r",
+ "1 15 5\r",
+ "1 15 6\r",
+ "1 15 7\r",
+ "1 15 8\r",
+ "1 15 9\r",
+ "1 15 10\r",
+ "1 15 11\r",
+ "1 15 12\r",
+ "1 15 13\r",
+ "1 15 14\r",
+ "1 15 15\r",
+ "1 15 16\r",
+ "1 15 17\r",
+ "1 15 18\r",
+ "1 15 19\r",
+ "1 15 20\r",
+ "1 15 21\r",
+ "1 15 22\r",
+ "1 15 23\r",
+ "1 15 24\r",
+ "1 15 25\r",
+ "1 15 26\r",
+ "1 15 27\r",
+ "1 15 28\r",
+ "1 15 29\r",
+ "1 15 30\r",
+ "1 15 31\r",
+ "1 15 32\r",
+ "1 15 33\r",
+ "1 15 34\r",
+ "1 15 35\r",
+ "1 15 36\r",
+ "1 15 37\r",
+ "1 15 38\r",
+ "1 15 39\r",
+ "1 15 40\r",
+ "1 15 41\r",
+ "1 15 42\r",
+ "1 15 43\r",
+ "1 15 44\r",
+ "1 15 45\r",
+ "1 15 46\r",
+ "1 15 47\r",
+ "1 15 48\r",
+ "1 15 49\r",
+ "1 15 50\r",
+ "1 15 51\r",
+ "1 15 52\r",
+ "1 15 53\r",
+ "1 15 54\r",
+ "1 15 55\r",
+ "1 15 56\r",
+ "1 15 57\r",
+ "1 15 58\r",
+ "1 16 1\r",
+ "1 16 2\r",
+ "1 16 3\r",
+ "1 16 4\r",
+ "1 16 5\r",
+ "1 16 6\r",
+ "1 16 7\r",
+ "1 16 8\r",
+ "1 16 9\r",
+ "1 16 10\r",
+ "1 16 11\r",
+ "1 16 12\r",
+ "1 16 13\r",
+ "1 16 14\r",
+ "1 16 15\r",
+ "1 16 16\r",
+ "1 16 17\r",
+ "1 16 18\r",
+ "1 16 19\r",
+ "1 16 20\r",
+ "1 16 21\r",
+ "1 16 22\r",
+ "1 16 23\r",
+ "1 16 24\r",
+ "1 16 25\r",
+ "1 16 26\r",
+ "1 16 27\r",
+ "1 16 28\r",
+ "1 16 29\r",
+ "1 16 30\r",
+ "1 16 31\r",
+ "1 16 32\r",
+ "1 16 33\r",
+ "1 16 34\r",
+ "1 16 35\r",
+ "1 16 36\r",
+ "1 16 37\r",
+ "1 16 38\r",
+ "1 16 39\r",
+ "1 16 40\r",
+ "1 16 41\r",
+ "1 16 42\r",
+ "1 16 43\r",
+ "1 16 44\r",
+ "1 16 45\r",
+ "1 16 46\r",
+ "1 16 47\r",
+ "1 16 48\r",
+ "1 16 49\r",
+ "1 16 50\r",
+ "1 16 51\r",
+ "1 16 52\r",
+ "1 16 53\r",
+ "1 16 54\r",
+ "1 16 55\r",
+ "1 16 56\r",
+ "1 16 57\r",
+ "1 16 58\r",
+ "1 17 1\r",
+ "1 17 2\r",
+ "1 17 3\r",
+ "1 17 4\r",
+ "1 17 5\r",
+ "1 17 6\r",
+ "1 17 7\r",
+ "1 17 8\r",
+ "1 17 9\r",
+ "1 17 10\r",
+ "1 17 11\r",
+ "1 17 12\r",
+ "1 17 13\r",
+ "1 17 14\r",
+ "1 17 15\r",
+ "1 17 16\r",
+ "1 17 17\r",
+ "1 17 18\r",
+ "1 17 19\r",
+ "1 17 20\r",
+ "1 17 21\r",
+ "1 17 22\r",
+ "1 17 23\r",
+ "1 17 24\r",
+ "1 17 25\r",
+ "1 17 26\r",
+ "1 17 27\r",
+ "1 17 28\r",
+ "1 17 29\r",
+ "1 17 30\r",
+ "1 17 31\r",
+ "1 17 32\r",
+ "1 17 33\r",
+ "1 17 34\r",
+ "1 17 35\r",
+ "1 17 36\r",
+ "1 17 37\r",
+ "1 17 38\r",
+ "1 17 39\r",
+ "1 17 40\r",
+ "1 17 41\r",
+ "1 17 42\r",
+ "1 17 43\r",
+ "1 17 44\r",
+ "1 17 45\r",
+ "1 17 46\r",
+ "1 17 47\r",
+ "1 17 48\r",
+ "1 17 49\r",
+ "1 17 50\r",
+ "1 17 51\r",
+ "1 17 52\r",
+ "1 17 53\r",
+ "1 17 54\r",
+ "1 17 55\r",
+ "1 17 56\r",
+ "1 17 57\r",
+ "1 17 58\r",
+ "1 18 1\r",
+ "1 18 2\r",
+ "1 18 3\r",
+ "1 18 4\r",
+ "1 18 5\r",
+ "1 18 6\r",
+ "1 18 7\r",
+ "1 18 8\r",
+ "1 18 9\r",
+ "1 18 10\r",
+ "1 18 11\r",
+ "1 18 12\r",
+ "1 18 13\r",
+ "1 18 14\r",
+ "1 18 15\r",
+ "1 18 16\r",
+ "1 18 17\r",
+ "1 18 18\r",
+ "1 18 19\r",
+ "1 18 20\r",
+ "1 18 21\r",
+ "1 18 22\r",
+ "1 18 23\r",
+ "1 18 24\r",
+ "1 18 25\r",
+ "1 18 26\r",
+ "1 18 27\r",
+ "1 18 28\r",
+ "1 18 29\r",
+ "1 18 30\r",
+ "1 18 31\r",
+ "1 18 32\r",
+ "1 18 33\r",
+ "1 18 34\r",
+ "1 18 35\r",
+ "1 18 36\r",
+ "1 18 37\r",
+ "1 18 38\r",
+ "1 18 39\r",
+ "1 18 40\r",
+ "1 18 41\r",
+ "1 18 42\r",
+ "1 18 43\r",
+ "1 18 44\r",
+ "1 18 45\r",
+ "1 18 46\r",
+ "1 18 47\r",
+ "1 18 48\r",
+ "1 18 49\r",
+ "1 18 50\r",
+ "1 18 51\r",
+ "1 18 52\r",
+ "1 18 53\r",
+ "1 18 54\r",
+ "1 18 55\r",
+ "1 18 56\r",
+ "1 18 57\r",
+ "1 18 58\r",
+ "1 19 1\r",
+ "1 19 2\r",
+ "1 19 3\r",
+ "1 19 4\r",
+ "1 19 5\r",
+ "1 19 6\r",
+ "1 19 7\r",
+ "1 19 8\r",
+ "1 19 9\r",
+ "1 19 10\r",
+ "1 19 11\r",
+ "1 19 12\r",
+ "1 19 13\r",
+ "1 19 14\r",
+ "1 19 15\r",
+ "1 19 16\r",
+ "1 19 17\r",
+ "1 19 18\r",
+ "1 19 19\r",
+ "1 19 20\r",
+ "1 19 21\r",
+ "1 19 22\r",
+ "1 19 23\r",
+ "1 19 24\r",
+ "1 19 25\r",
+ "1 19 26\r",
+ "1 19 27\r",
+ "1 19 28\r",
+ "1 19 29\r",
+ "1 19 30\r",
+ "1 19 31\r",
+ "1 19 32\r",
+ "1 19 33\r",
+ "1 19 34\r",
+ "1 19 35\r",
+ "1 19 36\r",
+ "1 19 37\r",
+ "1 19 38\r",
+ "1 19 39\r",
+ "1 19 40\r",
+ "1 19 41\r",
+ "1 19 42\r",
+ "1 19 43\r",
+ "1 19 44\r",
+ "1 19 45\r",
+ "1 19 46\r",
+ "1 19 47\r",
+ "1 19 48\r",
+ "1 19 49\r",
+ "1 19 50\r",
+ "1 19 51\r",
+ "1 19 52\r",
+ "1 19 53\r",
+ "1 19 54\r",
+ "1 19 55\r",
+ "1 19 56\r",
+ "1 19 57\r",
+ "1 19 58\r",
+ "1 20 1\r",
+ "1 20 2\r",
+ "1 20 3\r",
+ "1 20 4\r",
+ "1 20 5\r",
+ "1 20 6\r",
+ "1 20 7\r",
+ "1 20 8\r",
+ "1 20 9\r",
+ "1 20 10\r",
+ "1 20 11\r",
+ "1 20 12\r",
+ "1 20 13\r",
+ "1 20 14\r",
+ "1 20 15\r",
+ "1 20 16\r",
+ "1 20 17\r",
+ "1 20 18\r",
+ "1 20 19\r",
+ "1 20 20\r",
+ "1 20 21\r",
+ "1 20 22\r",
+ "1 20 23\r",
+ "1 20 24\r",
+ "1 20 25\r",
+ "1 20 26\r",
+ "1 20 27\r",
+ "1 20 28\r",
+ "1 20 29\r",
+ "1 20 30\r",
+ "1 20 31\r",
+ "1 20 32\r",
+ "1 20 33\r",
+ "1 20 34\r",
+ "1 20 35\r",
+ "1 20 36\r",
+ "1 20 37\r",
+ "1 20 38\r",
+ "1 20 39\r",
+ "1 20 40\r",
+ "1 20 41\r",
+ "1 20 42\r",
+ "1 20 43\r",
+ "1 20 44\r",
+ "1 20 45\r",
+ "1 20 46\r",
+ "1 20 47\r",
+ "1 20 48\r",
+ "1 20 49\r",
+ "1 20 50\r",
+ "1 20 51\r",
+ "1 20 52\r",
+ "1 20 53\r",
+ "1 20 54\r",
+ "1 20 55\r",
+ "1 20 56\r",
+ "1 20 57\r",
+ "1 20 58\r",
+ "1 21 1\r",
+ "1 21 2\r",
+ "1 21 3\r",
+ "1 21 4\r",
+ "1 21 5\r",
+ "1 21 6\r",
+ "1 21 7\r",
+ "1 21 8\r",
+ "1 21 9\r",
+ "1 21 10\r",
+ "1 21 11\r",
+ "1 21 12\r",
+ "1 21 13\r",
+ "1 21 14\r",
+ "1 21 15\r",
+ "1 21 16\r",
+ "1 21 17\r",
+ "1 21 18\r",
+ "1 21 19\r",
+ "1 21 20\r",
+ "1 21 21\r",
+ "1 21 22\r",
+ "1 21 23\r",
+ "1 21 24\r",
+ "1 21 25\r",
+ "1 21 26\r",
+ "1 21 27\r",
+ "1 21 28\r",
+ "1 21 29\r",
+ "1 21 30\r",
+ "1 21 31\r",
+ "1 21 32\r",
+ "1 21 33\r",
+ "1 21 34\r",
+ "1 21 35\r",
+ "1 21 36\r",
+ "1 21 37\r",
+ "1 21 38\r",
+ "1 21 39\r",
+ "1 21 40\r",
+ "1 21 41\r",
+ "1 21 42\r",
+ "1 21 43\r",
+ "1 21 44\r",
+ "1 21 45\r",
+ "1 21 46\r",
+ "1 21 47\r",
+ "1 21 48\r",
+ "1 21 49\r",
+ "1 21 50\r",
+ "1 21 51\r",
+ "1 21 52\r",
+ "1 21 53\r",
+ "1 21 54\r",
+ "1 21 55\r",
+ "1 21 56\r",
+ "1 21 57\r",
+ "1 21 58\r",
+ "1 22 1\r",
+ "1 22 2\r",
+ "1 22 3\r",
+ "1 22 4\r",
+ "1 22 5\r",
+ "1 22 6\r",
+ "1 22 7\r",
+ "1 22 8\r",
+ "1 22 9\r",
+ "1 22 10\r",
+ "1 22 11\r",
+ "1 22 12\r",
+ "1 22 13\r",
+ "1 22 14\r",
+ "1 22 15\r",
+ "1 22 16\r",
+ "1 22 17\r",
+ "1 22 18\r",
+ "1 22 19\r",
+ "1 22 20\r",
+ "1 22 21\r",
+ "1 22 22\r",
+ "1 22 23\r",
+ "1 22 24\r",
+ "1 22 25\r",
+ "1 22 26\r",
+ "1 22 27\r",
+ "1 22 28\r",
+ "1 22 29\r",
+ "1 22 30\r",
+ "1 22 31\r",
+ "1 22 32\r",
+ "1 22 33\r",
+ "1 22 34\r",
+ "1 22 35\r",
+ "1 22 36\r",
+ "1 22 37\r",
+ "1 22 38\r",
+ "1 22 39\r",
+ "1 22 40\r",
+ "1 22 41\r",
+ "1 22 42\r",
+ "1 22 43\r",
+ "1 22 44\r",
+ "1 22 45\r",
+ "1 22 46\r",
+ "1 22 47\r",
+ "1 22 48\r",
+ "1 22 49\r",
+ "1 22 50\r",
+ "1 22 51\r",
+ "1 22 52\r",
+ "1 22 53\r",
+ "1 22 54\r",
+ "1 22 55\r",
+ "1 22 56\r",
+ "1 22 57\r",
+ "1 22 58\r",
+ "1 23 1\r",
+ "1 23 2\r",
+ "1 23 3\r",
+ "1 23 4\r",
+ "1 23 5\r",
+ "1 23 6\r",
+ "1 23 7\r",
+ "1 23 8\r",
+ "1 23 9\r",
+ "1 23 10\r",
+ "1 23 11\r",
+ "1 23 12\r",
+ "1 23 13\r",
+ "1 23 14\r",
+ "1 23 15\r",
+ "1 23 16\r",
+ "1 23 17\r",
+ "1 23 18\r",
+ "1 23 19\r",
+ "1 23 20\r",
+ "1 23 21\r",
+ "1 23 22\r",
+ "1 23 23\r",
+ "1 23 24\r",
+ "1 23 25\r",
+ "1 23 26\r",
+ "1 23 27\r",
+ "1 23 28\r",
+ "1 23 29\r",
+ "1 23 30\r",
+ "1 23 31\r",
+ "1 23 32\r",
+ "1 23 33\r",
+ "1 23 34\r",
+ "1 23 35\r",
+ "1 23 36\r",
+ "1 23 37\r",
+ "1 23 38\r",
+ "1 23 39\r",
+ "1 23 40\r",
+ "1 23 41\r",
+ "1 23 42\r",
+ "1 23 43\r",
+ "1 23 44\r",
+ "1 23 45\r",
+ "1 23 46\r",
+ "1 23 47\r",
+ "1 23 48\r",
+ "1 23 49\r",
+ "1 23 50\r",
+ "1 23 51\r",
+ "1 23 52\r",
+ "1 23 53\r",
+ "1 23 54\r",
+ "1 23 55\r",
+ "1 23 56\r",
+ "1 23 57\r",
+ "1 23 58\r",
+ "1 24 1\r",
+ "1 24 2\r",
+ "1 24 3\r",
+ "1 24 4\r",
+ "1 24 5\r",
+ "1 24 6\r",
+ "1 24 7\r",
+ "1 24 8\r",
+ "1 24 9\r",
+ "1 24 10\r",
+ "1 24 11\r",
+ "1 24 12\r",
+ "1 24 13\r",
+ "1 24 14\r",
+ "1 24 15\r",
+ "1 24 16\r",
+ "1 24 17\r",
+ "1 24 18\r",
+ "1 24 19\r",
+ "1 24 20\r",
+ "1 24 21\r",
+ "1 24 22\r",
+ "1 24 23\r",
+ "1 24 24\r",
+ "1 24 25\r",
+ "1 24 26\r",
+ "1 24 27\r",
+ "1 24 28\r",
+ "1 24 29\r",
+ "1 24 30\r",
+ "1 24 31\r",
+ "1 24 32\r",
+ "1 24 33\r",
+ "1 24 34\r",
+ "1 24 35\r",
+ "1 24 36\r",
+ "1 24 37\r",
+ "1 24 38\r",
+ "1 24 39\r",
+ "1 24 40\r",
+ "1 24 41\r",
+ "1 24 42\r",
+ "1 24 43\r",
+ "1 24 44\r",
+ "1 24 45\r",
+ "1 24 46\r",
+ "1 24 47\r",
+ "1 24 48\r",
+ "1 24 49\r",
+ "1 24 50\r",
+ "1 24 51\r",
+ "1 24 52\r",
+ "1 24 53\r",
+ "1 24 54\r",
+ "1 24 55\r",
+ "1 24 56\r",
+ "1 24 57\r",
+ "1 24 58\r",
+ "1 25 1\r",
+ "1 25 2\r",
+ "1 25 3\r",
+ "1 25 4\r",
+ "1 25 5\r",
+ "1 25 6\r",
+ "1 25 7\r",
+ "1 25 8\r",
+ "1 25 9\r",
+ "1 25 10\r",
+ "1 25 11\r",
+ "1 25 12\r",
+ "1 25 13\r",
+ "1 25 14\r",
+ "1 25 15\r",
+ "1 25 16\r",
+ "1 25 17\r",
+ "1 25 18\r",
+ "1 25 19\r",
+ "1 25 20\r",
+ "1 25 21\r",
+ "1 25 22\r",
+ "1 25 23\r",
+ "1 25 24\r",
+ "1 25 25\r",
+ "1 25 26\r",
+ "1 25 27\r",
+ "1 25 28\r",
+ "1 25 29\r",
+ "1 25 30\r",
+ "1 25 31\r",
+ "1 25 32\r",
+ "1 25 33\r",
+ "1 25 34\r",
+ "1 25 35\r",
+ "1 25 36\r",
+ "1 25 37\r",
+ "1 25 38\r",
+ "1 25 39\r",
+ "1 25 40\r",
+ "1 25 41\r",
+ "1 25 42\r",
+ "1 25 43\r",
+ "1 25 44\r",
+ "1 25 45\r",
+ "1 25 46\r",
+ "1 25 47\r",
+ "1 25 48\r",
+ "1 25 49\r",
+ "1 25 50\r",
+ "1 25 51\r",
+ "1 25 52\r",
+ "1 25 53\r",
+ "1 25 54\r",
+ "1 25 55\r",
+ "1 25 56\r",
+ "1 25 57\r",
+ "1 25 58\r",
+ "1 26 1\r",
+ "1 26 2\r",
+ "1 26 3\r",
+ "1 26 4\r",
+ "1 26 5\r",
+ "1 26 6\r",
+ "1 26 7\r",
+ "1 26 8\r",
+ "1 26 9\r",
+ "1 26 10\r",
+ "1 26 11\r",
+ "1 26 12\r",
+ "1 26 13\r",
+ "1 26 14\r",
+ "1 26 15\r",
+ "1 26 16\r",
+ "1 26 17\r",
+ "1 26 18\r",
+ "1 26 19\r",
+ "1 26 20\r",
+ "1 26 21\r",
+ "1 26 22\r",
+ "1 26 23\r",
+ "1 26 24\r",
+ "1 26 25\r",
+ "1 26 26\r",
+ "1 26 27\r",
+ "1 26 28\r",
+ "1 26 29\r",
+ "1 26 30\r",
+ "1 26 31\r",
+ "1 26 32\r",
+ "1 26 33\r",
+ "1 26 34\r",
+ "1 26 35\r",
+ "1 26 36\r",
+ "1 26 37\r",
+ "1 26 38\r",
+ "1 26 39\r",
+ "1 26 40\r",
+ "1 26 41\r",
+ "1 26 42\r",
+ "1 26 43\r",
+ "1 26 44\r",
+ "1 26 45\r",
+ "1 26 46\r",
+ "1 26 47\r",
+ "1 26 48\r",
+ "1 26 49\r",
+ "1 26 50\r",
+ "1 26 51\r",
+ "1 26 52\r",
+ "1 26 53\r",
+ "1 26 54\r",
+ "1 26 55\r",
+ "1 26 56\r",
+ "1 26 57\r",
+ "1 26 58\r",
+ "1 27 1\r",
+ "1 27 2\r",
+ "1 27 3\r",
+ "1 27 4\r",
+ "1 27 5\r",
+ "1 27 6\r",
+ "1 27 7\r",
+ "1 27 8\r",
+ "1 27 9\r",
+ "1 27 10\r",
+ "1 27 11\r",
+ "1 27 12\r",
+ "1 27 13\r",
+ "1 27 14\r",
+ "1 27 15\r",
+ "1 27 16\r",
+ "1 27 17\r",
+ "1 27 18\r",
+ "1 27 19\r",
+ "1 27 20\r",
+ "1 27 21\r",
+ "1 27 22\r",
+ "1 27 23\r",
+ "1 27 24\r",
+ "1 27 25\r",
+ "1 27 26\r",
+ "1 27 27\r",
+ "1 27 28\r",
+ "1 27 29\r",
+ "1 27 30\r",
+ "1 27 31\r",
+ "1 27 32\r",
+ "1 27 33\r",
+ "1 27 34\r",
+ "1 27 35\r",
+ "1 27 36\r",
+ "1 27 37\r",
+ "1 27 38\r",
+ "1 27 39\r",
+ "1 27 40\r",
+ "1 27 41\r",
+ "1 27 42\r",
+ "1 27 43\r",
+ "1 27 44\r",
+ "1 27 45\r",
+ "1 27 46\r",
+ "1 27 47\r",
+ "1 27 48\r",
+ "1 27 49\r",
+ "1 27 50\r",
+ "1 27 51\r",
+ "1 27 52\r",
+ "1 27 53\r",
+ "1 27 54\r",
+ "1 27 55\r",
+ "1 27 56\r",
+ "1 27 57\r",
+ "1 27 58\r",
+ "1 28 1\r",
+ "1 28 2\r",
+ "1 28 3\r",
+ "1 28 4\r",
+ "1 28 5\r",
+ "1 28 6\r",
+ "1 28 7\r",
+ "1 28 8\r",
+ "1 28 9\r",
+ "1 28 10\r",
+ "1 28 11\r",
+ "1 28 12\r",
+ "1 28 13\r",
+ "1 28 14\r",
+ "1 28 15\r",
+ "1 28 16\r",
+ "1 28 17\r",
+ "1 28 18\r",
+ "1 28 19\r",
+ "1 28 20\r",
+ "1 28 21\r",
+ "1 28 22\r",
+ "1 28 23\r",
+ "1 28 24\r",
+ "1 28 25\r",
+ "1 28 26\r",
+ "1 28 27\r",
+ "1 28 28\r",
+ "1 28 29\r",
+ "1 28 30\r",
+ "1 28 31\r",
+ "1 28 32\r",
+ "1 28 33\r",
+ "1 28 34\r",
+ "1 28 35\r",
+ "1 28 36\r",
+ "1 28 37\r",
+ "1 28 38\r",
+ "1 28 39\r",
+ "1 28 40\r",
+ "1 28 41\r",
+ "1 28 42\r",
+ "1 28 43\r",
+ "1 28 44\r",
+ "1 28 45\r",
+ "1 28 46\r",
+ "1 28 47\r",
+ "1 28 48\r",
+ "1 28 49\r",
+ "1 28 50\r",
+ "1 28 51\r",
+ "1 28 52\r",
+ "1 28 53\r",
+ "1 28 54\r",
+ "1 28 55\r",
+ "1 28 56\r",
+ "1 28 57\r",
+ "1 28 58\r",
+ "1 29 1\r",
+ "1 29 2\r",
+ "1 29 3\r",
+ "1 29 4\r",
+ "1 29 5\r",
+ "1 29 6\r",
+ "1 29 7\r",
+ "1 29 8\r",
+ "1 29 9\r",
+ "1 29 10\r",
+ "1 29 11\r",
+ "1 29 12\r",
+ "1 29 13\r",
+ "1 29 14\r",
+ "1 29 15\r",
+ "1 29 16\r",
+ "1 29 17\r",
+ "1 29 18\r",
+ "1 29 19\r",
+ "1 29 20\r",
+ "1 29 21\r",
+ "1 29 22\r",
+ "1 29 23\r",
+ "1 29 24\r",
+ "1 29 25\r",
+ "1 29 26\r",
+ "1 29 27\r",
+ "1 29 28\r",
+ "1 29 29\r",
+ "1 29 30\r",
+ "1 29 31\r",
+ "1 29 32\r",
+ "1 29 33\r",
+ "1 29 34\r",
+ "1 29 35\r",
+ "1 29 36\r",
+ "1 29 37\r",
+ "1 29 38\r",
+ "1 29 39\r",
+ "1 29 40\r",
+ "1 29 41\r",
+ "1 29 42\r",
+ "1 29 43\r",
+ "1 29 44\r",
+ "1 29 45\r",
+ "1 29 46\r",
+ "1 29 47\r",
+ "1 29 48\r",
+ "1 29 49\r",
+ "1 29 50\r",
+ "1 29 51\r",
+ "1 29 52\r",
+ "1 29 53\r",
+ "1 29 54\r",
+ "1 29 55\r",
+ "1 29 56\r",
+ "1 29 57\r",
+ "1 29 58\r",
+ "1 30 1\r",
+ "1 30 2\r",
+ "1 30 3\r",
+ "1 30 4\r",
+ "1 30 5\r",
+ "1 30 6\r",
+ "1 30 7\r",
+ "1 30 8\r",
+ "1 30 9\r",
+ "1 30 10\r",
+ "1 30 11\r",
+ "1 30 12\r",
+ "1 30 13\r",
+ "1 30 14\r",
+ "1 30 15\r",
+ "1 30 16\r",
+ "1 30 17\r",
+ "1 30 18\r",
+ "1 30 19\r",
+ "1 30 20\r",
+ "1 30 21\r",
+ "1 30 22\r",
+ "1 30 23\r",
+ "1 30 24\r",
+ "1 30 25\r",
+ "1 30 26\r",
+ "1 30 27\r",
+ "1 30 28\r",
+ "1 30 29\r",
+ "1 30 30\r",
+ "1 30 31\r",
+ "1 30 32\r",
+ "1 30 33\r",
+ "1 30 34\r",
+ "1 30 35\r",
+ "1 30 36\r",
+ "1 30 37\r",
+ "1 30 38\r",
+ "1 30 39\r",
+ "1 30 40\r",
+ "1 30 41\r",
+ "1 30 42\r",
+ "1 30 43\r",
+ "1 30 44\r",
+ "1 30 45\r",
+ "1 30 46\r",
+ "1 30 47\r",
+ "1 30 48\r",
+ "1 30 49\r",
+ "1 30 50\r",
+ "1 30 51\r",
+ "1 30 52\r",
+ "1 30 53\r",
+ "1 30 54\r",
+ "1 30 55\r",
+ "1 30 56\r",
+ "1 30 57\r",
+ "1 30 58\r",
+ "1 31 1\r",
+ "1 31 2\r",
+ "1 31 3\r",
+ "1 31 4\r",
+ "1 31 5\r",
+ "1 31 6\r",
+ "1 31 7\r",
+ "1 31 8\r",
+ "1 31 9\r",
+ "1 31 10\r",
+ "1 31 11\r",
+ "1 31 12\r",
+ "1 31 13\r",
+ "1 31 14\r",
+ "1 31 15\r",
+ "1 31 16\r",
+ "1 31 17\r",
+ "1 31 18\r",
+ "1 31 19\r",
+ "1 31 20\r",
+ "1 31 21\r",
+ "1 31 22\r",
+ "1 31 23\r",
+ "1 31 24\r",
+ "1 31 25\r",
+ "1 31 26\r",
+ "1 31 27\r",
+ "1 31 28\r",
+ "1 31 29\r",
+ "1 31 30\r",
+ "1 31 31\r",
+ "1 31 32\r",
+ "1 31 33\r",
+ "1 31 34\r",
+ "1 31 35\r",
+ "1 31 36\r",
+ "1 31 37\r",
+ "1 31 38\r",
+ "1 31 39\r",
+ "1 31 40\r",
+ "1 31 41\r",
+ "1 31 42\r",
+ "1 31 43\r",
+ "1 31 44\r",
+ "1 31 45\r",
+ "1 31 46\r",
+ "1 31 47\r",
+ "1 31 48\r",
+ "1 31 49\r",
+ "1 31 50\r",
+ "1 31 51\r",
+ "1 31 52\r",
+ "1 31 53\r",
+ "1 31 54\r",
+ "1 31 55\r",
+ "1 31 56\r",
+ "1 31 57\r",
+ "1 31 58\r",
+ "1 32 1\r",
+ "1 32 2\r",
+ "1 32 3\r",
+ "1 32 4\r",
+ "1 32 5\r",
+ "1 32 6\r",
+ "1 32 7\r",
+ "1 32 8\r",
+ "1 32 9\r",
+ "1 32 10\r",
+ "1 32 11\r",
+ "1 32 12\r",
+ "1 32 13\r",
+ "1 32 14\r",
+ "1 32 15\r",
+ "1 32 16\r",
+ "1 32 17\r",
+ "1 32 18\r",
+ "1 32 19\r",
+ "1 32 20\r",
+ "1 32 21\r",
+ "1 32 22\r",
+ "1 32 23\r",
+ "1 32 24\r",
+ "1 32 25\r",
+ "1 32 26\r",
+ "1 32 27\r",
+ "1 32 28\r",
+ "1 32 29\r",
+ "1 32 30\r",
+ "1 32 31\r",
+ "1 32 32\r",
+ "1 32 33\r",
+ "1 32 34\r",
+ "1 32 35\r",
+ "1 32 36\r",
+ "1 32 37\r",
+ "1 32 38\r",
+ "1 32 39\r",
+ "1 32 40\r",
+ "1 32 41\r",
+ "1 32 42\r",
+ "1 32 43\r",
+ "1 32 44\r",
+ "1 32 45\r",
+ "1 32 46\r",
+ "1 32 47\r",
+ "1 32 48\r",
+ "1 32 49\r",
+ "1 32 50\r",
+ "1 32 51\r",
+ "1 32 52\r",
+ "1 32 53\r",
+ "1 32 54\r",
+ "1 32 55\r",
+ "1 32 56\r",
+ "1 32 57\r",
+ "1 32 58\r",
+ "1 33 1\r",
+ "1 33 2\r",
+ "1 33 3\r",
+ "1 33 4\r",
+ "1 33 5\r",
+ "1 33 6\r",
+ "1 33 7\r",
+ "1 33 8\r",
+ "1 33 9\r",
+ "1 33 10\r",
+ "1 33 11\r",
+ "1 33 12\r",
+ "1 33 13\r",
+ "1 33 14\r",
+ "1 33 15\r",
+ "1 33 16\r",
+ "1 33 17\r",
+ "1 33 18\r",
+ "1 33 19\r",
+ "1 33 20\r",
+ "1 33 21\r",
+ "1 33 22\r",
+ "1 33 23\r",
+ "1 33 24\r",
+ "1 33 25\r",
+ "1 33 26\r",
+ "1 33 27\r",
+ "1 33 28\r",
+ "1 33 29\r",
+ "1 33 30\r",
+ "1 33 31\r",
+ "1 33 32\r",
+ "1 33 33\r",
+ "1 33 34\r",
+ "1 33 35\r",
+ "1 33 36\r",
+ "1 33 37\r",
+ "1 33 38\r",
+ "1 33 39\r",
+ "1 33 40\r",
+ "1 33 41\r",
+ "1 33 42\r",
+ "1 33 43\r",
+ "1 33 44\r",
+ "1 33 45\r",
+ "1 33 46\r",
+ "1 33 47\r",
+ "1 33 48\r",
+ "1 33 49\r",
+ "1 33 50\r",
+ "1 33 51\r",
+ "1 33 52\r",
+ "1 33 53\r",
+ "1 33 54\r",
+ "1 33 55\r",
+ "1 33 56\r",
+ "1 33 57\r",
+ "1 33 58\r",
+ "1 34 1\r",
+ "1 34 2\r",
+ "1 34 3\r",
+ "1 34 4\r",
+ "1 34 5\r",
+ "1 34 6\r",
+ "1 34 7\r",
+ "1 34 8\r",
+ "1 34 9\r",
+ "1 34 10\r",
+ "1 34 11\r",
+ "1 34 12\r",
+ "1 34 13\r",
+ "1 34 14\r",
+ "1 34 15\r",
+ "1 34 16\r",
+ "1 34 17\r",
+ "1 34 18\r",
+ "1 34 19\r",
+ "1 34 20\r",
+ "1 34 21\r",
+ "1 34 22\r",
+ "1 34 23\r",
+ "1 34 24\r",
+ "1 34 25\r",
+ "1 34 26\r",
+ "1 34 27\r",
+ "1 34 28\r",
+ "1 34 29\r",
+ "1 34 30\r",
+ "1 34 31\r",
+ "1 34 32\r",
+ "1 34 33\r",
+ "1 34 34\r",
+ "1 34 35\r",
+ "1 34 36\r",
+ "1 34 37\r",
+ "1 34 38\r",
+ "1 34 39\r",
+ "1 34 40\r",
+ "1 34 41\r",
+ "1 34 42\r",
+ "1 34 43\r",
+ "1 34 44\r",
+ "1 34 45\r",
+ "1 34 46\r",
+ "1 34 47\r",
+ "1 34 48\r",
+ "1 34 49\r",
+ "1 34 50\r",
+ "1 34 51\r",
+ "1 34 52\r",
+ "1 34 53\r",
+ "1 34 54\r",
+ "1 34 55\r",
+ "1 34 56\r",
+ "1 34 57\r",
+ "1 34 58\r",
+ "1 35 1\r",
+ "1 35 2\r",
+ "1 35 3\r",
+ "1 35 4\r",
+ "1 35 5\r",
+ "1 35 6\r",
+ "1 35 7\r",
+ "1 35 8\r",
+ "1 35 9\r",
+ "1 35 10\r",
+ "1 35 11\r",
+ "1 35 12\r",
+ "1 35 13\r",
+ "1 35 14\r",
+ "1 35 15\r",
+ "1 35 16\r",
+ "1 35 17\r",
+ "1 35 18\r",
+ "1 35 19\r",
+ "1 35 20\r",
+ "1 35 21\r",
+ "1 35 22\r",
+ "1 35 23\r",
+ "1 35 24\r",
+ "1 35 25\r",
+ "1 35 26\r",
+ "1 35 27\r",
+ "1 35 28\r",
+ "1 35 29\r",
+ "1 35 30\r",
+ "1 35 31\r",
+ "1 35 32\r",
+ "1 35 33\r",
+ "1 35 34\r",
+ "1 35 35\r",
+ "1 35 36\r",
+ "1 35 37\r",
+ "1 35 38\r",
+ "1 35 39\r",
+ "1 35 40\r",
+ "1 35 41\r",
+ "1 35 42\r",
+ "1 35 43\r",
+ "1 35 44\r",
+ "1 35 45\r",
+ "1 35 46\r",
+ "1 35 47\r",
+ "1 35 48\r",
+ "1 35 49\r",
+ "1 35 50\r",
+ "1 35 51\r",
+ "1 35 52\r",
+ "1 35 53\r",
+ "1 35 54\r",
+ "1 35 55\r",
+ "1 35 56\r",
+ "1 35 57\r",
+ "1 35 58\r",
+ "1 36 1\r",
+ "1 36 2\r",
+ "1 36 3\r",
+ "1 36 4\r",
+ "1 36 5\r",
+ "1 36 6\r",
+ "1 36 7\r",
+ "1 36 8\r",
+ "1 36 9\r",
+ "1 36 10\r",
+ "1 36 11\r",
+ "1 36 12\r",
+ "1 36 13\r",
+ "1 36 14\r",
+ "1 36 15\r",
+ "1 36 16\r",
+ "1 36 17\r",
+ "1 36 18\r",
+ "1 36 19\r",
+ "1 36 20\r",
+ "1 36 21\r",
+ "1 36 22\r",
+ "1 36 23\r",
+ "1 36 24\r",
+ "1 36 25\r",
+ "1 36 26\r",
+ "1 36 27\r",
+ "1 36 28\r",
+ "1 36 29\r",
+ "1 36 30\r",
+ "1 36 31\r",
+ "1 36 32\r",
+ "1 36 33\r",
+ "1 36 34\r",
+ "1 36 35\r",
+ "1 36 36\r",
+ "1 36 37\r",
+ "1 36 38\r",
+ "1 36 39\r",
+ "1 36 40\r",
+ "1 36 41\r",
+ "1 36 42\r",
+ "1 36 43\r",
+ "1 36 44\r",
+ "1 36 45\r",
+ "1 36 46\r",
+ "1 36 47\r",
+ "1 36 48\r",
+ "1 36 49\r",
+ "1 36 50\r",
+ "1 36 51\r",
+ "1 36 52\r",
+ "1 36 53\r",
+ "1 36 54\r",
+ "1 36 55\r",
+ "1 36 56\r",
+ "1 36 57\r",
+ "1 36 58\r",
+ "1 37 1\r",
+ "1 37 2\r",
+ "1 37 3\r",
+ "1 37 4\r",
+ "1 37 5\r",
+ "1 37 6\r",
+ "1 37 7\r",
+ "1 37 8\r",
+ "1 37 9\r",
+ "1 37 10\r",
+ "1 37 11\r",
+ "1 37 12\r",
+ "1 37 13\r",
+ "1 37 14\r",
+ "1 37 15\r",
+ "1 37 16\r",
+ "1 37 17\r",
+ "1 37 18\r",
+ "1 37 19\r",
+ "1 37 20\r",
+ "1 37 21\r",
+ "1 37 22\r",
+ "1 37 23\r",
+ "1 37 24\r",
+ "1 37 25\r",
+ "1 37 26\r",
+ "1 37 27\r",
+ "1 37 28\r",
+ "1 37 29\r",
+ "1 37 30\r",
+ "1 37 31\r",
+ "1 37 32\r",
+ "1 37 33\r",
+ "1 37 34\r",
+ "1 37 35\r",
+ "1 37 36\r",
+ "1 37 37\r",
+ "1 37 38\r",
+ "1 37 39\r",
+ "1 37 40\r",
+ "1 37 41\r",
+ "1 37 42\r",
+ "1 37 43\r",
+ "1 37 44\r",
+ "1 37 45\r",
+ "1 37 46\r",
+ "1 37 47\r",
+ "1 37 48\r",
+ "1 37 49\r",
+ "1 37 50\r",
+ "1 37 51\r",
+ "1 37 52\r",
+ "1 37 53\r",
+ "1 37 54\r",
+ "1 37 55\r",
+ "1 37 56\r",
+ "1 37 57\r",
+ "1 37 58\r",
+ "1 38 1\r",
+ "1 38 2\r",
+ "1 38 3\r",
+ "1 38 4\r",
+ "1 38 5\r",
+ "1 38 6\r",
+ "1 38 7\r",
+ "1 38 8\r",
+ "1 38 9\r",
+ "1 38 10\r",
+ "1 38 11\r",
+ "1 38 12\r",
+ "1 38 13\r",
+ "1 38 14\r",
+ "1 38 15\r",
+ "1 38 16\r",
+ "1 38 17\r",
+ "1 38 18\r",
+ "1 38 19\r",
+ "1 38 20\r",
+ "1 38 21\r",
+ "1 38 22\r",
+ "1 38 23\r",
+ "1 38 24\r",
+ "1 38 25\r",
+ "1 38 26\r",
+ "1 38 27\r",
+ "1 38 28\r",
+ "1 38 29\r",
+ "1 38 30\r",
+ "1 38 31\r",
+ "1 38 32\r",
+ "1 38 33\r",
+ "1 38 34\r",
+ "1 38 35\r",
+ "1 38 36\r",
+ "1 38 37\r",
+ "1 38 38\r",
+ "1 38 39\r",
+ "1 38 40\r",
+ "1 38 41\r",
+ "1 38 42\r",
+ "1 38 43\r",
+ "1 38 44\r",
+ "1 38 45\r",
+ "1 38 46\r",
+ "1 38 47\r",
+ "1 38 48\r",
+ "1 38 49\r",
+ "1 38 50\r",
+ "1 38 51\r",
+ "1 38 52\r",
+ "1 38 53\r",
+ "1 38 54\r",
+ "1 38 55\r",
+ "1 38 56\r",
+ "1 38 57\r",
+ "1 38 58\r",
+ "1 39 1\r",
+ "1 39 2\r",
+ "1 39 3\r",
+ "1 39 4\r",
+ "1 39 5\r",
+ "1 39 6\r",
+ "1 39 7\r",
+ "1 39 8\r",
+ "1 39 9\r",
+ "1 39 10\r",
+ "1 39 11\r",
+ "1 39 12\r",
+ "1 39 13\r",
+ "1 39 14\r",
+ "1 39 15\r",
+ "1 39 16\r",
+ "1 39 17\r",
+ "1 39 18\r",
+ "1 39 19\r",
+ "1 39 20\r",
+ "1 39 21\r",
+ "1 39 22\r",
+ "1 39 23\r",
+ "1 39 24\r",
+ "1 39 25\r",
+ "1 39 26\r",
+ "1 39 27\r",
+ "1 39 28\r",
+ "1 39 29\r",
+ "1 39 30\r",
+ "1 39 31\r",
+ "1 39 32\r",
+ "1 39 33\r",
+ "1 39 34\r",
+ "1 39 35\r",
+ "1 39 36\r",
+ "1 39 37\r",
+ "1 39 38\r",
+ "1 39 39\r",
+ "1 39 40\r",
+ "1 39 41\r",
+ "1 39 42\r",
+ "1 39 43\r",
+ "1 39 44\r",
+ "1 39 45\r",
+ "1 39 46\r",
+ "1 39 47\r",
+ "1 39 48\r",
+ "1 39 49\r",
+ "1 39 50\r",
+ "1 39 51\r",
+ "1 39 52\r",
+ "1 39 53\r",
+ "1 39 54\r",
+ "1 39 55\r",
+ "1 39 56\r",
+ "1 39 57\r",
+ "1 39 58\r",
+ "1 40 1\r",
+ "1 40 2\r",
+ "1 40 3\r",
+ "1 40 4\r",
+ "1 40 5\r",
+ "1 40 6\r",
+ "1 40 7\r",
+ "1 40 8\r",
+ "1 40 9\r",
+ "1 40 10\r",
+ "1 40 11\r",
+ "1 40 12\r",
+ "1 40 13\r",
+ "1 40 14\r",
+ "1 40 15\r",
+ "1 40 16\r",
+ "1 40 17\r",
+ "1 40 18\r",
+ "1 40 19\r",
+ "1 40 20\r",
+ "1 40 21\r",
+ "1 40 22\r",
+ "1 40 23\r",
+ "1 40 24\r",
+ "1 40 25\r",
+ "1 40 26\r",
+ "1 40 27\r",
+ "1 40 28\r",
+ "1 40 29\r",
+ "1 40 30\r",
+ "1 40 31\r",
+ "1 40 32\r",
+ "1 40 33\r",
+ "1 40 34\r",
+ "1 40 35\r",
+ "1 40 36\r",
+ "1 40 37\r",
+ "1 40 38\r",
+ "1 40 39\r",
+ "1 40 40\r",
+ "1 40 41\r",
+ "1 40 42\r",
+ "1 40 43\r",
+ "1 40 44\r",
+ "1 40 45\r",
+ "1 40 46\r",
+ "1 40 47\r",
+ "1 40 48\r",
+ "1 40 49\r",
+ "1 40 50\r",
+ "1 40 51\r",
+ "1 40 52\r",
+ "1 40 53\r",
+ "1 40 54\r",
+ "1 40 55\r",
+ "1 40 56\r",
+ "1 40 57\r",
+ "1 40 58\r",
+ "1 41 1\r",
+ "1 41 2\r",
+ "1 41 3\r",
+ "1 41 4\r",
+ "1 41 5\r",
+ "1 41 6\r",
+ "1 41 7\r",
+ "1 41 8\r",
+ "1 41 9\r",
+ "1 41 10\r",
+ "1 41 11\r",
+ "1 41 12\r",
+ "1 41 13\r",
+ "1 41 14\r",
+ "1 41 15\r",
+ "1 41 16\r",
+ "1 41 17\r",
+ "1 41 18\r",
+ "1 41 19\r",
+ "1 41 20\r",
+ "1 41 21\r",
+ "1 41 22\r",
+ "1 41 23\r",
+ "1 41 24\r",
+ "1 41 25\r",
+ "1 41 26\r",
+ "1 41 27\r",
+ "1 41 28\r",
+ "1 41 29\r",
+ "1 41 30\r",
+ "1 41 31\r",
+ "1 41 32\r",
+ "1 41 33\r",
+ "1 41 34\r",
+ "1 41 35\r",
+ "1 41 36\r",
+ "1 41 37\r",
+ "1 41 38\r",
+ "1 41 39\r",
+ "1 41 40\r",
+ "1 41 41\r",
+ "1 41 42\r",
+ "1 41 43\r",
+ "1 41 44\r",
+ "1 41 45\r",
+ "1 41 46\r",
+ "1 41 47\r",
+ "1 41 48\r",
+ "1 41 49\r",
+ "1 41 50\r",
+ "1 41 51\r",
+ "1 41 52\r",
+ "1 41 53\r",
+ "1 41 54\r",
+ "1 41 55\r",
+ "1 41 56\r",
+ "1 41 57\r",
+ "1 41 58\r",
+ "1 42 1\r",
+ "1 42 2\r",
+ "1 42 3\r",
+ "1 42 4\r",
+ "1 42 5\r",
+ "1 42 6\r",
+ "1 42 7\r",
+ "1 42 8\r",
+ "1 42 9\r",
+ "1 42 10\r",
+ "1 42 11\r",
+ "1 42 12\r",
+ "1 42 13\r",
+ "1 42 14\r",
+ "1 42 15\r",
+ "1 42 16\r",
+ "1 42 17\r",
+ "1 42 18\r",
+ "1 42 19\r",
+ "1 42 20\r",
+ "1 42 21\r",
+ "1 42 22\r",
+ "1 42 23\r",
+ "1 42 24\r",
+ "1 42 25\r",
+ "1 42 26\r",
+ "1 42 27\r",
+ "1 42 28\r",
+ "1 42 29\r",
+ "1 42 30\r",
+ "1 42 31\r",
+ "1 42 32\r",
+ "1 42 33\r",
+ "1 42 34\r",
+ "1 42 35\r",
+ "1 42 36\r",
+ "1 42 37\r",
+ "1 42 38\r",
+ "1 42 39\r",
+ "1 42 40\r",
+ "1 42 41\r",
+ "1 42 42\r",
+ "1 42 43\r",
+ "1 42 44\r",
+ "1 42 45\r",
+ "1 42 46\r",
+ "1 42 47\r",
+ "1 42 48\r",
+ "1 42 49\r",
+ "1 42 50\r",
+ "1 42 51\r",
+ "1 42 52\r",
+ "1 42 53\r",
+ "1 42 54\r",
+ "1 42 55\r",
+ "1 42 56\r",
+ "1 42 57\r",
+ "1 42 58\r",
+ "1 43 1\r",
+ "1 43 2\r",
+ "1 43 3\r",
+ "1 43 4\r",
+ "1 43 5\r",
+ "1 43 6\r",
+ "1 43 7\r",
+ "1 43 8\r",
+ "1 43 9\r",
+ "1 43 10\r",
+ "1 43 11\r",
+ "1 43 12\r",
+ "1 43 13\r",
+ "1 43 14\r",
+ "1 43 15\r",
+ "1 43 16\r",
+ "1 43 17\r",
+ "1 43 18\r",
+ "1 43 19\r",
+ "1 43 20\r",
+ "1 43 21\r",
+ "1 43 22\r",
+ "1 43 23\r",
+ "1 43 24\r",
+ "1 43 25\r",
+ "1 43 26\r",
+ "1 43 27\r",
+ "1 43 28\r",
+ "1 43 29\r",
+ "1 43 30\r",
+ "1 43 31\r",
+ "1 43 32\r",
+ "1 43 33\r",
+ "1 43 34\r",
+ "1 43 35\r",
+ "1 43 36\r",
+ "1 43 37\r",
+ "1 43 38\r",
+ "1 43 39\r",
+ "1 43 40\r",
+ "1 43 41\r",
+ "1 43 42\r",
+ "1 43 43\r",
+ "1 43 44\r",
+ "1 43 45\r",
+ "1 43 46\r",
+ "1 43 47\r",
+ "1 43 48\r",
+ "1 43 49\r",
+ "1 43 50\r",
+ "1 43 51\r",
+ "1 43 52\r",
+ "1 43 53\r",
+ "1 43 54\r",
+ "1 43 55\r",
+ "1 43 56\r",
+ "1 43 57\r",
+ "1 43 58\r",
+ "1 44 1\r",
+ "1 44 2\r",
+ "1 44 3\r",
+ "1 44 4\r",
+ "1 44 5\r",
+ "1 44 6\r",
+ "1 44 7\r",
+ "1 44 8\r",
+ "1 44 9\r",
+ "1 44 10\r",
+ "1 44 11\r",
+ "1 44 12\r",
+ "1 44 13\r",
+ "1 44 14\r",
+ "1 44 15\r",
+ "1 44 16\r",
+ "1 44 17\r",
+ "1 44 18\r",
+ "1 44 19\r",
+ "1 44 20\r",
+ "1 44 21\r",
+ "1 44 22\r",
+ "1 44 23\r",
+ "1 44 24\r",
+ "1 44 25\r",
+ "1 44 26\r",
+ "1 44 27\r",
+ "1 44 28\r",
+ "1 44 29\r",
+ "1 44 30\r",
+ "1 44 31\r",
+ "1 44 32\r",
+ "1 44 33\r",
+ "1 44 34\r",
+ "1 44 35\r",
+ "1 44 36\r",
+ "1 44 37\r",
+ "1 44 38\r",
+ "1 44 39\r",
+ "1 44 40\r",
+ "1 44 41\r",
+ "1 44 42\r",
+ "1 44 43\r",
+ "1 44 44\r",
+ "1 44 45\r",
+ "1 44 46\r",
+ "1 44 47\r",
+ "1 44 48\r",
+ "1 44 49\r",
+ "1 44 50\r",
+ "1 44 51\r",
+ "1 44 52\r",
+ "1 44 53\r",
+ "1 44 54\r",
+ "1 44 55\r",
+ "1 44 56\r",
+ "1 44 57\r",
+ "1 44 58\r",
+ "1 45 1\r",
+ "1 45 2\r",
+ "1 45 3\r",
+ "1 45 4\r",
+ "1 45 5\r",
+ "1 45 6\r",
+ "1 45 7\r",
+ "1 45 8\r",
+ "1 45 9\r",
+ "1 45 10\r",
+ "1 45 11\r",
+ "1 45 12\r",
+ "1 45 13\r",
+ "1 45 14\r",
+ "1 45 15\r",
+ "1 45 16\r",
+ "1 45 17\r",
+ "1 45 18\r",
+ "1 45 19\r",
+ "1 45 20\r",
+ "1 45 21\r",
+ "1 45 22\r",
+ "1 45 23\r",
+ "1 45 24\r",
+ "1 45 25\r",
+ "1 45 26\r",
+ "1 45 27\r",
+ "1 45 28\r",
+ "1 45 29\r",
+ "1 45 30\r",
+ "1 45 31\r",
+ "1 45 32\r",
+ "1 45 33\r",
+ "1 45 34\r",
+ "1 45 35\r",
+ "1 45 36\r",
+ "1 45 37\r",
+ "1 45 38\r",
+ "1 45 39\r",
+ "1 45 40\r",
+ "1 45 41\r",
+ "1 45 42\r",
+ "1 45 43\r",
+ "1 45 44\r",
+ "1 45 45\r",
+ "1 45 46\r",
+ "1 45 47\r",
+ "1 45 48\r",
+ "1 45 49\r",
+ "1 45 50\r",
+ "1 45 51\r",
+ "1 45 52\r",
+ "1 45 53\r",
+ "1 45 54\r",
+ "1 45 55\r",
+ "1 45 56\r",
+ "1 45 57\r",
+ "1 45 58\r",
+ "1 46 1\r",
+ "1 46 2\r",
+ "1 46 3\r",
+ "1 46 4\r",
+ "1 46 5\r",
+ "1 46 6\r",
+ "1 46 7\r",
+ "1 46 8\r",
+ "1 46 9\r",
+ "1 46 10\r",
+ "1 46 11\r",
+ "1 46 12\r",
+ "1 46 13\r",
+ "1 46 14\r",
+ "1 46 15\r",
+ "1 46 16\r",
+ "1 46 17\r",
+ "1 46 18\r",
+ "1 46 19\r",
+ "1 46 20\r",
+ "1 46 21\r",
+ "1 46 22\r",
+ "1 46 23\r",
+ "1 46 24\r",
+ "1 46 25\r",
+ "1 46 26\r",
+ "1 46 27\r",
+ "1 46 28\r",
+ "1 46 29\r",
+ "1 46 30\r",
+ "1 46 31\r",
+ "1 46 32\r",
+ "1 46 33\r",
+ "1 46 34\r",
+ "1 46 35\r",
+ "1 46 36\r",
+ "1 46 37\r",
+ "1 46 38\r",
+ "1 46 39\r",
+ "1 46 40\r",
+ "1 46 41\r",
+ "1 46 42\r",
+ "1 46 43\r",
+ "1 46 44\r",
+ "1 46 45\r",
+ "1 46 46\r",
+ "1 46 47\r",
+ "1 46 48\r",
+ "1 46 49\r",
+ "1 46 50\r",
+ "1 46 51\r",
+ "1 46 52\r",
+ "1 46 53\r",
+ "1 46 54\r",
+ "1 46 55\r",
+ "1 46 56\r",
+ "1 46 57\r",
+ "1 46 58\r",
+ "1 47 1\r",
+ "1 47 2\r",
+ "1 47 3\r",
+ "1 47 4\r",
+ "1 47 5\r",
+ "1 47 6\r",
+ "1 47 7\r",
+ "1 47 8\r",
+ "1 47 9\r",
+ "1 47 10\r",
+ "1 47 11\r",
+ "1 47 12\r",
+ "1 47 13\r",
+ "1 47 14\r",
+ "1 47 15\r",
+ "1 47 16\r",
+ "1 47 17\r",
+ "1 47 18\r",
+ "1 47 19\r",
+ "1 47 20\r",
+ "1 47 21\r",
+ "1 47 22\r",
+ "1 47 23\r",
+ "1 47 24\r",
+ "1 47 25\r",
+ "1 47 26\r",
+ "1 47 27\r",
+ "1 47 28\r",
+ "1 47 29\r",
+ "1 47 30\r",
+ "1 47 31\r",
+ "1 47 32\r",
+ "1 47 33\r",
+ "1 47 34\r",
+ "1 47 35\r",
+ "1 47 36\r",
+ "1 47 37\r",
+ "1 47 38\r",
+ "1 47 39\r",
+ "1 47 40\r",
+ "1 47 41\r",
+ "1 47 42\r",
+ "1 47 43\r",
+ "1 47 44\r",
+ "1 47 45\r",
+ "1 47 46\r",
+ "1 47 47\r",
+ "1 47 48\r",
+ "1 47 49\r",
+ "1 47 50\r",
+ "1 47 51\r",
+ "1 47 52\r",
+ "1 47 53\r",
+ "1 47 54\r",
+ "1 47 55\r",
+ "1 47 56\r",
+ "1 47 57\r",
+ "1 47 58\r",
+ "1 48 1\r",
+ "1 48 2"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\r",
+ "1 48 3\r",
+ "1 48 4\r",
+ "1 48 5\r",
+ "1 48 6\r",
+ "1 48 7\r",
+ "1 48 8\r",
+ "1 48 9\r",
+ "1 48 10\r",
+ "1 48 11\r",
+ "1 48 12\r",
+ "1 48 13\r",
+ "1 48 14\r",
+ "1 48 15\r",
+ "1 48 16\r",
+ "1 48 17\r",
+ "1 48 18\r",
+ "1 48 19\r",
+ "1 48 20\r",
+ "1 48 21\r",
+ "1 48 22\r",
+ "1 48 23\r",
+ "1 48 24\r",
+ "1 48 25\r",
+ "1 48 26\r",
+ "1 48 27\r",
+ "1 48 28\r",
+ "1 48 29\r",
+ "1 48 30\r",
+ "1 48 31\r",
+ "1 48 32\r",
+ "1 48 33\r",
+ "1 48 34\r",
+ "1 48 35\r",
+ "1 48 36\r",
+ "1 48 37\r",
+ "1 48 38\r",
+ "1 48 39\r",
+ "1 48 40\r",
+ "1 48 41\r",
+ "1 48 42\r",
+ "1 48 43\r",
+ "1 48 44\r",
+ "1 48 45\r",
+ "1 48 46\r",
+ "1 48 47\r",
+ "1 48 48\r",
+ "1 48 49\r",
+ "1 48 50\r",
+ "1 48 51\r",
+ "1 48 52\r",
+ "1 48 53\r",
+ "1 48 54\r",
+ "1 48 55\r",
+ "1 48 56\r",
+ "1 48 57\r",
+ "1 48 58\r",
+ "1 49 1\r",
+ "1 49 2\r",
+ "1 49 3\r",
+ "1 49 4\r",
+ "1 49 5\r",
+ "1 49 6\r",
+ "1 49 7\r",
+ "1 49 8\r",
+ "1 49 9\r",
+ "1 49 10\r",
+ "1 49 11\r",
+ "1 49 12\r",
+ "1 49 13\r",
+ "1 49 14\r",
+ "1 49 15\r",
+ "1 49 16\r",
+ "1 49 17\r",
+ "1 49 18\r",
+ "1 49 19\r",
+ "1 49 20\r",
+ "1 49 21\r",
+ "1 49 22\r",
+ "1 49 23\r",
+ "1 49 24\r",
+ "1 49 25\r",
+ "1 49 26\r",
+ "1 49 27\r",
+ "1 49 28\r",
+ "1 49 29\r",
+ "1 49 30\r",
+ "1 49 31\r",
+ "1 49 32\r",
+ "1 49 33\r",
+ "1 49 34\r",
+ "1 49 35\r",
+ "1 49 36\r",
+ "1 49 37\r",
+ "1 49 38\r",
+ "1 49 39\r",
+ "1 49 40\r",
+ "1 49 41\r",
+ "1 49 42\r",
+ "1 49 43\r",
+ "1 49 44\r",
+ "1 49 45\r",
+ "1 49 46\r",
+ "1 49 47\r",
+ "1 49 48\r",
+ "1 49 49\r",
+ "1 49 50\r",
+ "1 49 51\r",
+ "1 49 52\r",
+ "1 49 53\r",
+ "1 49 54\r",
+ "1 49 55\r",
+ "1 49 56\r",
+ "1 49 57\r",
+ "1 49 58\r",
+ "1 50 1\r",
+ "1 50 2\r",
+ "1 50 3\r",
+ "1 50 4\r",
+ "1 50 5\r",
+ "1 50 6\r",
+ "1 50 7\r",
+ "1 50 8\r",
+ "1 50 9\r",
+ "1 50 10\r",
+ "1 50 11\r",
+ "1 50 12\r",
+ "1 50 13\r",
+ "1 50 14\r",
+ "1 50 15\r",
+ "1 50 16\r",
+ "1 50 17\r",
+ "1 50 18\r",
+ "1 50 19\r",
+ "1 50 20\r",
+ "1 50 21\r",
+ "1 50 22\r",
+ "1 50 23\r",
+ "1 50 24\r",
+ "1 50 25\r",
+ "1 50 26\r",
+ "1 50 27\r",
+ "1 50 28\r",
+ "1 50 29\r",
+ "1 50 30\r",
+ "1 50 31\r",
+ "1 50 32\r",
+ "1 50 33\r",
+ "1 50 34\r",
+ "1 50 35\r",
+ "1 50 36\r",
+ "1 50 37\r",
+ "1 50 38\r",
+ "1 50 39\r",
+ "1 50 40\r",
+ "1 50 41\r",
+ "1 50 42\r",
+ "1 50 43\r",
+ "1 50 44\r",
+ "1 50 45\r",
+ "1 50 46\r",
+ "1 50 47\r",
+ "1 50 48\r",
+ "1 50 49\r",
+ "1 50 50\r",
+ "1 50 51\r",
+ "1 50 52\r",
+ "1 50 53\r",
+ "1 50 54\r",
+ "1 50 55\r",
+ "1 50 56\r",
+ "1 50 57\r",
+ "1 50 58\r",
+ "1 51 1\r",
+ "1 51 2\r",
+ "1 51 3\r",
+ "1 51 4\r",
+ "1 51 5\r",
+ "1 51 6\r",
+ "1 51 7\r",
+ "1 51 8\r",
+ "1 51 9\r",
+ "1 51 10\r",
+ "1 51 11\r",
+ "1 51 12\r",
+ "1 51 13\r",
+ "1 51 14\r",
+ "1 51 15\r",
+ "1 51 16\r",
+ "1 51 17\r",
+ "1 51 18\r",
+ "1 51 19\r",
+ "1 51 20\r",
+ "1 51 21\r",
+ "1 51 22\r",
+ "1 51 23\r",
+ "1 51 24\r",
+ "1 51 25\r",
+ "1 51 26\r",
+ "1 51 27\r",
+ "1 51 28\r",
+ "1 51 29\r",
+ "1 51 30\r",
+ "1 51 31\r",
+ "1 51 32\r",
+ "1 51 33\r",
+ "1 51 34\r",
+ "1 51 35\r",
+ "1 51 36\r",
+ "1 51 37\r",
+ "1 51 38\r",
+ "1 51 39\r",
+ "1 51 40\r",
+ "1 51 41\r",
+ "1 51 42\r",
+ "1 51 43\r",
+ "1 51 44\r",
+ "1 51 45\r",
+ "1 51 46\r",
+ "1 51 47\r",
+ "1 51 48\r",
+ "1 51 49\r",
+ "1 51 50\r",
+ "1 51 51\r",
+ "1 51 52\r",
+ "1 51 53\r",
+ "1 51 54\r",
+ "1 51 55\r",
+ "1 51 56\r",
+ "1 51 57\r",
+ "1 51 58\r",
+ "1 52 1\r",
+ "1 52 2\r",
+ "1 52 3\r",
+ "1 52 4\r",
+ "1 52 5\r",
+ "1 52 6\r",
+ "1 52 7\r",
+ "1 52 8\r",
+ "1 52 9\r",
+ "1 52 10\r",
+ "1 52 11\r",
+ "1 52 12\r",
+ "1 52 13\r",
+ "1 52 14\r",
+ "1 52 15\r",
+ "1 52 16\r",
+ "1 52 17\r",
+ "1 52 18\r",
+ "1 52 19\r",
+ "1 52 20\r",
+ "1 52 21\r",
+ "1 52 22\r",
+ "1 52 23\r",
+ "1 52 24\r",
+ "1 52 25\r",
+ "1 52 26\r",
+ "1 52 27\r",
+ "1 52 28\r",
+ "1 52 29\r",
+ "1 52 30\r",
+ "1 52 31\r",
+ "1 52 32\r",
+ "1 52 33\r",
+ "1 52 34\r",
+ "1 52 35\r",
+ "1 52 36\r",
+ "1 52 37\r",
+ "1 52 38\r",
+ "1 52 39\r",
+ "1 52 40\r",
+ "1 52 41\r",
+ "1 52 42\r",
+ "1 52 43\r",
+ "1 52 44\r",
+ "1 52 45\r",
+ "1 52 46\r",
+ "1 52 47\r",
+ "1 52 48\r",
+ "1 52 49\r",
+ "1 52 50\r",
+ "1 52 51\r",
+ "1 52 52\r",
+ "1 52 53\r",
+ "1 52 54\r",
+ "1 52 55\r",
+ "1 52 56\r",
+ "1 52 57\r",
+ "1 52 58\r",
+ "1 53 1\r",
+ "1 53 2\r",
+ "1 53 3\r",
+ "1 53 4\r",
+ "1 53 5\r",
+ "1 53 6\r",
+ "1 53 7\r",
+ "1 53 8\r",
+ "1 53 9\r",
+ "1 53 10\r",
+ "1 53 11\r",
+ "1 53 12\r",
+ "1 53 13\r",
+ "1 53 14\r",
+ "1 53 15\r",
+ "1 53 16\r",
+ "1 53 17\r",
+ "1 53 18\r",
+ "1 53 19\r",
+ "1 53 20\r",
+ "1 53 21\r",
+ "1 53 22\r",
+ "1 53 23\r",
+ "1 53 24\r",
+ "1 53 25\r",
+ "1 53 26\r",
+ "1 53 27\r",
+ "1 53 28\r",
+ "1 53 29\r",
+ "1 53 30\r",
+ "1 53 31\r",
+ "1 53 32\r",
+ "1 53 33\r",
+ "1 53 34\r",
+ "1 53 35\r",
+ "1 53 36\r",
+ "1 53 37\r",
+ "1 53 38\r",
+ "1 53 39\r",
+ "1 53 40\r",
+ "1 53 41\r",
+ "1 53 42\r",
+ "1 53 43\r",
+ "1 53 44\r",
+ "1 53 45\r",
+ "1 53 46\r",
+ "1 53 47\r",
+ "1 53 48\r",
+ "1 53 49\r",
+ "1 53 50\r",
+ "1 53 51\r",
+ "1 53 52\r",
+ "1 53 53\r",
+ "1 53 54\r",
+ "1 53 55\r",
+ "1 53 56\r",
+ "1 53 57\r",
+ "1 53 58\r",
+ "1 54 1\r",
+ "1 54 2\r",
+ "1 54 3\r",
+ "1 54 4\r",
+ "1 54 5\r",
+ "1 54 6\r",
+ "1 54 7\r",
+ "1 54 8\r",
+ "1 54 9\r",
+ "1 54 10\r",
+ "1 54 11\r",
+ "1 54 12\r",
+ "1 54 13\r",
+ "1 54 14\r",
+ "1 54 15\r",
+ "1 54 16\r",
+ "1 54 17\r",
+ "1 54 18\r",
+ "1 54 19\r",
+ "1 54 20\r",
+ "1 54 21\r",
+ "1 54 22\r",
+ "1 54 23\r",
+ "1 54 24\r",
+ "1 54 25\r",
+ "1 54 26\r",
+ "1 54 27\r",
+ "1 54 28\r",
+ "1 54 29\r",
+ "1 54 30\r",
+ "1 54 31\r",
+ "1 54 32\r",
+ "1 54 33\r",
+ "1 54 34\r",
+ "1 54 35\r",
+ "1 54 36\r",
+ "1 54 37\r",
+ "1 54 38\r",
+ "1 54 39\r",
+ "1 54 40\r",
+ "1 54 41\r",
+ "1 54 42\r",
+ "1 54 43\r",
+ "1 54 44\r",
+ "1 54 45\r",
+ "1 54 46\r",
+ "1 54 47\r",
+ "1 54 48\r",
+ "1 54 49\r",
+ "1 54 50\r",
+ "1 54 51\r",
+ "1 54 52\r",
+ "1 54 53\r",
+ "1 54 54\r",
+ "1 54 55\r",
+ "1 54 56\r",
+ "1 54 57\r",
+ "1 54 58\r",
+ "1 55 1\r",
+ "1 55 2\r",
+ "1 55 3\r",
+ "1 55 4\r",
+ "1 55 5\r",
+ "1 55 6\r",
+ "1 55 7\r",
+ "1 55 8\r",
+ "1 55 9\r",
+ "1 55 10\r",
+ "1 55 11\r",
+ "1 55 12\r",
+ "1 55 13\r",
+ "1 55 14\r",
+ "1 55 15\r",
+ "1 55 16\r",
+ "1 55 17\r",
+ "1 55 18\r",
+ "1 55 19\r",
+ "1 55 20\r",
+ "1 55 21\r",
+ "1 55 22\r",
+ "1 55 23\r",
+ "1 55 24\r",
+ "1 55 25\r",
+ "1 55 26\r",
+ "1 55 27\r",
+ "1 55 28\r",
+ "1 55 29\r",
+ "1 55 30\r",
+ "1 55 31\r",
+ "1 55 32\r",
+ "1 55 33\r",
+ "1 55 34\r",
+ "1 55 35\r",
+ "1 55 36\r",
+ "1 55 37\r",
+ "1 55 38\r",
+ "1 55 39\r",
+ "1 55 40\r",
+ "1 55 41\r",
+ "1 55 42\r",
+ "1 55 43\r",
+ "1 55 44\r",
+ "1 55 45\r",
+ "1 55 46\r",
+ "1 55 47\r",
+ "1 55 48\r",
+ "1 55 49\r",
+ "1 55 50\r",
+ "1 55 51\r",
+ "1 55 52\r",
+ "1 55 53\r",
+ "1 55 54\r",
+ "1 55 55\r",
+ "1 55 56\r",
+ "1 55 57\r",
+ "1 55 58\r",
+ "1 56 1\r",
+ "1 56 2\r",
+ "1 56 3\r",
+ "1 56 4\r",
+ "1 56 5\r",
+ "1 56 6\r",
+ "1 56 7\r",
+ "1 56 8\r",
+ "1 56 9\r",
+ "1 56 10\r",
+ "1 56 11\r",
+ "1 56 12\r",
+ "1 56 13\r",
+ "1 56 14\r",
+ "1 56 15\r",
+ "1 56 16\r",
+ "1 56 17\r",
+ "1 56 18\r",
+ "1 56 19\r",
+ "1 56 20\r",
+ "1 56 21\r",
+ "1 56 22\r",
+ "1 56 23\r",
+ "1 56 24\r",
+ "1 56 25\r",
+ "1 56 26\r",
+ "1 56 27\r",
+ "1 56 28\r",
+ "1 56 29\r",
+ "1 56 30\r",
+ "1 56 31\r",
+ "1 56 32\r",
+ "1 56 33\r",
+ "1 56 34\r",
+ "1 56 35\r",
+ "1 56 36\r",
+ "1 56 37\r",
+ "1 56 38\r",
+ "1 56 39\r",
+ "1 56 40\r",
+ "1 56 41\r",
+ "1 56 42\r",
+ "1 56 43\r",
+ "1 56 44\r",
+ "1 56 45\r",
+ "1 56 46\r",
+ "1 56 47\r",
+ "1 56 48\r",
+ "1 56 49\r",
+ "1 56 50\r",
+ "1 56 51\r",
+ "1 56 52\r",
+ "1 56 53\r",
+ "1 56 54\r",
+ "1 56 55\r",
+ "1 56 56\r",
+ "1 56 57\r",
+ "1 56 58\r",
+ "1 57 1\r",
+ "1 57 2\r",
+ "1 57 3\r",
+ "1 57 4\r",
+ "1 57 5\r",
+ "1 57 6\r",
+ "1 57 7\r",
+ "1 57 8\r",
+ "1 57 9\r",
+ "1 57 10\r",
+ "1 57 11\r",
+ "1 57 12\r",
+ "1 57 13\r",
+ "1 57 14\r",
+ "1 57 15\r",
+ "1 57 16\r",
+ "1 57 17\r",
+ "1 57 18\r",
+ "1 57 19\r",
+ "1 57 20\r",
+ "1 57 21\r",
+ "1 57 22\r",
+ "1 57 23\r",
+ "1 57 24\r",
+ "1 57 25\r",
+ "1 57 26\r",
+ "1 57 27\r",
+ "1 57 28\r",
+ "1 57 29\r",
+ "1 57 30\r",
+ "1 57 31\r",
+ "1 57 32\r",
+ "1 57 33\r",
+ "1 57 34\r",
+ "1 57 35\r",
+ "1 57 36\r",
+ "1 57 37\r",
+ "1 57 38\r",
+ "1 57 39\r",
+ "1 57 40\r",
+ "1 57 41\r",
+ "1 57 42\r",
+ "1 57 43\r",
+ "1 57 44\r",
+ "1 57 45\r",
+ "1 57 46\r",
+ "1 57 47\r",
+ "1 57 48\r",
+ "1 57 49\r",
+ "1 57 50\r",
+ "1 57 51\r",
+ "1 57 52\r",
+ "1 57 53\r",
+ "1 57 54\r",
+ "1 57 55\r",
+ "1 57 56\r",
+ "1 57 57\r",
+ "1 57 58\r",
+ "1 58 1\r",
+ "1 58 2\r",
+ "1 58 3\r",
+ "1 58 4\r",
+ "1 58 5\r",
+ "1 58 6\r",
+ "1 58 7\r",
+ "1 58 8\r",
+ "1 58 9\r",
+ "1 58 10\r",
+ "1 58 11\r",
+ "1 58 12\r",
+ "1 58 13\r",
+ "1 58 14\r",
+ "1 58 15\r",
+ "1 58 16\r",
+ "1 58 17\r",
+ "1 58 18\r",
+ "1 58 19\r",
+ "1 58 20\r",
+ "1 58 21\r",
+ "1 58 22\r",
+ "1 58 23\r",
+ "1 58 24\r",
+ "1 58 25\r",
+ "1 58 26\r",
+ "1 58 27\r",
+ "1 58 28\r",
+ "1 58 29\r",
+ "1 58 30\r",
+ "1 58 31\r",
+ "1 58 32\r",
+ "1 58 33\r",
+ "1 58 34\r",
+ "1 58 35\r",
+ "1 58 36\r",
+ "1 58 37\r",
+ "1 58 38\r",
+ "1 58 39\r",
+ "1 58 40\r",
+ "1 58 41\r",
+ "1 58 42\r",
+ "1 58 43\r",
+ "1 58 44\r",
+ "1 58 45\r",
+ "1 58 46\r",
+ "1 58 47\r",
+ "1 58 48\r",
+ "1 58 49\r",
+ "1 58 50\r",
+ "1 58 51\r",
+ "1 58 52\r",
+ "1 58 53\r",
+ "1 58 54\r",
+ "1 58 55\r",
+ "1 58 56\r",
+ "1 58 57\r",
+ "1 58 58\r",
+ "2 1 1\r",
+ "2 1 2\r",
+ "2 1 3\r",
+ "2 1 4\r",
+ "2 1 5\r",
+ "2 1 6\r",
+ "2 1 7\r",
+ "2 1 8\r",
+ "2 1 9\r",
+ "2 1 10\r",
+ "2 1 11\r",
+ "2 1 12\r",
+ "2 1 13\r",
+ "2 1 14\r",
+ "2 1 15\r",
+ "2 1 16\r",
+ "2 1 17\r",
+ "2 1 18\r",
+ "2 1 19\r",
+ "2 1 20\r",
+ "2 1 21\r",
+ "2 1 22\r",
+ "2 1 23\r",
+ "2 1 24\r",
+ "2 1 25\r",
+ "2 1 26\r",
+ "2 1 27\r",
+ "2 1 28\r",
+ "2 1 29\r",
+ "2 1 30\r",
+ "2 1 31\r",
+ "2 1 32\r",
+ "2 1 33\r",
+ "2 1 34\r",
+ "2 1 35\r",
+ "2 1 36\r",
+ "2 1 37\r",
+ "2 1 38\r",
+ "2 1 39\r",
+ "2 1 40\r",
+ "2 1 41\r",
+ "2 1 42\r",
+ "2 1 43\r",
+ "2 1 44\r",
+ "2 1 45\r",
+ "2 1 46\r",
+ "2 1 47\r",
+ "2 1 48\r",
+ "2 1 49\r",
+ "2 1 50\r",
+ "2 1 51\r",
+ "2 1 52\r",
+ "2 1 53\r",
+ "2 1 54\r",
+ "2 1 55\r",
+ "2 1 56\r",
+ "2 1 57\r",
+ "2 1 58\r",
+ "2 2 1\r",
+ "2 2 2\r",
+ "2 2 3\r",
+ "2 2 4\r",
+ "2 2 5\r",
+ "2 2 6\r",
+ "2 2 7\r",
+ "2 2 8\r",
+ "2 2 9\r",
+ "2 2 10\r",
+ "2 2 11\r",
+ "2 2 12\r",
+ "2 2 13\r",
+ "2 2 14\r",
+ "2 2 15\r",
+ "2 2 16\r",
+ "2 2 17\r",
+ "2 2 18\r",
+ "2 2 19\r",
+ "2 2 20\r",
+ "2 2 21\r",
+ "2 2 22\r",
+ "2 2 23\r",
+ "2 2 24\r",
+ "2 2 25\r",
+ "2 2 26\r",
+ "2 2 27\r",
+ "2 2 28\r",
+ "2 2 29\r",
+ "2 2 30\r",
+ "2 2 31\r",
+ "2 2 32\r",
+ "2 2 33\r",
+ "2 2 34\r",
+ "2 2 35\r",
+ "2 2 36\r",
+ "2 2 37\r",
+ "2 2 38\r",
+ "2 2 39\r",
+ "2 2 40\r",
+ "2 2 41\r",
+ "2 2 42\r",
+ "2 2 43\r",
+ "2 2 44\r",
+ "2 2 45\r",
+ "2 2 46\r",
+ "2 2 47\r",
+ "2 2 48\r",
+ "2 2 49\r",
+ "2 2 50\r",
+ "2 2 51\r",
+ "2 2 52\r",
+ "2 2 53\r",
+ "2 2 54\r",
+ "2 2 55\r",
+ "2 2 56\r",
+ "2 2 57\r",
+ "2 2 58\r",
+ "2 3 1\r",
+ "2 3 2\r",
+ "2 3 3\r",
+ "2 3 4\r",
+ "2 3 5\r",
+ "2 3 6\r",
+ "2 3 7\r",
+ "2 3 8\r",
+ "2 3 9\r",
+ "2 3 10\r",
+ "2 3 11\r",
+ "2 3 12\r",
+ "2 3 13\r",
+ "2 3 14\r",
+ "2 3 15\r",
+ "2 3 16\r",
+ "2 3 17\r",
+ "2 3 18\r",
+ "2 3 19\r",
+ "2 3 20\r",
+ "2 3 21\r",
+ "2 3 22\r",
+ "2 3 23\r",
+ "2 3 24\r",
+ "2 3 25\r",
+ "2 3 26\r",
+ "2 3 27\r",
+ "2 3 28\r",
+ "2 3 29\r",
+ "2 3 30\r",
+ "2 3 31\r",
+ "2 3 32\r",
+ "2 3 33\r",
+ "2 3 34\r",
+ "2 3 35\r",
+ "2 3 36\r",
+ "2 3 37\r",
+ "2 3 38\r",
+ "2 3 39\r",
+ "2 3 40\r",
+ "2 3 41\r",
+ "2 3 42\r",
+ "2 3 43\r",
+ "2 3 44\r",
+ "2 3 45\r",
+ "2 3 46\r",
+ "2 3 47\r",
+ "2 3 48\r",
+ "2 3 49\r",
+ "2 3 50\r",
+ "2 3 51\r",
+ "2 3 52\r",
+ "2 3 53\r",
+ "2 3 54\r",
+ "2 3 55\r",
+ "2 3 56\r",
+ "2 3 57\r",
+ "2 3 58\r",
+ "2 4 1\r",
+ "2 4 2\r",
+ "2 4 3\r",
+ "2 4 4\r",
+ "2 4 5\r",
+ "2 4 6\r",
+ "2 4 7\r",
+ "2 4 8\r",
+ "2 4 9\r",
+ "2 4 10\r",
+ "2 4 11\r",
+ "2 4 12\r",
+ "2 4 13\r",
+ "2 4 14\r",
+ "2 4 15\r",
+ "2 4 16\r",
+ "2 4 17\r",
+ "2 4 18\r",
+ "2 4 19\r",
+ "2 4 20\r",
+ "2 4 21\r",
+ "2 4 22\r",
+ "2 4 23\r",
+ "2 4 24\r",
+ "2 4 25\r",
+ "2 4 26\r",
+ "2 4 27\r",
+ "2 4 28\r",
+ "2 4 29\r",
+ "2 4 30\r",
+ "2 4 31\r",
+ "2 4 32\r",
+ "2 4 33\r",
+ "2 4 34\r",
+ "2 4 35\r",
+ "2 4 36\r",
+ "2 4 37\r",
+ "2 4 38\r",
+ "2 4 39\r",
+ "2 4 40\r",
+ "2 4 41\r",
+ "2 4 42\r",
+ "2 4 43\r",
+ "2 4 44\r",
+ "2 4 45\r",
+ "2 4 46\r",
+ "2 4 47\r",
+ "2 4 48\r",
+ "2 4 49\r",
+ "2 4 50\r",
+ "2 4 51\r",
+ "2 4 52\r",
+ "2 4 53\r",
+ "2 4 54\r",
+ "2 4 55\r",
+ "2 4 56\r",
+ "2 4 57\r",
+ "2 4 58\r",
+ "2 5 1\r",
+ "2 5 2\r",
+ "2 5 3\r",
+ "2 5 4\r",
+ "2 5 5\r",
+ "2 5 6\r",
+ "2 5 7\r",
+ "2 5 8\r",
+ "2 5 9\r",
+ "2 5 10\r",
+ "2 5 11\r",
+ "2 5 12\r",
+ "2 5 13\r",
+ "2 5 14\r",
+ "2 5 15\r",
+ "2 5 16\r",
+ "2 5 17\r",
+ "2 5 18\r",
+ "2 5 19\r",
+ "2 5 20\r",
+ "2 5 21\r",
+ "2 5 22\r",
+ "2 5 23\r",
+ "2 5 24\r",
+ "2 5 25\r",
+ "2 5 26\r",
+ "2 5 27\r",
+ "2 5 28\r",
+ "2 5 29\r",
+ "2 5 30\r",
+ "2 5 31\r",
+ "2 5 32\r",
+ "2 5 33\r",
+ "2 5 34\r",
+ "2 5 35\r",
+ "2 5 36\r",
+ "2 5 37\r",
+ "2 5 38\r",
+ "2 5 39\r",
+ "2 5 40\r",
+ "2 5 41\r",
+ "2 5 42\r",
+ "2 5 43\r",
+ "2 5 44\r",
+ "2 5 45\r",
+ "2 5 46\r",
+ "2 5 47\r",
+ "2 5 48\r",
+ "2 5 49\r",
+ "2 5 50\r",
+ "2 5 51\r",
+ "2 5 52\r",
+ "2 5 53\r",
+ "2 5 54\r",
+ "2 5 55\r",
+ "2 5 56\r",
+ "2 5 57\r",
+ "2 5 58\r",
+ "2 6 1\r",
+ "2 6 2\r",
+ "2 6 3\r",
+ "2 6 4\r",
+ "2 6 5\r",
+ "2 6 6\r",
+ "2 6 7\r",
+ "2 6 8\r",
+ "2 6 9\r",
+ "2 6 10\r",
+ "2 6 11\r",
+ "2 6 12\r",
+ "2 6 13\r",
+ "2 6 14\r",
+ "2 6 15\r",
+ "2 6 16\r",
+ "2 6 17\r",
+ "2 6 18\r",
+ "2 6 19\r",
+ "2 6 20\r",
+ "2 6 21\r",
+ "2 6 22\r",
+ "2 6 23\r",
+ "2 6 24\r",
+ "2 6 25\r",
+ "2 6 26\r",
+ "2 6 27\r",
+ "2 6 28\r",
+ "2 6 29\r",
+ "2 6 30\r",
+ "2 6 31\r",
+ "2 6 32\r",
+ "2 6 33\r",
+ "2 6 34\r",
+ "2 6 35\r",
+ "2 6 36\r",
+ "2 6 37\r",
+ "2 6 38\r",
+ "2 6 39\r",
+ "2 6 40\r",
+ "2 6 41\r",
+ "2 6 42\r",
+ "2 6 43\r",
+ "2 6 44\r",
+ "2 6 45\r",
+ "2 6 46\r",
+ "2 6 47\r",
+ "2 6 48\r",
+ "2 6 49\r",
+ "2 6 50\r",
+ "2 6 51\r",
+ "2 6 52\r",
+ "2 6 53\r",
+ "2 6 54\r",
+ "2 6 55\r",
+ "2 6 56\r",
+ "2 6 57\r",
+ "2 6 58\r",
+ "2 7 1\r",
+ "2 7 2\r",
+ "2 7 3\r",
+ "2 7 4\r",
+ "2 7 5\r",
+ "2 7 6\r",
+ "2 7 7\r",
+ "2 7 8\r",
+ "2 7 9\r",
+ "2 7 10\r",
+ "2 7 11\r",
+ "2 7 12\r",
+ "2 7 13\r",
+ "2 7 14\r",
+ "2 7 15\r",
+ "2 7 16\r",
+ "2 7 17\r",
+ "2 7 18\r",
+ "2 7 19\r",
+ "2 7 20\r",
+ "2 7 21\r",
+ "2 7 22\r",
+ "2 7 23\r",
+ "2 7 24\r",
+ "2 7 25\r",
+ "2 7 26\r",
+ "2 7 27\r",
+ "2 7 28\r",
+ "2 7 29\r",
+ "2 7 30\r",
+ "2 7 31\r",
+ "2 7 32\r",
+ "2 7 33\r",
+ "2 7 34\r",
+ "2 7 35\r",
+ "2 7 36\r",
+ "2 7 37\r",
+ "2 7 38\r",
+ "2 7 39\r",
+ "2 7 40\r",
+ "2 7 41\r",
+ "2 7 42\r",
+ "2 7 43\r",
+ "2 7 44\r",
+ "2 7 45\r",
+ "2 7 46\r",
+ "2 7 47\r",
+ "2 7 48\r",
+ "2 7 49\r",
+ "2 7 50\r",
+ "2 7 51\r",
+ "2 7 52\r",
+ "2 7 53\r",
+ "2 7 54\r",
+ "2 7 55\r",
+ "2 7 56\r",
+ "2 7 57\r",
+ "2 7 58\r",
+ "2 8 1\r",
+ "2 8 2\r",
+ "2 8 3\r",
+ "2 8 4\r",
+ "2 8 5\r",
+ "2 8 6\r",
+ "2 8 7\r",
+ "2 8 8\r",
+ "2 8 9\r",
+ "2 8 10\r",
+ "2 8 11\r",
+ "2 8 12\r",
+ "2 8 13\r",
+ "2 8 14\r",
+ "2 8 15\r",
+ "2 8 16\r",
+ "2 8 17\r",
+ "2 8 18\r",
+ "2 8 19\r",
+ "2 8 20\r",
+ "2 8 21\r",
+ "2 8 22\r",
+ "2 8 23\r",
+ "2 8 24\r",
+ "2 8 25\r",
+ "2 8 26\r",
+ "2 8 27\r",
+ "2 8 28\r",
+ "2 8 29\r",
+ "2 8 30\r",
+ "2 8 31\r",
+ "2 8 32\r",
+ "2 8 33\r",
+ "2 8 34\r",
+ "2 8 35\r",
+ "2 8 36\r",
+ "2 8 37\r",
+ "2 8 38\r",
+ "2 8 39\r",
+ "2 8 40\r",
+ "2 8 41\r",
+ "2 8 42\r",
+ "2 8 43\r",
+ "2 8 44\r",
+ "2 8 45\r",
+ "2 8 46\r",
+ "2 8 47\r",
+ "2 8 48\r",
+ "2 8 49\r",
+ "2 8 50\r",
+ "2 8 51\r",
+ "2 8 52\r",
+ "2 8 53\r",
+ "2 8 54\r",
+ "2 8 55\r",
+ "2 8 56\r",
+ "2 8 57\r",
+ "2 8 58\r",
+ "2 9 1\r",
+ "2 9 2\r",
+ "2 9 3\r",
+ "2 9 4\r",
+ "2 9 5\r",
+ "2 9 6\r",
+ "2 9 7\r",
+ "2 9 8\r",
+ "2 9 9\r",
+ "2 9 10\r",
+ "2 9 11\r",
+ "2 9 12\r",
+ "2 9 13\r",
+ "2 9 14\r",
+ "2 9 15\r",
+ "2 9 16\r",
+ "2 9 17\r",
+ "2 9 18\r",
+ "2 9 19\r",
+ "2 9 20\r",
+ "2 9 21\r",
+ "2 9 22\r",
+ "2 9 23\r",
+ "2 9 24\r",
+ "2 9 25\r",
+ "2 9 26\r",
+ "2 9 27\r",
+ "2 9 28\r",
+ "2 9 29\r",
+ "2 9 30\r",
+ "2 9 31\r",
+ "2 9 32\r",
+ "2 9 33\r",
+ "2 9 34\r",
+ "2 9 35\r",
+ "2 9 36\r",
+ "2 9 37\r",
+ "2 9 38\r",
+ "2 9 39\r",
+ "2 9 40\r",
+ "2 9 41\r",
+ "2 9 42\r",
+ "2 9 43\r",
+ "2 9 44\r",
+ "2 9 45\r",
+ "2 9 46\r",
+ "2 9 47\r",
+ "2 9 48\r",
+ "2 9 49\r",
+ "2 9 50\r",
+ "2 9 51\r",
+ "2 9 52\r",
+ "2 9 53\r",
+ "2 9 54\r",
+ "2 9 55\r",
+ "2 9 56\r",
+ "2 9 57\r",
+ "2 9 58\r",
+ "2 10 1\r",
+ "2 10 2\r",
+ "2 10 3\r",
+ "2 10 4\r",
+ "2 10 5\r",
+ "2 10 6\r",
+ "2 10 7\r",
+ "2 10 8\r",
+ "2 10 9\r",
+ "2 10 10\r",
+ "2 10 11\r",
+ "2 10 12\r",
+ "2 10 13\r",
+ "2 10 14\r",
+ "2 10 15\r",
+ "2 10 16\r",
+ "2 10 17\r",
+ "2 10 18\r",
+ "2 10 19\r",
+ "2 10 20\r",
+ "2 10 21\r",
+ "2 10 22\r",
+ "2 10 23\r",
+ "2 10 24\r",
+ "2 10 25\r",
+ "2 10 26\r",
+ "2 10 27\r",
+ "2 10 28\r",
+ "2 10 29\r",
+ "2 10 30\r",
+ "2 10 31\r",
+ "2 10 32\r",
+ "2 10 33\r",
+ "2 10 34\r",
+ "2 10 35\r",
+ "2 10 36\r",
+ "2 10 37\r",
+ "2 10 38\r",
+ "2 10 39\r",
+ "2 10 40\r",
+ "2 10 41\r",
+ "2 10 42\r",
+ "2 10 43\r",
+ "2 10 44\r",
+ "2 10 45\r",
+ "2 10 46\r",
+ "2 10 47\r",
+ "2 10 48\r",
+ "2 10 49\r",
+ "2 10 50\r",
+ "2 10 51\r",
+ "2 10 52\r",
+ "2 10 53\r",
+ "2 10 54\r",
+ "2 10 55\r",
+ "2 10 56\r",
+ "2 10 57\r",
+ "2 10 58\r",
+ "2 11 1\r",
+ "2 11 2\r",
+ "2 11 3\r",
+ "2 11 4\r",
+ "2 11 5\r",
+ "2 11 6\r",
+ "2 11 7\r",
+ "2 11 8\r",
+ "2 11 9\r",
+ "2 11 10\r",
+ "2 11 11\r",
+ "2 11 12\r",
+ "2 11 13\r",
+ "2 11 14\r",
+ "2 11 15\r",
+ "2 11 16\r",
+ "2 11 17\r",
+ "2 11 18\r",
+ "2 11 19\r",
+ "2 11 20\r",
+ "2 11 21\r",
+ "2 11 22\r",
+ "2 11 23\r",
+ "2 11 24\r",
+ "2 11 25\r",
+ "2 11 26\r",
+ "2 11 27\r",
+ "2 11 28\r",
+ "2 11 29\r",
+ "2 11 30\r",
+ "2 11 31\r",
+ "2 11 32\r",
+ "2 11 33\r",
+ "2 11 34\r",
+ "2 11 35\r",
+ "2 11 36\r",
+ "2 11 37\r",
+ "2 11 38\r",
+ "2 11 39\r",
+ "2 11 40\r",
+ "2 11 41\r",
+ "2 11 42\r",
+ "2 11 43\r",
+ "2 11 44\r",
+ "2 11 45\r",
+ "2 11 46\r",
+ "2 11 47\r",
+ "2 11 48\r",
+ "2 11 49\r",
+ "2 11 50\r",
+ "2 11 51\r",
+ "2 11 52\r",
+ "2 11 53\r",
+ "2 11 54\r",
+ "2 11 55\r",
+ "2 11 56\r",
+ "2 11 57\r",
+ "2 11 58\r",
+ "2 12 1\r",
+ "2 12 2\r",
+ "2 12 3\r",
+ "2 12 4\r",
+ "2 12 5\r",
+ "2 12 6\r",
+ "2 12 7\r",
+ "2 12 8\r",
+ "2 12 9\r",
+ "2 12 10\r",
+ "2 12 11\r",
+ "2 12 12\r",
+ "2 12 13\r",
+ "2 12 14\r",
+ "2 12 15\r",
+ "2 12 16\r",
+ "2 12 17\r",
+ "2 12 18\r",
+ "2 12 19\r",
+ "2 12 20\r",
+ "2 12 21\r",
+ "2 12 22\r",
+ "2 12 23\r",
+ "2 12 24\r",
+ "2 12 25\r",
+ "2 12 26\r",
+ "2 12 27\r",
+ "2 12 28\r",
+ "2 12 29\r",
+ "2 12 30\r",
+ "2 12 31\r",
+ "2 12 32\r",
+ "2 12 33\r",
+ "2 12 34\r",
+ "2 12 35\r",
+ "2 12 36\r",
+ "2 12 37\r",
+ "2 12 38\r",
+ "2 12 39\r",
+ "2 12 40\r",
+ "2 12 41\r",
+ "2 12 42\r",
+ "2 12 43\r",
+ "2 12 44\r",
+ "2 12 45\r",
+ "2 12 46\r",
+ "2 12 47\r",
+ "2 12 48\r",
+ "2 12 49\r",
+ "2 12 50\r",
+ "2 12 51\r",
+ "2 12 52\r",
+ "2 12 53\r",
+ "2 12 54\r",
+ "2 12 55\r",
+ "2 12 56\r",
+ "2 12 57\r",
+ "2 12 58\r",
+ "2 13 1\r",
+ "2 13 2\r",
+ "2 13 3\r",
+ "2 13 4\r",
+ "2 13 5\r",
+ "2 13 6\r",
+ "2 13 7\r",
+ "2 13 8\r",
+ "2 13 9\r",
+ "2 13 10\r",
+ "2 13 11\r",
+ "2 13 12\r",
+ "2 13 13\r",
+ "2 13 14\r",
+ "2 13 15\r",
+ "2 13 16\r",
+ "2 13 17\r",
+ "2 13 18\r",
+ "2 13 19\r",
+ "2 13 20\r",
+ "2 13 21\r",
+ "2 13 22\r",
+ "2 13 23\r",
+ "2 13 24\r",
+ "2 13 25\r",
+ "2 13 26\r",
+ "2 13 27\r",
+ "2 13 28\r",
+ "2 13 29\r",
+ "2 13 30\r",
+ "2 13 31\r",
+ "2 13 32\r",
+ "2 13 33\r",
+ "2 13 34\r",
+ "2 13 35\r",
+ "2 13 36\r",
+ "2 13 37\r",
+ "2 13 38\r",
+ "2 13 39\r",
+ "2 13 40\r",
+ "2 13 41\r",
+ "2 13 42\r",
+ "2 13 43\r",
+ "2 13 44\r",
+ "2 13 45\r",
+ "2 13 46\r",
+ "2 13 47\r",
+ "2 13 48\r",
+ "2 13 49\r",
+ "2 13 50\r",
+ "2 13 51\r",
+ "2 13 52\r",
+ "2 13 53\r",
+ "2 13 54\r",
+ "2 13 55\r",
+ "2 13 56\r",
+ "2 13 57\r",
+ "2 13 58\r",
+ "2 14 1\r",
+ "2 14 2\r",
+ "2 14 3\r",
+ "2 14 4\r",
+ "2 14 5\r",
+ "2 14 6\r",
+ "2 14 7\r",
+ "2 14 8\r",
+ "2 14 9\r",
+ "2 14 10\r",
+ "2 14 11\r",
+ "2 14 12\r",
+ "2 14 13\r",
+ "2 14 14\r",
+ "2 14 15\r",
+ "2 14 16\r",
+ "2 14 17\r",
+ "2 14 18\r",
+ "2 14 19\r",
+ "2 14 20\r",
+ "2 14 21\r",
+ "2 14 22\r",
+ "2 14 23\r",
+ "2 14 24\r",
+ "2 14 25\r",
+ "2 14 26\r",
+ "2 14 27\r",
+ "2 14 28\r",
+ "2 14 29\r",
+ "2 14 30\r",
+ "2 14 31\r",
+ "2 14 32\r",
+ "2 14 33\r",
+ "2 14 34\r",
+ "2 14 35\r",
+ "2 14 36\r",
+ "2 14 37\r",
+ "2 14 38\r",
+ "2 14 39\r",
+ "2 14 40\r",
+ "2 14 41\r",
+ "2 14 42\r",
+ "2 14 43\r",
+ "2 14 44\r",
+ "2 14 45\r",
+ "2 14 46\r",
+ "2 14 47\r",
+ "2 14 48\r",
+ "2 14 49\r",
+ "2 14 50\r",
+ "2 14 51\r",
+ "2 14 52\r",
+ "2 14 53\r",
+ "2 14 54\r",
+ "2 14 55\r",
+ "2 14 56\r",
+ "2 14 57\r",
+ "2 14 58\r",
+ "2 15 1\r",
+ "2 15 2\r",
+ "2 15 3\r",
+ "2 15 4\r",
+ "2 15 5\r",
+ "2 15 6\r",
+ "2 15 7\r",
+ "2 15 8\r",
+ "2 15 9\r",
+ "2 15 10\r",
+ "2 15 11\r",
+ "2 15 12\r",
+ "2 15 13\r",
+ "2 15 14\r",
+ "2 15 15\r",
+ "2 15 16\r",
+ "2 15 17\r",
+ "2 15 18\r",
+ "2 15 19\r",
+ "2 15 20\r",
+ "2 15 21\r",
+ "2 15 22\r",
+ "2 15 23\r",
+ "2 15 24\r",
+ "2 15 25\r",
+ "2 15 26\r",
+ "2 15 27\r",
+ "2 15 28\r",
+ "2 15 29\r",
+ "2 15 30\r",
+ "2 15 31\r",
+ "2 15 32\r",
+ "2 15 33\r",
+ "2 15 34\r",
+ "2 15 35\r",
+ "2 15 36\r",
+ "2 15 37\r",
+ "2 15 38\r",
+ "2 15 39\r",
+ "2 15 40\r",
+ "2 15 41\r",
+ "2 15 42\r",
+ "2 15 43\r",
+ "2 15 44\r",
+ "2 15 45\r",
+ "2 15 46\r",
+ "2 15 47\r",
+ "2 15 48\r",
+ "2 15 49\r",
+ "2 15 50\r",
+ "2 15 51\r",
+ "2 15 52\r",
+ "2 15 53\r",
+ "2 15 54\r",
+ "2 15 55\r",
+ "2 15 56\r",
+ "2 15 57\r",
+ "2 15 58\r",
+ "2 16 1\r",
+ "2 16 2\r",
+ "2 16 3\r",
+ "2 16 4\r",
+ "2 16 5\r",
+ "2 16 6\r",
+ "2 16 7\r",
+ "2 16 8\r",
+ "2 16 9\r",
+ "2 16 10\r",
+ "2 16 11\r",
+ "2 16 12\r",
+ "2 16 13\r",
+ "2 16 14\r",
+ "2 16 15\r",
+ "2 16 16\r",
+ "2 16 17\r",
+ "2 16 18\r",
+ "2 16 19\r",
+ "2 16 20\r",
+ "2 16 21\r",
+ "2 16 22\r",
+ "2 16 23\r",
+ "2 16 24\r",
+ "2 16 25\r",
+ "2 16 26\r",
+ "2 16 27\r",
+ "2 16 28\r",
+ "2 16 29\r",
+ "2 16 30\r",
+ "2 16 31\r",
+ "2 16 32\r",
+ "2 16 33\r",
+ "2 16 34\r",
+ "2 16 35\r",
+ "2 16 36\r",
+ "2 16 37\r",
+ "2 16 38\r",
+ "2 16 39\r",
+ "2 16 40\r",
+ "2 16 41\r",
+ "2 16 42\r",
+ "2 16 43\r",
+ "2 16 44\r",
+ "2 16 45\r",
+ "2 16 46\r",
+ "2 16 47\r",
+ "2 16 48\r",
+ "2 16 49\r",
+ "2 16 50\r",
+ "2 16 51\r",
+ "2 16 52\r",
+ "2 16 53\r",
+ "2 16 54\r",
+ "2 16 55\r",
+ "2 16 56\r",
+ "2 16 57\r",
+ "2 16 58\r",
+ "2 17 1\r",
+ "2 17 2\r",
+ "2 17 3\r",
+ "2 17 4\r",
+ "2 17 5\r",
+ "2 17 6\r",
+ "2 17 7\r",
+ "2 17 8\r",
+ "2 17 9\r",
+ "2 17 10\r",
+ "2 17 11\r",
+ "2 17 12\r",
+ "2 17 13\r",
+ "2 17 14\r",
+ "2 17 15\r",
+ "2 17 16\r",
+ "2 17 17\r",
+ "2 17 18\r",
+ "2 17 19\r",
+ "2 17 20\r",
+ "2 17 21\r",
+ "2 17 22\r",
+ "2 17 23\r",
+ "2 17 24\r",
+ "2 17 25\r",
+ "2 17 26\r",
+ "2 17 27\r",
+ "2 17 28\r",
+ "2 17 29\r",
+ "2 17 30\r",
+ "2 17 31\r",
+ "2 17 32\r",
+ "2 17 33\r",
+ "2 17 34\r",
+ "2 17 35\r",
+ "2 17 36\r",
+ "2 17 37\r",
+ "2 17 38\r",
+ "2 17 39\r",
+ "2 17 40\r",
+ "2 17 41\r",
+ "2 17 42\r",
+ "2 17 43\r",
+ "2 17 44\r",
+ "2 17 45\r",
+ "2 17 46\r",
+ "2 17 47\r",
+ "2 17 48\r",
+ "2 17 49\r",
+ "2 17 50\r",
+ "2 17 51\r",
+ "2 17 52\r",
+ "2 17 53\r",
+ "2 17 54\r",
+ "2 17 55\r",
+ "2 17 56\r",
+ "2 17 57\r",
+ "2 17 58\r",
+ "2 18 1\r",
+ "2 18 2\r",
+ "2 18 3\r",
+ "2 18 4\r",
+ "2 18 5\r",
+ "2 18 6\r",
+ "2 18 7\r",
+ "2 18 8\r",
+ "2 18 9\r",
+ "2 18 10\r",
+ "2 18 11\r",
+ "2 18 12\r",
+ "2 18 13\r",
+ "2 18 14\r",
+ "2 18 15\r",
+ "2 18 16\r",
+ "2 18 17\r",
+ "2 18 18\r",
+ "2 18 19\r",
+ "2 18 20\r",
+ "2 18 21\r",
+ "2 18 22\r",
+ "2 18 23\r",
+ "2 18 24\r",
+ "2 18 25\r",
+ "2 18 26\r",
+ "2 18 27\r",
+ "2 18 28\r",
+ "2 18 29\r",
+ "2 18 30\r",
+ "2 18 31\r",
+ "2 18 32\r",
+ "2 18 33\r",
+ "2 18 34\r",
+ "2 18 35\r",
+ "2 18 36\r",
+ "2 18 37\r",
+ "2 18 38\r",
+ "2 18 39\r",
+ "2 18 40\r",
+ "2 18 41\r",
+ "2 18 42\r",
+ "2 18 43\r",
+ "2 18 44\r",
+ "2 18 45\r",
+ "2 18 46\r",
+ "2 18 47\r",
+ "2 18 48\r",
+ "2 18 49\r",
+ "2 18 50\r",
+ "2 18 51\r",
+ "2 18 52\r",
+ "2 18 53\r",
+ "2 18 54\r",
+ "2 18 55\r",
+ "2 18 56\r",
+ "2 18 57\r",
+ "2 18 58\r",
+ "2 19 1\r",
+ "2 19 2\r",
+ "2 19 3\r",
+ "2 19 4\r",
+ "2 19 5\r",
+ "2 19 6\r",
+ "2 19 7\r",
+ "2 19 8\r",
+ "2 19 9\r",
+ "2 19 10\r",
+ "2 19 11\r",
+ "2 19 12\r",
+ "2 19 13\r",
+ "2 19 14\r",
+ "2 19 15\r",
+ "2 19 16\r",
+ "2 19 17\r",
+ "2 19 18\r",
+ "2 19 19\r",
+ "2 19 20\r",
+ "2 19 21\r",
+ "2 19 22\r",
+ "2 19 23\r",
+ "2 19 24\r",
+ "2 19 25\r",
+ "2 19 26\r",
+ "2 19 27\r",
+ "2 19 28\r",
+ "2 19 29\r",
+ "2 19 30\r",
+ "2 19 31\r",
+ "2 19 32\r",
+ "2 19 33\r",
+ "2 19 34\r",
+ "2 19 35\r",
+ "2 19 36\r",
+ "2 19 37\r",
+ "2 19 38\r",
+ "2 19 39\r",
+ "2 19 40\r",
+ "2 19 41\r",
+ "2 19 42\r",
+ "2 19 43\r",
+ "2 19 44\r",
+ "2 19 45\r",
+ "2 19 46\r",
+ "2 19 47\r",
+ "2 19 48\r",
+ "2 19 49\r",
+ "2 19 50\r",
+ "2 19 51\r",
+ "2 19 52\r",
+ "2 19 53\r",
+ "2 19 54\r",
+ "2 19 55\r",
+ "2 19 56\r",
+ "2 19 57\r",
+ "2 19 58\r",
+ "2 20 1\r",
+ "2 20 2\r",
+ "2 20 3\r",
+ "2 20 4\r",
+ "2 20 5\r",
+ "2 20 6\r",
+ "2 20 7\r",
+ "2 20 8\r",
+ "2 20 9\r",
+ "2 20 10\r",
+ "2 20 11\r",
+ "2 20 12\r",
+ "2 20 13\r",
+ "2 20 14\r",
+ "2 20 15\r",
+ "2 20 16\r",
+ "2 20 17\r",
+ "2 20 18\r",
+ "2 20 19\r",
+ "2 20 20\r",
+ "2 20 21\r",
+ "2 20 22\r",
+ "2 20 23\r",
+ "2 20 24\r",
+ "2 20 25\r",
+ "2 20 26\r",
+ "2 20 27\r",
+ "2 20 28\r",
+ "2 20 29\r",
+ "2 20 30\r",
+ "2 20 31\r",
+ "2 20 32\r",
+ "2 20 33\r",
+ "2 20 34\r",
+ "2 20 35\r",
+ "2 20 36\r",
+ "2 20 37\r",
+ "2 20 38\r",
+ "2 20 39\r",
+ "2 20 40\r",
+ "2 20 41\r",
+ "2 20 42\r",
+ "2 20 43\r",
+ "2 20 44\r",
+ "2 20 45\r",
+ "2 20 46\r",
+ "2 20 47\r",
+ "2 20 48\r",
+ "2 20 49\r",
+ "2 20 50\r",
+ "2 20 51\r",
+ "2 20 52\r",
+ "2 20 53\r",
+ "2 20 54\r",
+ "2 20 55\r",
+ "2 20 56\r",
+ "2 20 57\r",
+ "2 20 58\r",
+ "2 21 1\r",
+ "2 21 2\r",
+ "2 21 3\r",
+ "2 21 4\r",
+ "2 21 5\r",
+ "2 21 6\r",
+ "2 21 7\r",
+ "2 21 8\r",
+ "2 21 9\r",
+ "2 21 10\r",
+ "2 21 11\r",
+ "2 21 12\r",
+ "2 21 13\r",
+ "2 21 14\r",
+ "2 21 15\r",
+ "2 21 16\r",
+ "2 21 17\r",
+ "2 21 18\r",
+ "2 21 19\r",
+ "2 21 20\r",
+ "2 21 21\r",
+ "2 21 22\r",
+ "2 21 23\r",
+ "2 21 24\r",
+ "2 21 25\r",
+ "2 21 26\r",
+ "2 21 27\r",
+ "2 21 28\r",
+ "2 21 29\r",
+ "2 21 30\r",
+ "2 21 31\r",
+ "2 21 32\r",
+ "2 21 33\r",
+ "2 21 34\r",
+ "2 21 35\r",
+ "2 21 36\r",
+ "2 21 37\r",
+ "2 21 38\r",
+ "2 21 39\r",
+ "2 21 40\r",
+ "2 21 41\r",
+ "2 21 42\r",
+ "2 21 43\r",
+ "2 21 44\r",
+ "2 21 45\r",
+ "2 21 46\r",
+ "2 21 47\r",
+ "2 21 48\r",
+ "2 21 49\r",
+ "2 21 50\r",
+ "2 21 51\r",
+ "2 21 52\r",
+ "2 21 53\r",
+ "2 21 54\r",
+ "2 21 55\r",
+ "2 21 56\r",
+ "2 21 57\r",
+ "2 21 58\r",
+ "2 22 1\r",
+ "2 22 2\r",
+ "2 22 3\r",
+ "2 22 4\r",
+ "2 22 5\r",
+ "2 22 6\r",
+ "2 22 7\r",
+ "2 22 8\r",
+ "2 22 9\r",
+ "2 22 10\r",
+ "2 22 11\r",
+ "2 22 12\r",
+ "2 22 13\r",
+ "2 22 14\r",
+ "2 22 15\r",
+ "2 22 16\r",
+ "2 22 17\r",
+ "2 22 18\r",
+ "2 22 19\r",
+ "2 22 20\r",
+ "2 22 21\r",
+ "2 22 22\r",
+ "2 22 23\r",
+ "2 22 24\r",
+ "2 22 25\r",
+ "2 22 26\r",
+ "2 22 27\r",
+ "2 22 28\r",
+ "2 22 29\r",
+ "2 22 30\r",
+ "2 22 31\r",
+ "2 22 32\r",
+ "2 22 33\r",
+ "2 22 34\r",
+ "2 22 35\r",
+ "2 22 36\r",
+ "2 22 37\r",
+ "2 22 38\r",
+ "2 22 39\r",
+ "2 22 40\r",
+ "2 22 41\r",
+ "2 22 42\r",
+ "2 22 43\r",
+ "2 22 44\r",
+ "2 22 45\r",
+ "2 22 46\r",
+ "2 22 47\r",
+ "2 22 48\r",
+ "2 22 49\r",
+ "2 22 50\r",
+ "2 22 51\r",
+ "2 22 52\r",
+ "2 22 53\r",
+ "2 22 54\r",
+ "2 22 55\r",
+ "2 22 56\r",
+ "2 22 57\r",
+ "2 22 58\r",
+ "2 23 1\r",
+ "2 23 2\r",
+ "2 23 3\r",
+ "2 23 4\r",
+ "2 23 5\r",
+ "2 23 6\r",
+ "2 23 7\r",
+ "2 23 8\r",
+ "2 23 9\r",
+ "2 23 10\r",
+ "2 23 11\r",
+ "2 23 12\r",
+ "2 23 13\r",
+ "2 23 14\r",
+ "2 23 15\r",
+ "2 23 16\r",
+ "2 23 17\r",
+ "2 23 18\r",
+ "2 23 19\r",
+ "2 23 20\r",
+ "2 23 21\r",
+ "2 23 22\r",
+ "2 23 23\r",
+ "2 23 24\r",
+ "2 23 25\r",
+ "2 23 26\r",
+ "2 23 27\r",
+ "2 23 28\r",
+ "2 23 29\r",
+ "2 23 30\r",
+ "2 23 31\r",
+ "2 23 32\r",
+ "2 23 33\r",
+ "2 23 34\r",
+ "2 23 35\r",
+ "2 23 36\r",
+ "2 23 37\r",
+ "2 23 38\r",
+ "2 23 39\r",
+ "2 23 40\r",
+ "2 23 41\r",
+ "2 23 42\r",
+ "2 23 43\r",
+ "2 23 44\r",
+ "2 23 45\r",
+ "2 23 46\r",
+ "2 23 47\r",
+ "2 23 48\r",
+ "2 23 49\r",
+ "2 23 50\r",
+ "2 23 51\r",
+ "2 23 52\r",
+ "2 23 53\r",
+ "2 23 54\r",
+ "2 23 55\r",
+ "2 23 56\r",
+ "2 23 57\r",
+ "2 23 58\r",
+ "2 24 1\r",
+ "2 24 2\r",
+ "2 24 3\r",
+ "2 24 4\r",
+ "2 24 5\r",
+ "2 24 6\r",
+ "2 24 7\r",
+ "2 24 8\r",
+ "2 24 9\r",
+ "2 24 10\r",
+ "2 24 11\r",
+ "2 24 12\r",
+ "2 24 13\r",
+ "2 24 14\r",
+ "2 24 15\r",
+ "2 24 16\r",
+ "2 24 17\r",
+ "2 24 18\r",
+ "2 24 19\r",
+ "2 24 20\r",
+ "2 24 21\r",
+ "2 24 22\r",
+ "2 24 23\r",
+ "2 24 24\r",
+ "2 24 25\r",
+ "2 24 26\r",
+ "2 24 27\r",
+ "2 24 28\r",
+ "2 24 29\r",
+ "2 24 30\r",
+ "2 24 31\r",
+ "2 24 32\r",
+ "2 24 33\r",
+ "2 24 34\r",
+ "2 24 35\r",
+ "2 24 36\r",
+ "2 24 37\r",
+ "2 24 38\r",
+ "2 24 39\r",
+ "2 24 40\r",
+ "2 24 41\r",
+ "2 24 42\r",
+ "2 24 43\r",
+ "2 24 44\r",
+ "2 24 45\r",
+ "2 24 46\r",
+ "2 24 47\r",
+ "2 24 48\r",
+ "2 24 49\r",
+ "2 24 50\r",
+ "2 24 51\r",
+ "2 24 52\r",
+ "2 24 53\r",
+ "2 24 54\r",
+ "2 24 55\r",
+ "2 24 56\r",
+ "2 24 57\r",
+ "2 24 58\r",
+ "2 25 1\r",
+ "2 25 2\r",
+ "2 25 3\r",
+ "2 25 4\r",
+ "2 25 5\r",
+ "2 25 6\r",
+ "2 25 7\r",
+ "2 25 8\r",
+ "2 25 9\r",
+ "2 25 10\r",
+ "2 25 11\r",
+ "2 25 12\r",
+ "2 25 13\r",
+ "2 25 14\r",
+ "2 25 15\r",
+ "2 25 16\r",
+ "2 25 17\r",
+ "2 25 18\r",
+ "2 25 19\r",
+ "2 25 20\r",
+ "2 25 21\r",
+ "2 25 22\r",
+ "2 25 23\r",
+ "2 25 24\r",
+ "2 25 25\r",
+ "2 25 26\r",
+ "2 25 27\r",
+ "2 25 28\r",
+ "2 25 29\r",
+ "2 25 30\r",
+ "2 25 31\r",
+ "2 25 32\r",
+ "2 25 33\r",
+ "2 25 34\r",
+ "2 25 35\r",
+ "2 25 36\r",
+ "2 25 37\r",
+ "2 25 38\r",
+ "2 25 39\r",
+ "2 25 40\r",
+ "2 25 41\r",
+ "2 25 42\r",
+ "2 25 43\r",
+ "2 25 44\r",
+ "2 25 45\r",
+ "2 25 46\r",
+ "2 25 47\r",
+ "2 25 48\r",
+ "2 25 49\r",
+ "2 25 50\r",
+ "2 25 51\r",
+ "2 25 52\r",
+ "2 25 53\r",
+ "2 25 54\r",
+ "2 25 55\r",
+ "2 25 56\r",
+ "2 25 57\r",
+ "2 25 58\r",
+ "2 26 1\r",
+ "2 26 2\r",
+ "2 26 3\r",
+ "2 26 4\r",
+ "2 26 5\r",
+ "2 26 6\r",
+ "2 26 7\r",
+ "2 26 8\r",
+ "2 26 9\r",
+ "2 26 10\r",
+ "2 26 11\r",
+ "2 26 12\r",
+ "2 26 13\r",
+ "2 26 14\r",
+ "2 26 15\r",
+ "2 26 16\r",
+ "2 26 17\r",
+ "2 26 18\r",
+ "2 26 19\r",
+ "2 26 20\r",
+ "2 26 21\r",
+ "2 26 22\r",
+ "2 26 23\r",
+ "2 26 24\r",
+ "2 26 25\r",
+ "2 26 26\r",
+ "2 26 27\r",
+ "2 26 28\r",
+ "2 26 29\r",
+ "2 26 30\r",
+ "2 26 31\r",
+ "2 26 32\r",
+ "2 26 33\r",
+ "2 26 34\r",
+ "2 26 35\r",
+ "2 26 36\r",
+ "2 26 37\r",
+ "2 26 38\r",
+ "2 26 39\r",
+ "2 26 40\r",
+ "2 26 41\r",
+ "2 26 42\r",
+ "2 26 43\r",
+ "2 26 44\r",
+ "2 26 45\r",
+ "2 26 46\r",
+ "2 26 47\r",
+ "2 26 48\r",
+ "2 26 49\r",
+ "2 26 50\r",
+ "2 26 51\r",
+ "2 26 52\r",
+ "2 26 53\r",
+ "2 26 54\r",
+ "2 26 55\r",
+ "2 26 56\r",
+ "2 26 57\r",
+ "2 26 58\r",
+ "2 27 1\r",
+ "2 27 2\r",
+ "2 27 3\r",
+ "2 27 4\r",
+ "2 27 5\r",
+ "2 27 6\r",
+ "2 27 7\r",
+ "2 27 8\r",
+ "2 27 9\r",
+ "2 27 10\r",
+ "2 27 11\r",
+ "2 27 12\r",
+ "2 27 13\r",
+ "2 27 14\r",
+ "2 27 15\r",
+ "2 27 16\r",
+ "2 27 17\r",
+ "2 27 18\r",
+ "2 27 19\r",
+ "2 27 20\r",
+ "2 27 21\r",
+ "2 27 22\r",
+ "2 27 23\r",
+ "2 27 24\r",
+ "2 27 25\r",
+ "2 27 26\r",
+ "2 27 27\r",
+ "2 27 28\r",
+ "2 27 29\r",
+ "2 27 30\r",
+ "2 27 31\r",
+ "2 27 32\r",
+ "2 27 33\r",
+ "2 27 34\r",
+ "2 27 35\r",
+ "2 27 36\r",
+ "2 27 37\r",
+ "2 27 38\r",
+ "2 27 39\r",
+ "2 27 40\r",
+ "2 27 41\r",
+ "2 27 42\r",
+ "2 27 43\r",
+ "2 27 44\r",
+ "2 27 45\r",
+ "2 27 46\r",
+ "2 27 47\r",
+ "2 27 48\r",
+ "2 27 49\r",
+ "2 27 50\r",
+ "2 27 51\r",
+ "2 27 52\r",
+ "2 27 53\r",
+ "2 27 54\r",
+ "2 27 55\r",
+ "2 27 56\r",
+ "2 27 57\r",
+ "2 27 58\r",
+ "2 28 1\r",
+ "2 28 2\r",
+ "2 28 3\r",
+ "2 28 4\r",
+ "2 28 5\r",
+ "2 28 6\r",
+ "2 28 7\r",
+ "2 28 8\r",
+ "2 28 9\r",
+ "2 28 10\r",
+ "2 28 11\r",
+ "2 28 12\r",
+ "2 28 13\r",
+ "2 28 14\r",
+ "2 28 15\r",
+ "2 28 16\r",
+ "2 28 17\r",
+ "2 28 18\r",
+ "2 28 19\r",
+ "2 28 20\r",
+ "2 28 21\r",
+ "2 28 22\r",
+ "2 28 23\r",
+ "2 28 24\r",
+ "2 28 25\r",
+ "2 28 26\r",
+ "2 28 27\r",
+ "2 28 28\r",
+ "2 28 29\r",
+ "2 28 30\r",
+ "2 28 31\r",
+ "2 28 32\r",
+ "2 28 33\r",
+ "2 28 34\r",
+ "2 28 35\r",
+ "2 28 36\r",
+ "2 28 37\r",
+ "2 28 38\r",
+ "2 28 39\r",
+ "2 28 40\r",
+ "2 28 41\r",
+ "2 28 42\r",
+ "2 28 43\r",
+ "2 28 44\r",
+ "2 28 45\r",
+ "2 28 46\r",
+ "2 28 47\r",
+ "2 28 48\r",
+ "2 28 49\r",
+ "2 28 50\r",
+ "2 28 51\r",
+ "2 28 52\r",
+ "2 28 53\r",
+ "2 28 54\r",
+ "2 28 55\r",
+ "2 28 56\r",
+ "2 28 57\r",
+ "2 28 58\r",
+ "2 29 1\r",
+ "2 29 2\r",
+ "2 29 3\r",
+ "2 29 4\r",
+ "2 29 5\r",
+ "2 29 6\r",
+ "2 29 7\r",
+ "2 29 8\r",
+ "2 29 9\r",
+ "2 29 10\r",
+ "2 29 11\r",
+ "2 29 12\r",
+ "2 29 13\r",
+ "2 29 14\r",
+ "2 29 15\r",
+ "2 29 16\r",
+ "2 29 17\r",
+ "2 29 18\r",
+ "2 29 19\r",
+ "2 29 20\r",
+ "2 29 21\r",
+ "2 29 22\r",
+ "2 29 23\r",
+ "2 29 24\r",
+ "2 29 25\r",
+ "2 29 26\r",
+ "2 29 27\r",
+ "2 29 28\r",
+ "2 29 29\r",
+ "2 29 30\r",
+ "2 29 31\r",
+ "2 29 32\r",
+ "2 29 33\r",
+ "2 29 34\r",
+ "2 29 35\r",
+ "2 29 36\r",
+ "2 29 37\r",
+ "2 29 38\r",
+ "2 29 39\r",
+ "2 29 40\r",
+ "2 29 41\r",
+ "2 29 42\r",
+ "2 29 43\r",
+ "2 29 44\r",
+ "2 29 45\r",
+ "2 29 46\r",
+ "2 29 47\r",
+ "2 29 48\r",
+ "2 29 49\r",
+ "2 29 50\r",
+ "2 29 51\r",
+ "2 29 52\r",
+ "2 29 53\r",
+ "2 29 54\r",
+ "2 29 55\r",
+ "2 29 56\r",
+ "2 29 57\r",
+ "2 29 58\r",
+ "2 30 1\r",
+ "2 30 2\r",
+ "2 30 3\r",
+ "2 30 4\r",
+ "2 30 5\r",
+ "2 30 6\r",
+ "2 30 7\r",
+ "2 30 8\r",
+ "2 30 9\r",
+ "2 30 10\r",
+ "2 30 11\r",
+ "2 30 12\r",
+ "2 30 13\r",
+ "2 30 14\r",
+ "2 30 15\r",
+ "2 30 16\r",
+ "2 30 17\r",
+ "2 30 18\r",
+ "2 30 19\r",
+ "2 30 20\r",
+ "2 30 21\r",
+ "2 30 22\r",
+ "2 30 23\r",
+ "2 30 24\r",
+ "2 30 25\r",
+ "2 30 26\r",
+ "2 30 27\r",
+ "2 30 28\r",
+ "2 30 29\r",
+ "2 30 30\r",
+ "2 30 31\r",
+ "2 30 32\r",
+ "2 30 33\r",
+ "2 30 34\r",
+ "2 30 35\r",
+ "2 30 36\r",
+ "2 30 37\r",
+ "2 30 38\r",
+ "2 30 39\r",
+ "2 30 40\r",
+ "2 30 41\r",
+ "2 30 42\r",
+ "2 30 43\r",
+ "2 30 44\r",
+ "2 30 45\r",
+ "2 30 46\r",
+ "2 30 47\r",
+ "2 30 48\r",
+ "2 30 49\r",
+ "2 30 50\r",
+ "2 30 51\r",
+ "2 30 52\r",
+ "2 30 53\r",
+ "2 30 54\r",
+ "2 30 55\r",
+ "2 30 56\r",
+ "2 30 57\r",
+ "2 30 58\r",
+ "2 31 1\r",
+ "2 31 2\r",
+ "2 31 3\r",
+ "2 31 4\r",
+ "2 31 5\r",
+ "2 31 6\r",
+ "2 31 7\r",
+ "2 31 8\r",
+ "2 31 9\r",
+ "2 31 10\r",
+ "2 31 11\r",
+ "2 31 12\r",
+ "2 31 13\r",
+ "2 31 14\r",
+ "2 31 15\r",
+ "2 31 16\r",
+ "2 31 17\r",
+ "2 31 18\r",
+ "2 31 19\r",
+ "2 31 20\r",
+ "2 31 21\r",
+ "2 31 22\r",
+ "2 31 23\r",
+ "2 31 24\r",
+ "2 31 25\r",
+ "2 31 26\r",
+ "2 31 27\r",
+ "2 31 28\r",
+ "2 31 29\r",
+ "2 31 30\r",
+ "2 31 31\r",
+ "2 31 32\r",
+ "2 31 33\r",
+ "2 31 34\r",
+ "2 31 35\r",
+ "2 31 36\r",
+ "2 31 37\r",
+ "2 31 38\r",
+ "2 31 39\r",
+ "2 31 40\r",
+ "2 31 41\r",
+ "2 31 42\r",
+ "2 31 43\r",
+ "2 31 44\r",
+ "2 31 45\r",
+ "2 31 46\r",
+ "2 31 47\r",
+ "2 31 48\r",
+ "2 31 49\r",
+ "2 31 50\r",
+ "2 31 51\r",
+ "2 31 52\r",
+ "2 31 53\r",
+ "2 31 54\r",
+ "2 31 55\r",
+ "2 31 56\r",
+ "2 31 57\r",
+ "2 31 58\r",
+ "2 32 1\r",
+ "2 32 2\r",
+ "2 32 3\r",
+ "2 32 4\r",
+ "2 32 5\r",
+ "2 32 6\r",
+ "2 32 7\r",
+ "2 32 8\r",
+ "2 32 9\r",
+ "2 32 10\r",
+ "2 32 11\r",
+ "2 32 12\r",
+ "2 32 13\r",
+ "2 32 14\r",
+ "2 32 15\r",
+ "2 32 16\r",
+ "2 32 17\r",
+ "2 32 18\r",
+ "2 32 19\r",
+ "2 32 20\r",
+ "2 32 21\r",
+ "2 32 22\r",
+ "2 32 23\r",
+ "2 32 24\r",
+ "2 32 25\r",
+ "2 32 26\r",
+ "2 32 27\r",
+ "2 32 28\r",
+ "2 32 29\r",
+ "2 32 30\r",
+ "2 32 31\r",
+ "2 32 32\r",
+ "2 32 33\r",
+ "2 32 34\r",
+ "2 32 35\r",
+ "2 32 36\r",
+ "2 32 37\r",
+ "2 32 38\r",
+ "2 32 39\r",
+ "2 32 40\r",
+ "2 32 41\r",
+ "2 32 42\r",
+ "2 32 43\r",
+ "2 32 44\r",
+ "2 32 45\r",
+ "2 32 46\r",
+ "2 32 47\r",
+ "2 32 48\r",
+ "2 32 49\r",
+ "2 32 50\r",
+ "2 32 51\r",
+ "2 32 52\r",
+ "2 32 53\r",
+ "2 32 54\r",
+ "2 32 55\r",
+ "2 32 56\r",
+ "2 32 57\r",
+ "2 32 58\r",
+ "2 33 1\r",
+ "2 33 2\r",
+ "2 33 3\r",
+ "2 33 4\r",
+ "2 33 5\r",
+ "2 33 6\r",
+ "2 33 7\r",
+ "2 33 8\r",
+ "2 33 9\r",
+ "2 33 10\r",
+ "2 33 11\r",
+ "2 33 12\r",
+ "2 33 13\r",
+ "2 33 14\r",
+ "2 33 15\r",
+ "2 33 16\r",
+ "2 33 17\r",
+ "2 33 18\r",
+ "2 33 19\r",
+ "2 33 20\r",
+ "2 33 21\r",
+ "2 33 22\r",
+ "2 33 23\r",
+ "2 33 24\r",
+ "2 33 25\r",
+ "2 33 26\r",
+ "2 33 27\r",
+ "2 33 28\r",
+ "2 33 29\r",
+ "2 33 30\r",
+ "2 33 31\r",
+ "2 33 32\r",
+ "2 33 33\r",
+ "2 33 34\r",
+ "2 33 35\r",
+ "2 33 36\r",
+ "2 33 37\r",
+ "2 33 38\r",
+ "2 33 39\r",
+ "2 33 40\r",
+ "2 33 41\r",
+ "2 33 42\r",
+ "2 33 43\r",
+ "2 33 44\r",
+ "2 33 45\r",
+ "2 33 46\r",
+ "2 33 47\r",
+ "2 33 48\r",
+ "2 33 49\r",
+ "2 33 50\r",
+ "2 33 51\r",
+ "2 33 52\r",
+ "2 33 53\r",
+ "2 33 54\r",
+ "2 33 55\r",
+ "2 33 56\r",
+ "2 33 57\r",
+ "2 33 58\r",
+ "2 34 1\r",
+ "2 34 2\r",
+ "2 34 3\r",
+ "2 34 4\r",
+ "2 34 5\r",
+ "2 34 6\r",
+ "2 34 7\r",
+ "2 34 8\r",
+ "2 34 9\r",
+ "2 34 10\r",
+ "2 34 11\r",
+ "2 34 12\r",
+ "2 34 13\r",
+ "2 34 14\r",
+ "2 34 15\r",
+ "2 34 16\r",
+ "2 34 17\r",
+ "2 34 18\r",
+ "2 34 19\r",
+ "2 34 20\r",
+ "2 34 21\r",
+ "2 34 22\r",
+ "2 34 23\r",
+ "2 34 24\r",
+ "2 34 25\r",
+ "2 34 26\r",
+ "2 34 27\r",
+ "2 34 28\r",
+ "2 34 29\r",
+ "2 34 30\r",
+ "2 34 31\r",
+ "2 34 32\r",
+ "2 34 33\r",
+ "2 34 34\r",
+ "2 34 35\r",
+ "2 34 36\r",
+ "2 34 37\r",
+ "2 34 38\r",
+ "2 34 39\r",
+ "2 34 40\r",
+ "2 34 41\r",
+ "2 34 42\r",
+ "2 34 43\r",
+ "2 34 44\r",
+ "2 34 45\r",
+ "2 34 46\r",
+ "2 34 47\r",
+ "2 34 48\r",
+ "2 34 49\r",
+ "2 34 50\r",
+ "2 34 51\r",
+ "2 34 52\r",
+ "2 34 53\r",
+ "2 34 54"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\r",
+ "2 34 55\r",
+ "2 34 56\r",
+ "2 34 57\r",
+ "2 34 58\r",
+ "2 35 1\r",
+ "2 35 2\r",
+ "2 35 3\r",
+ "2 35 4\r",
+ "2 35 5\r",
+ "2 35 6\r",
+ "2 35 7\r",
+ "2 35 8\r",
+ "2 35 9\r",
+ "2 35 10\r",
+ "2 35 11\r",
+ "2 35 12\r",
+ "2 35 13\r",
+ "2 35 14\r",
+ "2 35 15\r",
+ "2 35 16\r",
+ "2 35 17\r",
+ "2 35 18\r",
+ "2 35 19\r",
+ "2 35 20\r",
+ "2 35 21\r",
+ "2 35 22\r",
+ "2 35 23\r",
+ "2 35 24\r",
+ "2 35 25\r",
+ "2 35 26\r",
+ "2 35 27\r",
+ "2 35 28\r",
+ "2 35 29\r",
+ "2 35 30\r",
+ "2 35 31\r",
+ "2 35 32\r",
+ "2 35 33\r",
+ "2 35 34\r",
+ "2 35 35\r",
+ "2 35 36\r",
+ "2 35 37\r",
+ "2 35 38\r",
+ "2 35 39\r",
+ "2 35 40\r",
+ "2 35 41\r",
+ "2 35 42\r",
+ "2 35 43\r",
+ "2 35 44\r",
+ "2 35 45\r",
+ "2 35 46\r",
+ "2 35 47\r",
+ "2 35 48\r",
+ "2 35 49\r",
+ "2 35 50\r",
+ "2 35 51\r",
+ "2 35 52\r",
+ "2 35 53\r",
+ "2 35 54\r",
+ "2 35 55\r",
+ "2 35 56\r",
+ "2 35 57\r",
+ "2 35 58\r",
+ "2 36 1\r",
+ "2 36 2\r",
+ "2 36 3\r",
+ "2 36 4\r",
+ "2 36 5\r",
+ "2 36 6\r",
+ "2 36 7\r",
+ "2 36 8\r",
+ "2 36 9\r",
+ "2 36 10\r",
+ "2 36 11\r",
+ "2 36 12\r",
+ "2 36 13\r",
+ "2 36 14\r",
+ "2 36 15\r",
+ "2 36 16\r",
+ "2 36 17\r",
+ "2 36 18\r",
+ "2 36 19\r",
+ "2 36 20\r",
+ "2 36 21\r",
+ "2 36 22\r",
+ "2 36 23\r",
+ "2 36 24\r",
+ "2 36 25\r",
+ "2 36 26\r",
+ "2 36 27\r",
+ "2 36 28\r",
+ "2 36 29\r",
+ "2 36 30\r",
+ "2 36 31\r",
+ "2 36 32\r",
+ "2 36 33\r",
+ "2 36 34\r",
+ "2 36 35\r",
+ "2 36 36\r",
+ "2 36 37\r",
+ "2 36 38\r",
+ "2 36 39\r",
+ "2 36 40\r",
+ "2 36 41\r",
+ "2 36 42\r",
+ "2 36 43\r",
+ "2 36 44\r",
+ "2 36 45\r",
+ "2 36 46\r",
+ "2 36 47\r",
+ "2 36 48\r",
+ "2 36 49\r",
+ "2 36 50\r",
+ "2 36 51\r",
+ "2 36 52\r",
+ "2 36 53\r",
+ "2 36 54\r",
+ "2 36 55\r",
+ "2 36 56\r",
+ "2 36 57\r",
+ "2 36 58\r",
+ "2 37 1\r",
+ "2 37 2\r",
+ "2 37 3\r",
+ "2 37 4\r",
+ "2 37 5\r",
+ "2 37 6\r",
+ "2 37 7\r",
+ "2 37 8\r",
+ "2 37 9\r",
+ "2 37 10\r",
+ "2 37 11\r",
+ "2 37 12\r",
+ "2 37 13\r",
+ "2 37 14\r",
+ "2 37 15\r",
+ "2 37 16\r",
+ "2 37 17\r",
+ "2 37 18\r",
+ "2 37 19\r",
+ "2 37 20\r",
+ "2 37 21\r",
+ "2 37 22\r",
+ "2 37 23\r",
+ "2 37 24\r",
+ "2 37 25\r",
+ "2 37 26\r",
+ "2 37 27\r",
+ "2 37 28\r",
+ "2 37 29\r",
+ "2 37 30\r",
+ "2 37 31\r",
+ "2 37 32\r",
+ "2 37 33\r",
+ "2 37 34\r",
+ "2 37 35\r",
+ "2 37 36\r",
+ "2 37 37\r",
+ "2 37 38\r",
+ "2 37 39\r",
+ "2 37 40\r",
+ "2 37 41\r",
+ "2 37 42\r",
+ "2 37 43\r",
+ "2 37 44\r",
+ "2 37 45\r",
+ "2 37 46\r",
+ "2 37 47\r",
+ "2 37 48\r",
+ "2 37 49\r",
+ "2 37 50\r",
+ "2 37 51\r",
+ "2 37 52\r",
+ "2 37 53\r",
+ "2 37 54\r",
+ "2 37 55\r",
+ "2 37 56\r",
+ "2 37 57\r",
+ "2 37 58\r",
+ "2 38 1\r",
+ "2 38 2\r",
+ "2 38 3\r",
+ "2 38 4\r",
+ "2 38 5\r",
+ "2 38 6\r",
+ "2 38 7\r",
+ "2 38 8\r",
+ "2 38 9\r",
+ "2 38 10\r",
+ "2 38 11\r",
+ "2 38 12\r",
+ "2 38 13\r",
+ "2 38 14\r",
+ "2 38 15\r",
+ "2 38 16\r",
+ "2 38 17\r",
+ "2 38 18\r",
+ "2 38 19\r",
+ "2 38 20\r",
+ "2 38 21\r",
+ "2 38 22\r",
+ "2 38 23\r",
+ "2 38 24\r",
+ "2 38 25\r",
+ "2 38 26\r",
+ "2 38 27\r",
+ "2 38 28\r",
+ "2 38 29\r",
+ "2 38 30\r",
+ "2 38 31\r",
+ "2 38 32\r",
+ "2 38 33\r",
+ "2 38 34\r",
+ "2 38 35\r",
+ "2 38 36\r",
+ "2 38 37\r",
+ "2 38 38\r",
+ "2 38 39\r",
+ "2 38 40\r",
+ "2 38 41\r",
+ "2 38 42\r",
+ "2 38 43\r",
+ "2 38 44\r",
+ "2 38 45\r",
+ "2 38 46\r",
+ "2 38 47\r",
+ "2 38 48\r",
+ "2 38 49\r",
+ "2 38 50\r",
+ "2 38 51\r",
+ "2 38 52\r",
+ "2 38 53\r",
+ "2 38 54\r",
+ "2 38 55\r",
+ "2 38 56\r",
+ "2 38 57\r",
+ "2 38 58\r",
+ "2 39 1\r",
+ "2 39 2\r",
+ "2 39 3\r",
+ "2 39 4\r",
+ "2 39 5\r",
+ "2 39 6\r",
+ "2 39 7\r",
+ "2 39 8\r",
+ "2 39 9\r",
+ "2 39 10\r",
+ "2 39 11\r",
+ "2 39 12\r",
+ "2 39 13\r",
+ "2 39 14\r",
+ "2 39 15\r",
+ "2 39 16\r",
+ "2 39 17\r",
+ "2 39 18\r",
+ "2 39 19\r",
+ "2 39 20\r",
+ "2 39 21\r",
+ "2 39 22\r",
+ "2 39 23\r",
+ "2 39 24\r",
+ "2 39 25\r",
+ "2 39 26\r",
+ "2 39 27\r",
+ "2 39 28\r",
+ "2 39 29\r",
+ "2 39 30\r",
+ "2 39 31\r",
+ "2 39 32\r",
+ "2 39 33\r",
+ "2 39 34\r",
+ "2 39 35\r",
+ "2 39 36\r",
+ "2 39 37\r",
+ "2 39 38\r",
+ "2 39 39\r",
+ "2 39 40\r",
+ "2 39 41\r",
+ "2 39 42\r",
+ "2 39 43\r",
+ "2 39 44\r",
+ "2 39 45\r",
+ "2 39 46\r",
+ "2 39 47\r",
+ "2 39 48\r",
+ "2 39 49\r",
+ "2 39 50\r",
+ "2 39 51\r",
+ "2 39 52\r",
+ "2 39 53\r",
+ "2 39 54\r",
+ "2 39 55\r",
+ "2 39 56\r",
+ "2 39 57\r",
+ "2 39 58\r",
+ "2 40 1\r",
+ "2 40 2\r",
+ "2 40 3\r",
+ "2 40 4\r",
+ "2 40 5\r",
+ "2 40 6\r",
+ "2 40 7\r",
+ "2 40 8\r",
+ "2 40 9\r",
+ "2 40 10\r",
+ "2 40 11\r",
+ "2 40 12\r",
+ "2 40 13\r",
+ "2 40 14\r",
+ "2 40 15\r",
+ "2 40 16\r",
+ "2 40 17\r",
+ "2 40 18\r",
+ "2 40 19\r",
+ "2 40 20\r",
+ "2 40 21\r",
+ "2 40 22\r",
+ "2 40 23\r",
+ "2 40 24\r",
+ "2 40 25\r",
+ "2 40 26\r",
+ "2 40 27\r",
+ "2 40 28\r",
+ "2 40 29\r",
+ "2 40 30\r",
+ "2 40 31\r",
+ "2 40 32\r",
+ "2 40 33\r",
+ "2 40 34\r",
+ "2 40 35\r",
+ "2 40 36\r",
+ "2 40 37\r",
+ "2 40 38\r",
+ "2 40 39\r",
+ "2 40 40\r",
+ "2 40 41\r",
+ "2 40 42\r",
+ "2 40 43\r",
+ "2 40 44\r",
+ "2 40 45\r",
+ "2 40 46\r",
+ "2 40 47\r",
+ "2 40 48\r",
+ "2 40 49\r",
+ "2 40 50\r",
+ "2 40 51\r",
+ "2 40 52\r",
+ "2 40 53\r",
+ "2 40 54\r",
+ "2 40 55\r",
+ "2 40 56\r",
+ "2 40 57\r",
+ "2 40 58\r",
+ "2 41 1\r",
+ "2 41 2\r",
+ "2 41 3\r",
+ "2 41 4\r",
+ "2 41 5\r",
+ "2 41 6\r",
+ "2 41 7\r",
+ "2 41 8\r",
+ "2 41 9\r",
+ "2 41 10\r",
+ "2 41 11\r",
+ "2 41 12\r",
+ "2 41 13\r",
+ "2 41 14\r",
+ "2 41 15\r",
+ "2 41 16\r",
+ "2 41 17\r",
+ "2 41 18\r",
+ "2 41 19\r",
+ "2 41 20\r",
+ "2 41 21\r",
+ "2 41 22\r",
+ "2 41 23\r",
+ "2 41 24\r",
+ "2 41 25\r",
+ "2 41 26\r",
+ "2 41 27\r",
+ "2 41 28\r",
+ "2 41 29\r",
+ "2 41 30\r",
+ "2 41 31\r",
+ "2 41 32\r",
+ "2 41 33\r",
+ "2 41 34\r",
+ "2 41 35\r",
+ "2 41 36\r",
+ "2 41 37\r",
+ "2 41 38\r",
+ "2 41 39\r",
+ "2 41 40\r",
+ "2 41 41\r",
+ "2 41 42\r",
+ "2 41 43\r",
+ "2 41 44\r",
+ "2 41 45\r",
+ "2 41 46\r",
+ "2 41 47\r",
+ "2 41 48\r",
+ "2 41 49\r",
+ "2 41 50\r",
+ "2 41 51\r",
+ "2 41 52\r",
+ "2 41 53\r",
+ "2 41 54\r",
+ "2 41 55\r",
+ "2 41 56\r",
+ "2 41 57\r",
+ "2 41 58\r",
+ "2 42 1\r",
+ "2 42 2\r",
+ "2 42 3\r",
+ "2 42 4\r",
+ "2 42 5\r",
+ "2 42 6\r",
+ "2 42 7\r",
+ "2 42 8\r",
+ "2 42 9\r",
+ "2 42 10\r",
+ "2 42 11\r",
+ "2 42 12\r",
+ "2 42 13\r",
+ "2 42 14\r",
+ "2 42 15\r",
+ "2 42 16\r",
+ "2 42 17\r",
+ "2 42 18\r",
+ "2 42 19\r",
+ "2 42 20\r",
+ "2 42 21\r",
+ "2 42 22\r",
+ "2 42 23\r",
+ "2 42 24\r",
+ "2 42 25\r",
+ "2 42 26\r",
+ "2 42 27\r",
+ "2 42 28\r",
+ "2 42 29\r",
+ "2 42 30\r",
+ "2 42 31\r",
+ "2 42 32\r",
+ "2 42 33\r",
+ "2 42 34\r",
+ "2 42 35\r",
+ "2 42 36\r",
+ "2 42 37\r",
+ "2 42 38\r",
+ "2 42 39\r",
+ "2 42 40\r",
+ "2 42 41\r",
+ "2 42 42\r",
+ "2 42 43\r",
+ "2 42 44\r",
+ "2 42 45\r",
+ "2 42 46\r",
+ "2 42 47\r",
+ "2 42 48\r",
+ "2 42 49\r",
+ "2 42 50\r",
+ "2 42 51\r",
+ "2 42 52\r",
+ "2 42 53\r",
+ "2 42 54\r",
+ "2 42 55\r",
+ "2 42 56\r",
+ "2 42 57\r",
+ "2 42 58\r",
+ "2 43 1\r",
+ "2 43 2\r",
+ "2 43 3\r",
+ "2 43 4\r",
+ "2 43 5\r",
+ "2 43 6\r",
+ "2 43 7\r",
+ "2 43 8\r",
+ "2 43 9\r",
+ "2 43 10\r",
+ "2 43 11\r",
+ "2 43 12\r",
+ "2 43 13\r",
+ "2 43 14\r",
+ "2 43 15\r",
+ "2 43 16\r",
+ "2 43 17\r",
+ "2 43 18\r",
+ "2 43 19\r",
+ "2 43 20\r",
+ "2 43 21\r",
+ "2 43 22\r",
+ "2 43 23\r",
+ "2 43 24\r",
+ "2 43 25\r",
+ "2 43 26\r",
+ "2 43 27\r",
+ "2 43 28\r",
+ "2 43 29\r",
+ "2 43 30\r",
+ "2 43 31\r",
+ "2 43 32\r",
+ "2 43 33\r",
+ "2 43 34\r",
+ "2 43 35\r",
+ "2 43 36\r",
+ "2 43 37\r",
+ "2 43 38\r",
+ "2 43 39\r",
+ "2 43 40\r",
+ "2 43 41\r",
+ "2 43 42\r",
+ "2 43 43\r",
+ "2 43 44\r",
+ "2 43 45\r",
+ "2 43 46\r",
+ "2 43 47\r",
+ "2 43 48\r",
+ "2 43 49\r",
+ "2 43 50\r",
+ "2 43 51\r",
+ "2 43 52\r",
+ "2 43 53\r",
+ "2 43 54\r",
+ "2 43 55\r",
+ "2 43 56\r",
+ "2 43 57\r",
+ "2 43 58\r",
+ "2 44 1\r",
+ "2 44 2\r",
+ "2 44 3\r",
+ "2 44 4\r",
+ "2 44 5\r",
+ "2 44 6\r",
+ "2 44 7\r",
+ "2 44 8\r",
+ "2 44 9\r",
+ "2 44 10\r",
+ "2 44 11\r",
+ "2 44 12\r",
+ "2 44 13\r",
+ "2 44 14\r",
+ "2 44 15\r",
+ "2 44 16\r",
+ "2 44 17\r",
+ "2 44 18\r",
+ "2 44 19\r",
+ "2 44 20\r",
+ "2 44 21\r",
+ "2 44 22\r",
+ "2 44 23\r",
+ "2 44 24\r",
+ "2 44 25\r",
+ "2 44 26\r",
+ "2 44 27\r",
+ "2 44 28\r",
+ "2 44 29\r",
+ "2 44 30\r",
+ "2 44 31\r",
+ "2 44 32\r",
+ "2 44 33\r",
+ "2 44 34\r",
+ "2 44 35\r",
+ "2 44 36\r",
+ "2 44 37\r",
+ "2 44 38\r",
+ "2 44 39\r",
+ "2 44 40\r",
+ "2 44 41\r",
+ "2 44 42\r",
+ "2 44 43\r",
+ "2 44 44\r",
+ "2 44 45\r",
+ "2 44 46\r",
+ "2 44 47\r",
+ "2 44 48\r",
+ "2 44 49\r",
+ "2 44 50\r",
+ "2 44 51\r",
+ "2 44 52\r",
+ "2 44 53\r",
+ "2 44 54\r",
+ "2 44 55\r",
+ "2 44 56\r",
+ "2 44 57\r",
+ "2 44 58\r",
+ "2 45 1\r",
+ "2 45 2\r",
+ "2 45 3\r",
+ "2 45 4\r",
+ "2 45 5\r",
+ "2 45 6\r",
+ "2 45 7\r",
+ "2 45 8\r",
+ "2 45 9\r",
+ "2 45 10\r",
+ "2 45 11\r",
+ "2 45 12\r",
+ "2 45 13\r",
+ "2 45 14\r",
+ "2 45 15\r",
+ "2 45 16\r",
+ "2 45 17\r",
+ "2 45 18\r",
+ "2 45 19\r",
+ "2 45 20\r",
+ "2 45 21\r",
+ "2 45 22\r",
+ "2 45 23\r",
+ "2 45 24\r",
+ "2 45 25\r",
+ "2 45 26\r",
+ "2 45 27\r",
+ "2 45 28\r",
+ "2 45 29\r",
+ "2 45 30\r",
+ "2 45 31\r",
+ "2 45 32\r",
+ "2 45 33\r",
+ "2 45 34\r",
+ "2 45 35\r",
+ "2 45 36\r",
+ "2 45 37\r",
+ "2 45 38\r",
+ "2 45 39\r",
+ "2 45 40\r",
+ "2 45 41\r",
+ "2 45 42\r",
+ "2 45 43\r",
+ "2 45 44\r",
+ "2 45 45\r",
+ "2 45 46\r",
+ "2 45 47\r",
+ "2 45 48\r",
+ "2 45 49\r",
+ "2 45 50\r",
+ "2 45 51\r",
+ "2 45 52\r",
+ "2 45 53\r",
+ "2 45 54\r",
+ "2 45 55\r",
+ "2 45 56\r",
+ "2 45 57\r",
+ "2 45 58\r",
+ "2 46 1\r",
+ "2 46 2\r",
+ "2 46 3\r",
+ "2 46 4\r",
+ "2 46 5\r",
+ "2 46 6\r",
+ "2 46 7\r",
+ "2 46 8\r",
+ "2 46 9\r",
+ "2 46 10\r",
+ "2 46 11\r",
+ "2 46 12\r",
+ "2 46 13\r",
+ "2 46 14\r",
+ "2 46 15\r",
+ "2 46 16\r",
+ "2 46 17\r",
+ "2 46 18\r",
+ "2 46 19\r",
+ "2 46 20\r",
+ "2 46 21\r",
+ "2 46 22\r",
+ "2 46 23\r",
+ "2 46 24\r",
+ "2 46 25\r",
+ "2 46 26\r",
+ "2 46 27\r",
+ "2 46 28\r",
+ "2 46 29\r",
+ "2 46 30\r",
+ "2 46 31\r",
+ "2 46 32\r",
+ "2 46 33\r",
+ "2 46 34\r",
+ "2 46 35\r",
+ "2 46 36\r",
+ "2 46 37\r",
+ "2 46 38\r",
+ "2 46 39\r",
+ "2 46 40\r",
+ "2 46 41\r",
+ "2 46 42\r",
+ "2 46 43\r",
+ "2 46 44\r",
+ "2 46 45\r",
+ "2 46 46\r",
+ "2 46 47\r",
+ "2 46 48\r",
+ "2 46 49\r",
+ "2 46 50\r",
+ "2 46 51\r",
+ "2 46 52\r",
+ "2 46 53\r",
+ "2 46 54\r",
+ "2 46 55\r",
+ "2 46 56\r",
+ "2 46 57\r",
+ "2 46 58\r",
+ "2 47 1\r",
+ "2 47 2\r",
+ "2 47 3\r",
+ "2 47 4\r",
+ "2 47 5\r",
+ "2 47 6\r",
+ "2 47 7\r",
+ "2 47 8\r",
+ "2 47 9\r",
+ "2 47 10\r",
+ "2 47 11\r",
+ "2 47 12\r",
+ "2 47 13\r",
+ "2 47 14\r",
+ "2 47 15\r",
+ "2 47 16\r",
+ "2 47 17\r",
+ "2 47 18\r",
+ "2 47 19\r",
+ "2 47 20\r",
+ "2 47 21\r",
+ "2 47 22\r",
+ "2 47 23\r",
+ "2 47 24\r",
+ "2 47 25\r",
+ "2 47 26\r",
+ "2 47 27\r",
+ "2 47 28\r",
+ "2 47 29\r",
+ "2 47 30\r",
+ "2 47 31\r",
+ "2 47 32\r",
+ "2 47 33\r",
+ "2 47 34\r",
+ "2 47 35\r",
+ "2 47 36\r",
+ "2 47 37\r",
+ "2 47 38\r",
+ "2 47 39\r",
+ "2 47 40\r",
+ "2 47 41\r",
+ "2 47 42\r",
+ "2 47 43\r",
+ "2 47 44\r",
+ "2 47 45\r",
+ "2 47 46\r",
+ "2 47 47\r",
+ "2 47 48\r",
+ "2 47 49\r",
+ "2 47 50\r",
+ "2 47 51\r",
+ "2 47 52\r",
+ "2 47 53\r",
+ "2 47 54\r",
+ "2 47 55\r",
+ "2 47 56\r",
+ "2 47 57\r",
+ "2 47 58\r",
+ "2 48 1\r",
+ "2 48 2\r",
+ "2 48 3\r",
+ "2 48 4\r",
+ "2 48 5\r",
+ "2 48 6\r",
+ "2 48 7\r",
+ "2 48 8\r",
+ "2 48 9\r",
+ "2 48 10\r",
+ "2 48 11\r",
+ "2 48 12\r",
+ "2 48 13\r",
+ "2 48 14\r",
+ "2 48 15\r",
+ "2 48 16\r",
+ "2 48 17\r",
+ "2 48 18\r",
+ "2 48 19\r",
+ "2 48 20\r",
+ "2 48 21\r",
+ "2 48 22\r",
+ "2 48 23\r",
+ "2 48 24\r",
+ "2 48 25\r",
+ "2 48 26\r",
+ "2 48 27\r",
+ "2 48 28\r",
+ "2 48 29\r",
+ "2 48 30\r",
+ "2 48 31\r",
+ "2 48 32\r",
+ "2 48 33\r",
+ "2 48 34\r",
+ "2 48 35\r",
+ "2 48 36\r",
+ "2 48 37\r",
+ "2 48 38\r",
+ "2 48 39\r",
+ "2 48 40\r",
+ "2 48 41\r",
+ "2 48 42\r",
+ "2 48 43\r",
+ "2 48 44\r",
+ "2 48 45\r",
+ "2 48 46\r",
+ "2 48 47\r",
+ "2 48 48\r",
+ "2 48 49\r",
+ "2 48 50\r",
+ "2 48 51\r",
+ "2 48 52\r",
+ "2 48 53\r",
+ "2 48 54\r",
+ "2 48 55\r",
+ "2 48 56\r",
+ "2 48 57\r",
+ "2 48 58\r",
+ "2 49 1\r",
+ "2 49 2\r",
+ "2 49 3\r",
+ "2 49 4\r",
+ "2 49 5\r",
+ "2 49 6\r",
+ "2 49 7\r",
+ "2 49 8\r",
+ "2 49 9\r",
+ "2 49 10\r",
+ "2 49 11\r",
+ "2 49 12\r",
+ "2 49 13\r",
+ "2 49 14\r",
+ "2 49 15\r",
+ "2 49 16\r",
+ "2 49 17\r",
+ "2 49 18\r",
+ "2 49 19\r",
+ "2 49 20\r",
+ "2 49 21\r",
+ "2 49 22\r",
+ "2 49 23\r",
+ "2 49 24\r",
+ "2 49 25\r",
+ "2 49 26\r",
+ "2 49 27\r",
+ "2 49 28\r",
+ "2 49 29\r",
+ "2 49 30\r",
+ "2 49 31\r",
+ "2 49 32\r",
+ "2 49 33\r",
+ "2 49 34\r",
+ "2 49 35\r",
+ "2 49 36\r",
+ "2 49 37\r",
+ "2 49 38\r",
+ "2 49 39\r",
+ "2 49 40\r",
+ "2 49 41\r",
+ "2 49 42\r",
+ "2 49 43\r",
+ "2 49 44\r",
+ "2 49 45\r",
+ "2 49 46\r",
+ "2 49 47\r",
+ "2 49 48\r",
+ "2 49 49\r",
+ "2 49 50\r",
+ "2 49 51\r",
+ "2 49 52\r",
+ "2 49 53\r",
+ "2 49 54\r",
+ "2 49 55\r",
+ "2 49 56\r",
+ "2 49 57\r",
+ "2 49 58\r",
+ "2 50 1\r",
+ "2 50 2\r",
+ "2 50 3\r",
+ "2 50 4\r",
+ "2 50 5\r",
+ "2 50 6\r",
+ "2 50 7\r",
+ "2 50 8\r",
+ "2 50 9\r",
+ "2 50 10\r",
+ "2 50 11\r",
+ "2 50 12\r",
+ "2 50 13\r",
+ "2 50 14\r",
+ "2 50 15\r",
+ "2 50 16\r",
+ "2 50 17\r",
+ "2 50 18\r",
+ "2 50 19\r",
+ "2 50 20\r",
+ "2 50 21\r",
+ "2 50 22\r",
+ "2 50 23\r",
+ "2 50 24\r",
+ "2 50 25\r",
+ "2 50 26\r",
+ "2 50 27\r",
+ "2 50 28\r",
+ "2 50 29\r",
+ "2 50 30\r",
+ "2 50 31\r",
+ "2 50 32\r",
+ "2 50 33\r",
+ "2 50 34\r",
+ "2 50 35\r",
+ "2 50 36\r",
+ "2 50 37\r",
+ "2 50 38\r",
+ "2 50 39\r",
+ "2 50 40\r",
+ "2 50 41\r",
+ "2 50 42\r",
+ "2 50 43\r",
+ "2 50 44\r",
+ "2 50 45\r",
+ "2 50 46\r",
+ "2 50 47\r",
+ "2 50 48\r",
+ "2 50 49\r",
+ "2 50 50\r",
+ "2 50 51\r",
+ "2 50 52\r",
+ "2 50 53\r",
+ "2 50 54\r",
+ "2 50 55\r",
+ "2 50 56\r",
+ "2 50 57\r",
+ "2 50 58\r",
+ "2 51 1\r",
+ "2 51 2\r",
+ "2 51 3\r",
+ "2 51 4\r",
+ "2 51 5\r",
+ "2 51 6\r",
+ "2 51 7\r",
+ "2 51 8\r",
+ "2 51 9\r",
+ "2 51 10\r",
+ "2 51 11\r",
+ "2 51 12\r",
+ "2 51 13\r",
+ "2 51 14\r",
+ "2 51 15\r",
+ "2 51 16\r",
+ "2 51 17\r",
+ "2 51 18\r",
+ "2 51 19\r",
+ "2 51 20\r",
+ "2 51 21\r",
+ "2 51 22\r",
+ "2 51 23\r",
+ "2 51 24\r",
+ "2 51 25\r",
+ "2 51 26\r",
+ "2 51 27\r",
+ "2 51 28\r",
+ "2 51 29\r",
+ "2 51 30\r",
+ "2 51 31\r",
+ "2 51 32\r",
+ "2 51 33\r",
+ "2 51 34\r",
+ "2 51 35\r",
+ "2 51 36\r",
+ "2 51 37\r",
+ "2 51 38\r",
+ "2 51 39\r",
+ "2 51 40\r",
+ "2 51 41\r",
+ "2 51 42\r",
+ "2 51 43\r",
+ "2 51 44\r",
+ "2 51 45\r",
+ "2 51 46\r",
+ "2 51 47\r",
+ "2 51 48\r",
+ "2 51 49\r",
+ "2 51 50\r",
+ "2 51 51\r",
+ "2 51 52\r",
+ "2 51 53\r",
+ "2 51 54\r",
+ "2 51 55\r",
+ "2 51 56\r",
+ "2 51 57\r",
+ "2 51 58\r",
+ "2 52 1\r",
+ "2 52 2\r",
+ "2 52 3\r",
+ "2 52 4\r",
+ "2 52 5\r",
+ "2 52 6\r",
+ "2 52 7\r",
+ "2 52 8\r",
+ "2 52 9\r",
+ "2 52 10\r",
+ "2 52 11\r",
+ "2 52 12\r",
+ "2 52 13\r",
+ "2 52 14\r",
+ "2 52 15\r",
+ "2 52 16\r",
+ "2 52 17\r",
+ "2 52 18\r",
+ "2 52 19\r",
+ "2 52 20\r",
+ "2 52 21\r",
+ "2 52 22\r",
+ "2 52 23\r",
+ "2 52 24\r",
+ "2 52 25\r",
+ "2 52 26\r",
+ "2 52 27\r",
+ "2 52 28\r",
+ "2 52 29\r",
+ "2 52 30\r",
+ "2 52 31\r",
+ "2 52 32\r",
+ "2 52 33\r",
+ "2 52 34\r",
+ "2 52 35\r",
+ "2 52 36\r",
+ "2 52 37\r",
+ "2 52 38\r",
+ "2 52 39\r",
+ "2 52 40\r",
+ "2 52 41\r",
+ "2 52 42\r",
+ "2 52 43\r",
+ "2 52 44\r",
+ "2 52 45\r",
+ "2 52 46\r",
+ "2 52 47\r",
+ "2 52 48\r",
+ "2 52 49\r",
+ "2 52 50\r",
+ "2 52 51\r",
+ "2 52 52\r",
+ "2 52 53\r",
+ "2 52 54\r",
+ "2 52 55\r",
+ "2 52 56\r",
+ "2 52 57\r",
+ "2 52 58\r",
+ "2 53 1\r",
+ "2 53 2\r",
+ "2 53 3\r",
+ "2 53 4\r",
+ "2 53 5\r",
+ "2 53 6\r",
+ "2 53 7\r",
+ "2 53 8\r",
+ "2 53 9\r",
+ "2 53 10\r",
+ "2 53 11\r",
+ "2 53 12\r",
+ "2 53 13\r",
+ "2 53 14\r",
+ "2 53 15\r",
+ "2 53 16\r",
+ "2 53 17\r",
+ "2 53 18\r",
+ "2 53 19\r",
+ "2 53 20\r",
+ "2 53 21\r",
+ "2 53 22\r",
+ "2 53 23\r",
+ "2 53 24\r",
+ "2 53 25\r",
+ "2 53 26\r",
+ "2 53 27\r",
+ "2 53 28\r",
+ "2 53 29\r",
+ "2 53 30\r",
+ "2 53 31\r",
+ "2 53 32\r",
+ "2 53 33\r",
+ "2 53 34\r",
+ "2 53 35\r",
+ "2 53 36\r",
+ "2 53 37\r",
+ "2 53 38\r",
+ "2 53 39\r",
+ "2 53 40\r",
+ "2 53 41\r",
+ "2 53 42\r",
+ "2 53 43\r",
+ "2 53 44\r",
+ "2 53 45\r",
+ "2 53 46\r",
+ "2 53 47\r",
+ "2 53 48\r",
+ "2 53 49\r",
+ "2 53 50\r",
+ "2 53 51\r",
+ "2 53 52\r",
+ "2 53 53\r",
+ "2 53 54\r",
+ "2 53 55\r",
+ "2 53 56\r",
+ "2 53 57\r",
+ "2 53 58\r",
+ "2 54 1\r",
+ "2 54 2\r",
+ "2 54 3\r",
+ "2 54 4\r",
+ "2 54 5\r",
+ "2 54 6\r",
+ "2 54 7\r",
+ "2 54 8\r",
+ "2 54 9\r",
+ "2 54 10\r",
+ "2 54 11\r",
+ "2 54 12\r",
+ "2 54 13\r",
+ "2 54 14\r",
+ "2 54 15\r",
+ "2 54 16\r",
+ "2 54 17\r",
+ "2 54 18\r",
+ "2 54 19\r",
+ "2 54 20\r",
+ "2 54 21\r",
+ "2 54 22\r",
+ "2 54 23\r",
+ "2 54 24\r",
+ "2 54 25\r",
+ "2 54 26\r",
+ "2 54 27\r",
+ "2 54 28\r",
+ "2 54 29\r",
+ "2 54 30\r",
+ "2 54 31\r",
+ "2 54 32\r",
+ "2 54 33\r",
+ "2 54 34\r",
+ "2 54 35\r",
+ "2 54 36\r",
+ "2 54 37\r",
+ "2 54 38\r",
+ "2 54 39\r",
+ "2 54 40\r",
+ "2 54 41\r",
+ "2 54 42\r",
+ "2 54 43\r",
+ "2 54 44\r",
+ "2 54 45\r",
+ "2 54 46\r",
+ "2 54 47\r",
+ "2 54 48\r",
+ "2 54 49\r",
+ "2 54 50\r",
+ "2 54 51\r",
+ "2 54 52\r",
+ "2 54 53\r",
+ "2 54 54\r",
+ "2 54 55\r",
+ "2 54 56\r",
+ "2 54 57\r",
+ "2 54 58\r",
+ "2 55 1\r",
+ "2 55 2\r",
+ "2 55 3\r",
+ "2 55 4\r",
+ "2 55 5\r",
+ "2 55 6\r",
+ "2 55 7\r",
+ "2 55 8\r",
+ "2 55 9\r",
+ "2 55 10\r",
+ "2 55 11\r",
+ "2 55 12\r",
+ "2 55 13\r",
+ "2 55 14\r",
+ "2 55 15\r",
+ "2 55 16\r",
+ "2 55 17\r",
+ "2 55 18\r",
+ "2 55 19\r",
+ "2 55 20\r",
+ "2 55 21\r",
+ "2 55 22\r",
+ "2 55 23\r",
+ "2 55 24\r",
+ "2 55 25\r",
+ "2 55 26\r",
+ "2 55 27\r",
+ "2 55 28\r",
+ "2 55 29\r",
+ "2 55 30\r",
+ "2 55 31\r",
+ "2 55 32\r",
+ "2 55 33\r",
+ "2 55 34\r",
+ "2 55 35\r",
+ "2 55 36\r",
+ "2 55 37\r",
+ "2 55 38\r",
+ "2 55 39\r",
+ "2 55 40\r",
+ "2 55 41\r",
+ "2 55 42\r",
+ "2 55 43\r",
+ "2 55 44\r",
+ "2 55 45\r",
+ "2 55 46\r",
+ "2 55 47\r",
+ "2 55 48\r",
+ "2 55 49\r",
+ "2 55 50\r",
+ "2 55 51\r",
+ "2 55 52\r",
+ "2 55 53\r",
+ "2 55 54\r",
+ "2 55 55\r",
+ "2 55 56\r",
+ "2 55 57\r",
+ "2 55 58\r",
+ "2 56 1\r",
+ "2 56 2\r",
+ "2 56 3\r",
+ "2 56 4\r",
+ "2 56 5\r",
+ "2 56 6\r",
+ "2 56 7\r",
+ "2 56 8\r",
+ "2 56 9\r",
+ "2 56 10\r",
+ "2 56 11\r",
+ "2 56 12\r",
+ "2 56 13\r",
+ "2 56 14\r",
+ "2 56 15\r",
+ "2 56 16\r",
+ "2 56 17\r",
+ "2 56 18\r",
+ "2 56 19\r",
+ "2 56 20\r",
+ "2 56 21\r",
+ "2 56 22\r",
+ "2 56 23\r",
+ "2 56 24\r",
+ "2 56 25\r",
+ "2 56 26\r",
+ "2 56 27\r",
+ "2 56 28\r",
+ "2 56 29\r",
+ "2 56 30\r",
+ "2 56 31\r",
+ "2 56 32\r",
+ "2 56 33\r",
+ "2 56 34\r",
+ "2 56 35\r",
+ "2 56 36\r",
+ "2 56 37\r",
+ "2 56 38\r",
+ "2 56 39\r",
+ "2 56 40\r",
+ "2 56 41\r",
+ "2 56 42\r",
+ "2 56 43\r",
+ "2 56 44\r",
+ "2 56 45\r",
+ "2 56 46\r",
+ "2 56 47\r",
+ "2 56 48\r",
+ "2 56 49\r",
+ "2 56 50\r",
+ "2 56 51\r",
+ "2 56 52\r",
+ "2 56 53\r",
+ "2 56 54\r",
+ "2 56 55\r",
+ "2 56 56\r",
+ "2 56 57\r",
+ "2 56 58\r",
+ "2 57 1\r",
+ "2 57 2\r",
+ "2 57 3\r",
+ "2 57 4\r",
+ "2 57 5\r",
+ "2 57 6\r",
+ "2 57 7\r",
+ "2 57 8\r",
+ "2 57 9\r",
+ "2 57 10\r",
+ "2 57 11\r",
+ "2 57 12\r",
+ "2 57 13\r",
+ "2 57 14\r",
+ "2 57 15\r",
+ "2 57 16\r",
+ "2 57 17\r",
+ "2 57 18\r",
+ "2 57 19\r",
+ "2 57 20\r",
+ "2 57 21\r",
+ "2 57 22\r",
+ "2 57 23\r",
+ "2 57 24\r",
+ "2 57 25\r",
+ "2 57 26\r",
+ "2 57 27\r",
+ "2 57 28\r",
+ "2 57 29\r",
+ "2 57 30\r",
+ "2 57 31\r",
+ "2 57 32\r",
+ "2 57 33\r",
+ "2 57 34\r",
+ "2 57 35\r",
+ "2 57 36\r",
+ "2 57 37\r",
+ "2 57 38\r",
+ "2 57 39\r",
+ "2 57 40\r",
+ "2 57 41\r",
+ "2 57 42\r",
+ "2 57 43\r",
+ "2 57 44\r",
+ "2 57 45\r",
+ "2 57 46\r",
+ "2 57 47\r",
+ "2 57 48\r",
+ "2 57 49\r",
+ "2 57 50\r",
+ "2 57 51\r",
+ "2 57 52\r",
+ "2 57 53\r",
+ "2 57 54\r",
+ "2 57 55\r",
+ "2 57 56\r",
+ "2 57 57\r",
+ "2 57 58\r",
+ "2 58 1\r",
+ "2 58 2\r",
+ "2 58 3\r",
+ "2 58 4\r",
+ "2 58 5\r",
+ "2 58 6\r",
+ "2 58 7\r",
+ "2 58 8\r",
+ "2 58 9\r",
+ "2 58 10\r",
+ "2 58 11\r",
+ "2 58 12\r",
+ "2 58 13\r",
+ "2 58 14\r",
+ "2 58 15\r",
+ "2 58 16\r",
+ "2 58 17\r",
+ "2 58 18\r",
+ "2 58 19\r",
+ "2 58 20\r",
+ "2 58 21\r",
+ "2 58 22\r",
+ "2 58 23\r",
+ "2 58 24\r",
+ "2 58 25\r",
+ "2 58 26\r",
+ "2 58 27\r",
+ "2 58 28\r",
+ "2 58 29\r",
+ "2 58 30\r",
+ "2 58 31\r",
+ "2 58 32\r",
+ "2 58 33\r",
+ "2 58 34\r",
+ "2 58 35\r",
+ "2 58 36\r",
+ "2 58 37\r",
+ "2 58 38\r",
+ "2 58 39\r",
+ "2 58 40\r",
+ "2 58 41\r",
+ "2 58 42\r",
+ "2 58 43\r",
+ "2 58 44\r",
+ "2 58 45\r",
+ "2 58 46\r",
+ "2 58 47\r",
+ "2 58 48\r",
+ "2 58 49\r",
+ "2 58 50\r",
+ "2 58 51\r",
+ "2 58 52\r",
+ "2 58 53\r",
+ "2 58 54\r",
+ "2 58 55\r",
+ "2 58 56\r",
+ "2 58 57\r",
+ "2 58 58\r",
+ "3 1 1\r",
+ "3 1 2\r",
+ "3 1 3\r",
+ "3 1 4\r",
+ "3 1 5\r",
+ "3 1 6\r",
+ "3 1 7\r",
+ "3 1 8\r",
+ "3 1 9\r",
+ "3 1 10\r",
+ "3 1 11\r",
+ "3 1 12\r",
+ "3 1 13\r",
+ "3 1 14\r",
+ "3 1 15\r",
+ "3 1 16\r",
+ "3 1 17\r",
+ "3 1 18\r",
+ "3 1 19\r",
+ "3 1 20\r",
+ "3 1 21\r",
+ "3 1 22\r",
+ "3 1 23\r",
+ "3 1 24\r",
+ "3 1 25\r",
+ "3 1 26\r",
+ "3 1 27\r",
+ "3 1 28\r",
+ "3 1 29\r",
+ "3 1 30\r",
+ "3 1 31\r",
+ "3 1 32\r",
+ "3 1 33\r",
+ "3 1 34\r",
+ "3 1 35\r",
+ "3 1 36\r",
+ "3 1 37\r",
+ "3 1 38\r",
+ "3 1 39\r",
+ "3 1 40\r",
+ "3 1 41\r",
+ "3 1 42\r",
+ "3 1 43\r",
+ "3 1 44\r",
+ "3 1 45\r",
+ "3 1 46\r",
+ "3 1 47\r",
+ "3 1 48\r",
+ "3 1 49\r",
+ "3 1 50\r",
+ "3 1 51\r",
+ "3 1 52\r",
+ "3 1 53\r",
+ "3 1 54\r",
+ "3 1 55\r",
+ "3 1 56\r",
+ "3 1 57\r",
+ "3 1 58\r",
+ "3 2 1\r",
+ "3 2 2\r",
+ "3 2 3\r",
+ "3 2 4\r",
+ "3 2 5\r",
+ "3 2 6\r",
+ "3 2 7\r",
+ "3 2 8\r",
+ "3 2 9\r",
+ "3 2 10\r",
+ "3 2 11\r",
+ "3 2 12\r",
+ "3 2 13\r",
+ "3 2 14\r",
+ "3 2 15\r",
+ "3 2 16\r",
+ "3 2 17\r",
+ "3 2 18\r",
+ "3 2 19\r",
+ "3 2 20\r",
+ "3 2 21\r",
+ "3 2 22\r",
+ "3 2 23\r",
+ "3 2 24\r",
+ "3 2 25\r",
+ "3 2 26\r",
+ "3 2 27\r",
+ "3 2 28\r",
+ "3 2 29\r",
+ "3 2 30\r",
+ "3 2 31\r",
+ "3 2 32\r",
+ "3 2 33\r",
+ "3 2 34\r",
+ "3 2 35\r",
+ "3 2 36\r",
+ "3 2 37\r",
+ "3 2 38\r",
+ "3 2 39\r",
+ "3 2 40\r",
+ "3 2 41\r",
+ "3 2 42\r",
+ "3 2 43\r",
+ "3 2 44\r",
+ "3 2 45\r",
+ "3 2 46\r",
+ "3 2 47\r",
+ "3 2 48\r",
+ "3 2 49\r",
+ "3 2 50\r",
+ "3 2 51\r",
+ "3 2 52\r",
+ "3 2 53\r",
+ "3 2 54\r",
+ "3 2 55\r",
+ "3 2 56\r",
+ "3 2 57\r",
+ "3 2 58\r",
+ "3 3 1\r",
+ "3 3 2\r",
+ "3 3 3\r",
+ "3 3 4\r",
+ "3 3 5\r",
+ "3 3 6\r",
+ "3 3 7\r",
+ "3 3 8\r",
+ "3 3 9\r",
+ "3 3 10\r",
+ "3 3 11\r",
+ "3 3 12\r",
+ "3 3 13\r",
+ "3 3 14\r",
+ "3 3 15\r",
+ "3 3 16\r",
+ "3 3 17\r",
+ "3 3 18\r",
+ "3 3 19\r",
+ "3 3 20\r",
+ "3 3 21\r",
+ "3 3 22\r",
+ "3 3 23\r",
+ "3 3 24\r",
+ "3 3 25\r",
+ "3 3 26\r",
+ "3 3 27\r",
+ "3 3 28\r",
+ "3 3 29\r",
+ "3 3 30\r",
+ "3 3 31\r",
+ "3 3 32\r",
+ "3 3 33\r",
+ "3 3 34\r",
+ "3 3 35\r",
+ "3 3 36\r",
+ "3 3 37\r",
+ "3 3 38\r",
+ "3 3 39\r",
+ "3 3 40\r",
+ "3 3 41\r",
+ "3 3 42\r",
+ "3 3 43\r",
+ "3 3 44\r",
+ "3 3 45\r",
+ "3 3 46\r",
+ "3 3 47\r",
+ "3 3 48\r",
+ "3 3 49\r",
+ "3 3 50\r",
+ "3 3 51\r",
+ "3 3 52\r",
+ "3 3 53\r",
+ "3 3 54\r",
+ "3 3 55\r",
+ "3 3 56\r",
+ "3 3 57\r",
+ "3 3 58\r",
+ "3 4 1\r",
+ "3 4 2\r",
+ "3 4 3\r",
+ "3 4 4\r",
+ "3 4 5\r",
+ "3 4 6\r",
+ "3 4 7\r",
+ "3 4 8\r",
+ "3 4 9\r",
+ "3 4 10\r",
+ "3 4 11\r",
+ "3 4 12\r",
+ "3 4 13\r",
+ "3 4 14\r",
+ "3 4 15\r",
+ "3 4 16\r",
+ "3 4 17\r",
+ "3 4 18\r",
+ "3 4 19\r",
+ "3 4 20\r",
+ "3 4 21\r",
+ "3 4 22\r",
+ "3 4 23\r",
+ "3 4 24\r",
+ "3 4 25\r",
+ "3 4 26\r",
+ "3 4 27\r",
+ "3 4 28\r",
+ "3 4 29\r",
+ "3 4 30\r",
+ "3 4 31\r",
+ "3 4 32\r",
+ "3 4 33\r",
+ "3 4 34\r",
+ "3 4 35\r",
+ "3 4 36\r",
+ "3 4 37\r",
+ "3 4 38\r",
+ "3 4 39\r",
+ "3 4 40\r",
+ "3 4 41\r",
+ "3 4 42\r",
+ "3 4 43\r",
+ "3 4 44\r",
+ "3 4 45\r",
+ "3 4 46\r",
+ "3 4 47\r",
+ "3 4 48\r",
+ "3 4 49\r",
+ "3 4 50\r",
+ "3 4 51\r",
+ "3 4 52\r",
+ "3 4 53\r",
+ "3 4 54\r",
+ "3 4 55\r",
+ "3 4 56\r",
+ "3 4 57\r",
+ "3 4 58\r",
+ "3 5 1\r",
+ "3 5 2\r",
+ "3 5 3\r",
+ "3 5 4\r",
+ "3 5 5\r",
+ "3 5 6\r",
+ "3 5 7\r",
+ "3 5 8\r",
+ "3 5 9\r",
+ "3 5 10\r",
+ "3 5 11\r",
+ "3 5 12\r",
+ "3 5 13\r",
+ "3 5 14\r",
+ "3 5 15\r",
+ "3 5 16\r",
+ "3 5 17\r",
+ "3 5 18\r",
+ "3 5 19\r",
+ "3 5 20\r",
+ "3 5 21\r",
+ "3 5 22\r",
+ "3 5 23\r",
+ "3 5 24\r",
+ "3 5 25\r",
+ "3 5 26\r",
+ "3 5 27\r",
+ "3 5 28\r",
+ "3 5 29\r",
+ "3 5 30\r",
+ "3 5 31\r",
+ "3 5 32\r",
+ "3 5 33\r",
+ "3 5 34\r",
+ "3 5 35\r",
+ "3 5 36\r",
+ "3 5 37\r",
+ "3 5 38\r",
+ "3 5 39\r",
+ "3 5 40\r",
+ "3 5 41\r",
+ "3 5 42\r",
+ "3 5 43\r",
+ "3 5 44\r",
+ "3 5 45\r",
+ "3 5 46\r",
+ "3 5 47\r",
+ "3 5 48\r",
+ "3 5 49\r",
+ "3 5 50\r",
+ "3 5 51\r",
+ "3 5 52\r",
+ "3 5 53\r",
+ "3 5 54\r",
+ "3 5 55\r",
+ "3 5 56\r",
+ "3 5 57\r",
+ "3 5 58\r",
+ "3 6 1\r",
+ "3 6 2\r",
+ "3 6 3\r",
+ "3 6 4\r",
+ "3 6 5\r",
+ "3 6 6\r",
+ "3 6 7\r",
+ "3 6 8\r",
+ "3 6 9\r",
+ "3 6 10\r",
+ "3 6 11\r",
+ "3 6 12\r",
+ "3 6 13\r",
+ "3 6 14\r",
+ "3 6 15\r",
+ "3 6 16\r",
+ "3 6 17\r",
+ "3 6 18\r",
+ "3 6 19\r",
+ "3 6 20\r",
+ "3 6 21\r",
+ "3 6 22\r",
+ "3 6 23\r",
+ "3 6 24\r",
+ "3 6 25\r",
+ "3 6 26\r",
+ "3 6 27\r",
+ "3 6 28\r",
+ "3 6 29\r",
+ "3 6 30\r",
+ "3 6 31\r",
+ "3 6 32\r",
+ "3 6 33\r",
+ "3 6 34\r",
+ "3 6 35\r",
+ "3 6 36\r",
+ "3 6 37\r",
+ "3 6 38\r",
+ "3 6 39\r",
+ "3 6 40\r",
+ "3 6 41\r",
+ "3 6 42\r",
+ "3 6 43\r",
+ "3 6 44\r",
+ "3 6 45\r",
+ "3 6 46\r",
+ "3 6 47\r",
+ "3 6 48\r",
+ "3 6 49\r",
+ "3 6 50\r",
+ "3 6 51\r",
+ "3 6 52\r",
+ "3 6 53\r",
+ "3 6 54\r",
+ "3 6 55\r",
+ "3 6 56\r",
+ "3 6 57\r",
+ "3 6 58\r",
+ "3 7 1\r",
+ "3 7 2\r",
+ "3 7 3\r",
+ "3 7 4\r",
+ "3 7 5\r",
+ "3 7 6"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\r",
+ "3 7 7\r",
+ "3 7 8\r",
+ "3 7 9\r",
+ "3 7 10\r",
+ "3 7 11\r",
+ "3 7 12\r",
+ "3 7 13\r",
+ "3 7 14\r",
+ "3 7 15\r",
+ "3 7 16\r",
+ "3 7 17\r",
+ "3 7 18\r",
+ "3 7 19\r",
+ "3 7 20\r",
+ "3 7 21\r",
+ "3 7 22\r",
+ "3 7 23\r",
+ "3 7 24\r",
+ "3 7 25\r",
+ "3 7 26\r",
+ "3 7 27\r",
+ "3 7 28\r",
+ "3 7 29\r",
+ "3 7 30\r",
+ "3 7 31\r",
+ "3 7 32\r",
+ "3 7 33\r",
+ "3 7 34\r",
+ "3 7 35\r",
+ "3 7 36\r",
+ "3 7 37\r",
+ "3 7 38\r",
+ "3 7 39\r",
+ "3 7 40\r",
+ "3 7 41\r",
+ "3 7 42\r",
+ "3 7 43\r",
+ "3 7 44\r",
+ "3 7 45\r",
+ "3 7 46\r",
+ "3 7 47\r",
+ "3 7 48\r",
+ "3 7 49\r",
+ "3 7 50\r",
+ "3 7 51\r",
+ "3 7 52\r",
+ "3 7 53\r",
+ "3 7 54\r",
+ "3 7 55\r",
+ "3 7 56\r",
+ "3 7 57\r",
+ "3 7 58\r",
+ "3 8 1\r",
+ "3 8 2\r",
+ "3 8 3\r",
+ "3 8 4\r",
+ "3 8 5\r",
+ "3 8 6\r",
+ "3 8 7\r",
+ "3 8 8\r",
+ "3 8 9\r",
+ "3 8 10\r",
+ "3 8 11\r",
+ "3 8 12\r",
+ "3 8 13\r",
+ "3 8 14\r",
+ "3 8 15\r",
+ "3 8 16\r",
+ "3 8 17\r",
+ "3 8 18\r",
+ "3 8 19\r",
+ "3 8 20\r",
+ "3 8 21\r",
+ "3 8 22\r",
+ "3 8 23\r",
+ "3 8 24\r",
+ "3 8 25\r",
+ "3 8 26\r",
+ "3 8 27\r",
+ "3 8 28\r",
+ "3 8 29\r",
+ "3 8 30\r",
+ "3 8 31\r",
+ "3 8 32\r",
+ "3 8 33\r",
+ "3 8 34\r",
+ "3 8 35\r",
+ "3 8 36\r",
+ "3 8 37\r",
+ "3 8 38\r",
+ "3 8 39\r",
+ "3 8 40\r",
+ "3 8 41\r",
+ "3 8 42\r",
+ "3 8 43\r",
+ "3 8 44\r",
+ "3 8 45\r",
+ "3 8 46\r",
+ "3 8 47\r",
+ "3 8 48\r",
+ "3 8 49\r",
+ "3 8 50\r",
+ "3 8 51\r",
+ "3 8 52\r",
+ "3 8 53\r",
+ "3 8 54\r",
+ "3 8 55\r",
+ "3 8 56\r",
+ "3 8 57\r",
+ "3 8 58\r",
+ "3 9 1\r",
+ "3 9 2\r",
+ "3 9 3\r",
+ "3 9 4\r",
+ "3 9 5\r",
+ "3 9 6\r",
+ "3 9 7\r",
+ "3 9 8\r",
+ "3 9 9\r",
+ "3 9 10\r",
+ "3 9 11\r",
+ "3 9 12\r",
+ "3 9 13\r",
+ "3 9 14\r",
+ "3 9 15\r",
+ "3 9 16\r",
+ "3 9 17\r",
+ "3 9 18\r",
+ "3 9 19\r",
+ "3 9 20\r",
+ "3 9 21\r",
+ "3 9 22\r",
+ "3 9 23\r",
+ "3 9 24\r",
+ "3 9 25\r",
+ "3 9 26\r",
+ "3 9 27\r",
+ "3 9 28\r",
+ "3 9 29\r",
+ "3 9 30\r",
+ "3 9 31\r",
+ "3 9 32\r",
+ "3 9 33\r",
+ "3 9 34\r",
+ "3 9 35\r",
+ "3 9 36\r",
+ "3 9 37\r",
+ "3 9 38\r",
+ "3 9 39\r",
+ "3 9 40\r",
+ "3 9 41\r",
+ "3 9 42\r",
+ "3 9 43\r",
+ "3 9 44\r",
+ "3 9 45\r",
+ "3 9 46\r",
+ "3 9 47\r",
+ "3 9 48\r",
+ "3 9 49\r",
+ "3 9 50\r",
+ "3 9 51\r",
+ "3 9 52\r",
+ "3 9 53\r",
+ "3 9 54\r",
+ "3 9 55\r",
+ "3 9 56\r",
+ "3 9 57\r",
+ "3 9 58\r",
+ "3 10 1\r",
+ "3 10 2\r",
+ "3 10 3\r",
+ "3 10 4\r",
+ "3 10 5\r",
+ "3 10 6\r",
+ "3 10 7\r",
+ "3 10 8\r",
+ "3 10 9\r",
+ "3 10 10\r",
+ "3 10 11\r",
+ "3 10 12\r",
+ "3 10 13\r",
+ "3 10 14\r",
+ "3 10 15\r",
+ "3 10 16\r",
+ "3 10 17\r",
+ "3 10 18\r",
+ "3 10 19\r",
+ "3 10 20\r",
+ "3 10 21\r",
+ "3 10 22\r",
+ "3 10 23\r",
+ "3 10 24\r",
+ "3 10 25\r",
+ "3 10 26\r",
+ "3 10 27\r",
+ "3 10 28\r",
+ "3 10 29\r",
+ "3 10 30\r",
+ "3 10 31\r",
+ "3 10 32\r",
+ "3 10 33\r",
+ "3 10 34\r",
+ "3 10 35\r",
+ "3 10 36\r",
+ "3 10 37\r",
+ "3 10 38\r",
+ "3 10 39\r",
+ "3 10 40\r",
+ "3 10 41\r",
+ "3 10 42\r",
+ "3 10 43\r",
+ "3 10 44\r",
+ "3 10 45\r",
+ "3 10 46\r",
+ "3 10 47\r",
+ "3 10 48\r",
+ "3 10 49\r",
+ "3 10 50\r",
+ "3 10 51\r",
+ "3 10 52\r",
+ "3 10 53\r",
+ "3 10 54\r",
+ "3 10 55\r",
+ "3 10 56\r",
+ "3 10 57\r",
+ "3 10 58\r",
+ "3 11 1\r",
+ "3 11 2\r",
+ "3 11 3\r",
+ "3 11 4\r",
+ "3 11 5\r",
+ "3 11 6\r",
+ "3 11 7\r",
+ "3 11 8\r",
+ "3 11 9\r",
+ "3 11 10\r",
+ "3 11 11\r",
+ "3 11 12\r",
+ "3 11 13\r",
+ "3 11 14\r",
+ "3 11 15\r",
+ "3 11 16\r",
+ "3 11 17\r",
+ "3 11 18\r",
+ "3 11 19\r",
+ "3 11 20\r",
+ "3 11 21\r",
+ "3 11 22\r",
+ "3 11 23\r",
+ "3 11 24\r",
+ "3 11 25\r",
+ "3 11 26\r",
+ "3 11 27\r",
+ "3 11 28\r",
+ "3 11 29\r",
+ "3 11 30\r",
+ "3 11 31\r",
+ "3 11 32\r",
+ "3 11 33\r",
+ "3 11 34\r",
+ "3 11 35\r",
+ "3 11 36\r",
+ "3 11 37\r",
+ "3 11 38\r",
+ "3 11 39\r",
+ "3 11 40\r",
+ "3 11 41\r",
+ "3 11 42\r",
+ "3 11 43\r",
+ "3 11 44\r",
+ "3 11 45\r",
+ "3 11 46\r",
+ "3 11 47\r",
+ "3 11 48\r",
+ "3 11 49\r",
+ "3 11 50\r",
+ "3 11 51\r",
+ "3 11 52\r",
+ "3 11 53\r",
+ "3 11 54\r",
+ "3 11 55\r",
+ "3 11 56\r",
+ "3 11 57\r",
+ "3 11 58\r",
+ "3 12 1\r",
+ "3 12 2\r",
+ "3 12 3\r",
+ "3 12 4\r",
+ "3 12 5\r",
+ "3 12 6\r",
+ "3 12 7\r",
+ "3 12 8\r",
+ "3 12 9\r",
+ "3 12 10\r",
+ "3 12 11\r",
+ "3 12 12\r",
+ "3 12 13\r",
+ "3 12 14\r",
+ "3 12 15\r",
+ "3 12 16\r",
+ "3 12 17\r",
+ "3 12 18\r",
+ "3 12 19\r",
+ "3 12 20\r",
+ "3 12 21\r",
+ "3 12 22\r",
+ "3 12 23\r",
+ "3 12 24\r",
+ "3 12 25\r",
+ "3 12 26\r",
+ "3 12 27\r",
+ "3 12 28\r",
+ "3 12 29\r",
+ "3 12 30\r",
+ "3 12 31\r",
+ "3 12 32\r",
+ "3 12 33\r",
+ "3 12 34\r",
+ "3 12 35\r",
+ "3 12 36\r",
+ "3 12 37\r",
+ "3 12 38\r",
+ "3 12 39\r",
+ "3 12 40\r",
+ "3 12 41\r",
+ "3 12 42\r",
+ "3 12 43\r",
+ "3 12 44\r",
+ "3 12 45\r",
+ "3 12 46\r",
+ "3 12 47\r",
+ "3 12 48\r",
+ "3 12 49\r",
+ "3 12 50\r",
+ "3 12 51\r",
+ "3 12 52\r",
+ "3 12 53\r",
+ "3 12 54\r",
+ "3 12 55\r",
+ "3 12 56\r",
+ "3 12 57\r",
+ "3 12 58\r",
+ "3 13 1\r",
+ "3 13 2\r",
+ "3 13 3\r",
+ "3 13 4\r",
+ "3 13 5\r",
+ "3 13 6\r",
+ "3 13 7\r",
+ "3 13 8\r",
+ "3 13 9\r",
+ "3 13 10\r",
+ "3 13 11\r",
+ "3 13 12\r",
+ "3 13 13\r",
+ "3 13 14\r",
+ "3 13 15\r",
+ "3 13 16\r",
+ "3 13 17\r",
+ "3 13 18\r",
+ "3 13 19\r",
+ "3 13 20\r",
+ "3 13 21\r",
+ "3 13 22\r",
+ "3 13 23\r",
+ "3 13 24\r",
+ "3 13 25\r",
+ "3 13 26\r",
+ "3 13 27\r",
+ "3 13 28\r",
+ "3 13 29\r",
+ "3 13 30\r",
+ "3 13 31\r",
+ "3 13 32\r",
+ "3 13 33\r",
+ "3 13 34\r",
+ "3 13 35\r",
+ "3 13 36\r",
+ "3 13 37\r",
+ "3 13 38\r",
+ "3 13 39\r",
+ "3 13 40\r",
+ "3 13 41\r",
+ "3 13 42\r",
+ "3 13 43\r",
+ "3 13 44\r",
+ "3 13 45\r",
+ "3 13 46\r",
+ "3 13 47\r",
+ "3 13 48\r",
+ "3 13 49\r",
+ "3 13 50\r",
+ "3 13 51\r",
+ "3 13 52\r",
+ "3 13 53\r",
+ "3 13 54\r",
+ "3 13 55\r",
+ "3 13 56\r",
+ "3 13 57\r",
+ "3 13 58\r",
+ "3 14 1\r",
+ "3 14 2\r",
+ "3 14 3\r",
+ "3 14 4\r",
+ "3 14 5\r",
+ "3 14 6\r",
+ "3 14 7\r",
+ "3 14 8\r",
+ "3 14 9\r",
+ "3 14 10\r",
+ "3 14 11\r",
+ "3 14 12\r",
+ "3 14 13\r",
+ "3 14 14\r",
+ "3 14 15\r",
+ "3 14 16\r",
+ "3 14 17\r",
+ "3 14 18\r",
+ "3 14 19\r",
+ "3 14 20\r",
+ "3 14 21\r",
+ "3 14 22\r",
+ "3 14 23\r",
+ "3 14 24\r",
+ "3 14 25\r",
+ "3 14 26\r",
+ "3 14 27\r",
+ "3 14 28\r",
+ "3 14 29\r",
+ "3 14 30\r",
+ "3 14 31\r",
+ "3 14 32\r",
+ "3 14 33\r",
+ "3 14 34\r",
+ "3 14 35\r",
+ "3 14 36\r",
+ "3 14 37\r",
+ "3 14 38\r",
+ "3 14 39\r",
+ "3 14 40\r",
+ "3 14 41\r",
+ "3 14 42\r",
+ "3 14 43\r",
+ "3 14 44\r",
+ "3 14 45\r",
+ "3 14 46\r",
+ "3 14 47\r",
+ "3 14 48\r",
+ "3 14 49\r",
+ "3 14 50\r",
+ "3 14 51\r",
+ "3 14 52\r",
+ "3 14 53\r",
+ "3 14 54\r",
+ "3 14 55\r",
+ "3 14 56\r",
+ "3 14 57\r",
+ "3 14 58\r",
+ "3 15 1\r",
+ "3 15 2\r",
+ "3 15 3\r",
+ "3 15 4\r",
+ "3 15 5\r",
+ "3 15 6\r",
+ "3 15 7\r",
+ "3 15 8\r",
+ "3 15 9\r",
+ "3 15 10\r",
+ "3 15 11\r",
+ "3 15 12\r",
+ "3 15 13\r",
+ "3 15 14\r",
+ "3 15 15\r",
+ "3 15 16\r",
+ "3 15 17\r",
+ "3 15 18\r",
+ "3 15 19\r",
+ "3 15 20\r",
+ "3 15 21\r",
+ "3 15 22\r",
+ "3 15 23\r",
+ "3 15 24\r",
+ "3 15 25\r",
+ "3 15 26\r",
+ "3 15 27\r",
+ "3 15 28\r",
+ "3 15 29\r",
+ "3 15 30\r",
+ "3 15 31\r",
+ "3 15 32\r",
+ "3 15 33\r",
+ "3 15 34\r",
+ "3 15 35\r",
+ "3 15 36\r",
+ "3 15 37\r",
+ "3 15 38\r",
+ "3 15 39\r",
+ "3 15 40\r",
+ "3 15 41\r",
+ "3 15 42\r",
+ "3 15 43\r",
+ "3 15 44\r",
+ "3 15 45\r",
+ "3 15 46\r",
+ "3 15 47\r",
+ "3 15 48\r",
+ "3 15 49\r",
+ "3 15 50\r",
+ "3 15 51\r",
+ "3 15 52\r",
+ "3 15 53\r",
+ "3 15 54\r",
+ "3 15 55\r",
+ "3 15 56\r",
+ "3 15 57\r",
+ "3 15 58\r",
+ "3 16 1\r",
+ "3 16 2\r",
+ "3 16 3\r",
+ "3 16 4\r",
+ "3 16 5\r",
+ "3 16 6\r",
+ "3 16 7\r",
+ "3 16 8\r",
+ "3 16 9\r",
+ "3 16 10\r",
+ "3 16 11\r",
+ "3 16 12\r",
+ "3 16 13\r",
+ "3 16 14\r",
+ "3 16 15\r",
+ "3 16 16\r",
+ "3 16 17\r",
+ "3 16 18\r",
+ "3 16 19\r",
+ "3 16 20\r",
+ "3 16 21\r",
+ "3 16 22\r",
+ "3 16 23\r",
+ "3 16 24\r",
+ "3 16 25\r",
+ "3 16 26\r",
+ "3 16 27\r",
+ "3 16 28\r",
+ "3 16 29\r",
+ "3 16 30\r",
+ "3 16 31\r",
+ "3 16 32\r",
+ "3 16 33\r",
+ "3 16 34\r",
+ "3 16 35\r",
+ "3 16 36\r",
+ "3 16 37\r",
+ "3 16 38\r",
+ "3 16 39\r",
+ "3 16 40\r",
+ "3 16 41\r",
+ "3 16 42\r",
+ "3 16 43\r",
+ "3 16 44\r",
+ "3 16 45\r",
+ "3 16 46\r",
+ "3 16 47\r",
+ "3 16 48\r",
+ "3 16 49\r",
+ "3 16 50\r",
+ "3 16 51\r",
+ "3 16 52\r",
+ "3 16 53\r",
+ "3 16 54\r",
+ "3 16 55\r",
+ "3 16 56\r",
+ "3 16 57\r",
+ "3 16 58\r",
+ "3 17 1\r",
+ "3 17 2\r",
+ "3 17 3\r",
+ "3 17 4\r",
+ "3 17 5\r",
+ "3 17 6\r",
+ "3 17 7\r",
+ "3 17 8\r",
+ "3 17 9\r",
+ "3 17 10\r",
+ "3 17 11\r",
+ "3 17 12\r",
+ "3 17 13\r",
+ "3 17 14\r",
+ "3 17 15\r",
+ "3 17 16\r",
+ "3 17 17\r",
+ "3 17 18\r",
+ "3 17 19\r",
+ "3 17 20\r",
+ "3 17 21\r",
+ "3 17 22\r",
+ "3 17 23\r",
+ "3 17 24\r",
+ "3 17 25\r",
+ "3 17 26\r",
+ "3 17 27\r",
+ "3 17 28\r",
+ "3 17 29\r",
+ "3 17 30\r",
+ "3 17 31\r",
+ "3 17 32\r",
+ "3 17 33\r",
+ "3 17 34\r",
+ "3 17 35\r",
+ "3 17 36\r",
+ "3 17 37\r",
+ "3 17 38\r",
+ "3 17 39\r",
+ "3 17 40\r",
+ "3 17 41\r",
+ "3 17 42\r",
+ "3 17 43\r",
+ "3 17 44\r",
+ "3 17 45\r",
+ "3 17 46\r",
+ "3 17 47\r",
+ "3 17 48\r",
+ "3 17 49\r",
+ "3 17 50\r",
+ "3 17 51\r",
+ "3 17 52\r",
+ "3 17 53\r",
+ "3 17 54\r",
+ "3 17 55\r",
+ "3 17 56\r",
+ "3 17 57\r",
+ "3 17 58\r",
+ "3 18 1\r",
+ "3 18 2\r",
+ "3 18 3\r",
+ "3 18 4\r",
+ "3 18 5\r",
+ "3 18 6\r",
+ "3 18 7\r",
+ "3 18 8\r",
+ "3 18 9\r",
+ "3 18 10\r",
+ "3 18 11\r",
+ "3 18 12\r",
+ "3 18 13\r",
+ "3 18 14\r",
+ "3 18 15\r",
+ "3 18 16\r",
+ "3 18 17\r",
+ "3 18 18\r",
+ "3 18 19\r",
+ "3 18 20\r",
+ "3 18 21\r",
+ "3 18 22\r",
+ "3 18 23\r",
+ "3 18 24\r",
+ "3 18 25\r",
+ "3 18 26\r",
+ "3 18 27\r",
+ "3 18 28\r",
+ "3 18 29\r",
+ "3 18 30\r",
+ "3 18 31\r",
+ "3 18 32\r",
+ "3 18 33\r",
+ "3 18 34\r",
+ "3 18 35\r",
+ "3 18 36\r",
+ "3 18 37\r",
+ "3 18 38\r",
+ "3 18 39\r",
+ "3 18 40\r",
+ "3 18 41\r",
+ "3 18 42\r",
+ "3 18 43\r",
+ "3 18 44\r",
+ "3 18 45\r",
+ "3 18 46\r",
+ "3 18 47\r",
+ "3 18 48\r",
+ "3 18 49\r",
+ "3 18 50\r",
+ "3 18 51\r",
+ "3 18 52\r",
+ "3 18 53\r",
+ "3 18 54\r",
+ "3 18 55\r",
+ "3 18 56\r",
+ "3 18 57\r",
+ "3 18 58\r",
+ "3 19 1\r",
+ "3 19 2\r",
+ "3 19 3\r",
+ "3 19 4\r",
+ "3 19 5\r",
+ "3 19 6\r",
+ "3 19 7\r",
+ "3 19 8\r",
+ "3 19 9\r",
+ "3 19 10\r",
+ "3 19 11\r",
+ "3 19 12\r",
+ "3 19 13\r",
+ "3 19 14\r",
+ "3 19 15\r",
+ "3 19 16\r",
+ "3 19 17\r",
+ "3 19 18\r",
+ "3 19 19\r",
+ "3 19 20\r",
+ "3 19 21\r",
+ "3 19 22\r",
+ "3 19 23\r",
+ "3 19 24\r",
+ "3 19 25\r",
+ "3 19 26\r",
+ "3 19 27\r",
+ "3 19 28\r",
+ "3 19 29\r",
+ "3 19 30\r",
+ "3 19 31\r",
+ "3 19 32\r",
+ "3 19 33\r",
+ "3 19 34\r",
+ "3 19 35\r",
+ "3 19 36\r",
+ "3 19 37\r",
+ "3 19 38\r",
+ "3 19 39\r",
+ "3 19 40\r",
+ "3 19 41\r",
+ "3 19 42\r",
+ "3 19 43\r",
+ "3 19 44\r",
+ "3 19 45\r",
+ "3 19 46\r",
+ "3 19 47\r",
+ "3 19 48\r",
+ "3 19 49\r",
+ "3 19 50\r",
+ "3 19 51\r",
+ "3 19 52\r",
+ "3 19 53\r",
+ "3 19 54\r",
+ "3 19 55\r",
+ "3 19 56\r",
+ "3 19 57\r",
+ "3 19 58\r",
+ "3 20 1\r",
+ "3 20 2\r",
+ "3 20 3\r",
+ "3 20 4\r",
+ "3 20 5\r",
+ "3 20 6\r",
+ "3 20 7\r",
+ "3 20 8\r",
+ "3 20 9\r",
+ "3 20 10\r",
+ "3 20 11\r",
+ "3 20 12\r",
+ "3 20 13\r",
+ "3 20 14\r",
+ "3 20 15\r",
+ "3 20 16\r",
+ "3 20 17\r",
+ "3 20 18\r",
+ "3 20 19\r",
+ "3 20 20\r",
+ "3 20 21\r",
+ "3 20 22\r",
+ "3 20 23\r",
+ "3 20 24\r",
+ "3 20 25\r",
+ "3 20 26\r",
+ "3 20 27\r",
+ "3 20 28\r",
+ "3 20 29\r",
+ "3 20 30\r",
+ "3 20 31\r",
+ "3 20 32\r",
+ "3 20 33\r",
+ "3 20 34\r",
+ "3 20 35\r",
+ "3 20 36\r",
+ "3 20 37\r",
+ "3 20 38\r",
+ "3 20 39\r",
+ "3 20 40\r",
+ "3 20 41\r",
+ "3 20 42\r",
+ "3 20 43\r",
+ "3 20 44\r",
+ "3 20 45\r",
+ "3 20 46\r",
+ "3 20 47\r",
+ "3 20 48\r",
+ "3 20 49\r",
+ "3 20 50\r",
+ "3 20 51\r",
+ "3 20 52\r",
+ "3 20 53\r",
+ "3 20 54\r",
+ "3 20 55\r",
+ "3 20 56\r",
+ "3 20 57\r",
+ "3 20 58\r",
+ "3 21 1\r",
+ "3 21 2\r",
+ "3 21 3\r",
+ "3 21 4\r",
+ "3 21 5\r",
+ "3 21 6\r",
+ "3 21 7\r",
+ "3 21 8\r",
+ "3 21 9\r",
+ "3 21 10\r",
+ "3 21 11\r",
+ "3 21 12\r",
+ "3 21 13\r",
+ "3 21 14\r",
+ "3 21 15\r",
+ "3 21 16\r",
+ "3 21 17\r",
+ "3 21 18\r",
+ "3 21 19\r",
+ "3 21 20\r",
+ "3 21 21\r",
+ "3 21 22\r",
+ "3 21 23\r",
+ "3 21 24\r",
+ "3 21 25\r",
+ "3 21 26\r",
+ "3 21 27\r",
+ "3 21 28\r",
+ "3 21 29\r",
+ "3 21 30\r",
+ "3 21 31\r",
+ "3 21 32\r",
+ "3 21 33\r",
+ "3 21 34\r",
+ "3 21 35\r",
+ "3 21 36\r",
+ "3 21 37\r",
+ "3 21 38\r",
+ "3 21 39\r",
+ "3 21 40\r",
+ "3 21 41\r",
+ "3 21 42\r",
+ "3 21 43\r",
+ "3 21 44\r",
+ "3 21 45\r",
+ "3 21 46\r",
+ "3 21 47\r",
+ "3 21 48\r",
+ "3 21 49\r",
+ "3 21 50\r",
+ "3 21 51\r",
+ "3 21 52\r",
+ "3 21 53\r",
+ "3 21 54\r",
+ "3 21 55\r",
+ "3 21 56\r",
+ "3 21 57\r",
+ "3 21 58\r",
+ "3 22 1\r",
+ "3 22 2\r",
+ "3 22 3\r",
+ "3 22 4\r",
+ "3 22 5\r",
+ "3 22 6\r",
+ "3 22 7\r",
+ "3 22 8\r",
+ "3 22 9\r",
+ "3 22 10\r",
+ "3 22 11\r",
+ "3 22 12\r",
+ "3 22 13\r",
+ "3 22 14\r",
+ "3 22 15\r",
+ "3 22 16\r",
+ "3 22 17\r",
+ "3 22 18\r",
+ "3 22 19\r",
+ "3 22 20\r",
+ "3 22 21\r",
+ "3 22 22\r",
+ "3 22 23\r",
+ "3 22 24\r",
+ "3 22 25\r",
+ "3 22 26\r",
+ "3 22 27\r",
+ "3 22 28\r",
+ "3 22 29\r",
+ "3 22 30\r",
+ "3 22 31\r",
+ "3 22 32\r",
+ "3 22 33\r",
+ "3 22 34\r",
+ "3 22 35\r",
+ "3 22 36\r",
+ "3 22 37\r",
+ "3 22 38\r",
+ "3 22 39\r",
+ "3 22 40\r",
+ "3 22 41\r",
+ "3 22 42\r",
+ "3 22 43\r",
+ "3 22 44\r",
+ "3 22 45\r",
+ "3 22 46\r",
+ "3 22 47\r",
+ "3 22 48\r",
+ "3 22 49\r",
+ "3 22 50\r",
+ "3 22 51\r",
+ "3 22 52\r",
+ "3 22 53\r",
+ "3 22 54\r",
+ "3 22 55\r",
+ "3 22 56\r",
+ "3 22 57\r",
+ "3 22 58\r",
+ "3 23 1\r",
+ "3 23 2\r",
+ "3 23 3\r",
+ "3 23 4\r",
+ "3 23 5\r",
+ "3 23 6\r",
+ "3 23 7\r",
+ "3 23 8\r",
+ "3 23 9\r",
+ "3 23 10\r",
+ "3 23 11\r",
+ "3 23 12\r",
+ "3 23 13\r",
+ "3 23 14\r",
+ "3 23 15\r",
+ "3 23 16\r",
+ "3 23 17\r",
+ "3 23 18\r",
+ "3 23 19\r",
+ "3 23 20\r",
+ "3 23 21\r",
+ "3 23 22\r",
+ "3 23 23\r",
+ "3 23 24\r",
+ "3 23 25\r",
+ "3 23 26\r",
+ "3 23 27\r",
+ "3 23 28\r",
+ "3 23 29\r",
+ "3 23 30\r",
+ "3 23 31\r",
+ "3 23 32\r",
+ "3 23 33\r",
+ "3 23 34\r",
+ "3 23 35\r",
+ "3 23 36\r",
+ "3 23 37\r",
+ "3 23 38\r",
+ "3 23 39\r",
+ "3 23 40\r",
+ "3 23 41\r",
+ "3 23 42\r",
+ "3 23 43\r",
+ "3 23 44\r",
+ "3 23 45\r",
+ "3 23 46\r",
+ "3 23 47\r",
+ "3 23 48\r",
+ "3 23 49\r",
+ "3 23 50\r",
+ "3 23 51\r",
+ "3 23 52\r",
+ "3 23 53\r",
+ "3 23 54\r",
+ "3 23 55\r",
+ "3 23 56\r",
+ "3 23 57\r",
+ "3 23 58\r",
+ "3 24 1\r",
+ "3 24 2\r",
+ "3 24 3\r",
+ "3 24 4\r",
+ "3 24 5\r",
+ "3 24 6\r",
+ "3 24 7\r",
+ "3 24 8\r",
+ "3 24 9\r",
+ "3 24 10\r",
+ "3 24 11\r",
+ "3 24 12\r",
+ "3 24 13\r",
+ "3 24 14\r",
+ "3 24 15\r",
+ "3 24 16\r",
+ "3 24 17\r",
+ "3 24 18\r",
+ "3 24 19\r",
+ "3 24 20\r",
+ "3 24 21\r",
+ "3 24 22\r",
+ "3 24 23\r",
+ "3 24 24\r",
+ "3 24 25\r",
+ "3 24 26\r",
+ "3 24 27\r",
+ "3 24 28\r",
+ "3 24 29\r",
+ "3 24 30\r",
+ "3 24 31\r",
+ "3 24 32\r",
+ "3 24 33\r",
+ "3 24 34\r",
+ "3 24 35\r",
+ "3 24 36\r",
+ "3 24 37\r",
+ "3 24 38\r",
+ "3 24 39\r",
+ "3 24 40\r",
+ "3 24 41\r",
+ "3 24 42\r",
+ "3 24 43\r",
+ "3 24 44\r",
+ "3 24 45\r",
+ "3 24 46\r",
+ "3 24 47\r",
+ "3 24 48\r",
+ "3 24 49\r",
+ "3 24 50\r",
+ "3 24 51\r",
+ "3 24 52\r",
+ "3 24 53\r",
+ "3 24 54\r",
+ "3 24 55\r",
+ "3 24 56\r",
+ "3 24 57\r",
+ "3 24 58\r",
+ "3 25 1\r",
+ "3 25 2\r",
+ "3 25 3\r",
+ "3 25 4\r",
+ "3 25 5\r",
+ "3 25 6\r",
+ "3 25 7\r",
+ "3 25 8\r",
+ "3 25 9\r",
+ "3 25 10\r",
+ "3 25 11\r",
+ "3 25 12\r",
+ "3 25 13\r",
+ "3 25 14\r",
+ "3 25 15\r",
+ "3 25 16\r",
+ "3 25 17\r",
+ "3 25 18\r",
+ "3 25 19\r",
+ "3 25 20\r",
+ "3 25 21\r",
+ "3 25 22\r",
+ "3 25 23\r",
+ "3 25 24\r",
+ "3 25 25\r",
+ "3 25 26\r",
+ "3 25 27\r",
+ "3 25 28\r",
+ "3 25 29\r",
+ "3 25 30\r",
+ "3 25 31\r",
+ "3 25 32\r",
+ "3 25 33\r",
+ "3 25 34\r",
+ "3 25 35\r",
+ "3 25 36\r",
+ "3 25 37\r",
+ "3 25 38\r",
+ "3 25 39\r",
+ "3 25 40\r",
+ "3 25 41\r",
+ "3 25 42\r",
+ "3 25 43\r",
+ "3 25 44\r",
+ "3 25 45\r",
+ "3 25 46\r",
+ "3 25 47\r",
+ "3 25 48\r",
+ "3 25 49\r",
+ "3 25 50\r",
+ "3 25 51\r",
+ "3 25 52\r",
+ "3 25 53\r",
+ "3 25 54\r",
+ "3 25 55\r",
+ "3 25 56\r",
+ "3 25 57\r",
+ "3 25 58\r",
+ "3 26 1\r",
+ "3 26 2\r",
+ "3 26 3\r",
+ "3 26 4\r",
+ "3 26 5\r",
+ "3 26 6\r",
+ "3 26 7\r",
+ "3 26 8\r",
+ "3 26 9\r",
+ "3 26 10\r",
+ "3 26 11\r",
+ "3 26 12\r",
+ "3 26 13\r",
+ "3 26 14\r",
+ "3 26 15\r",
+ "3 26 16\r",
+ "3 26 17\r",
+ "3 26 18\r",
+ "3 26 19\r",
+ "3 26 20\r",
+ "3 26 21\r",
+ "3 26 22\r",
+ "3 26 23\r",
+ "3 26 24\r",
+ "3 26 25\r",
+ "3 26 26\r",
+ "3 26 27\r",
+ "3 26 28\r",
+ "3 26 29\r",
+ "3 26 30\r",
+ "3 26 31\r",
+ "3 26 32\r",
+ "3 26 33\r",
+ "3 26 34\r",
+ "3 26 35\r",
+ "3 26 36\r",
+ "3 26 37\r",
+ "3 26 38\r",
+ "3 26 39\r",
+ "3 26 40\r",
+ "3 26 41\r",
+ "3 26 42\r",
+ "3 26 43\r",
+ "3 26 44\r",
+ "3 26 45\r",
+ "3 26 46\r",
+ "3 26 47\r",
+ "3 26 48\r",
+ "3 26 49\r",
+ "3 26 50\r",
+ "3 26 51\r",
+ "3 26 52\r",
+ "3 26 53\r",
+ "3 26 54\r",
+ "3 26 55\r",
+ "3 26 56\r",
+ "3 26 57\r",
+ "3 26 58\r",
+ "3 27 1\r",
+ "3 27 2\r",
+ "3 27 3\r",
+ "3 27 4\r",
+ "3 27 5\r",
+ "3 27 6\r",
+ "3 27 7\r",
+ "3 27 8\r",
+ "3 27 9\r",
+ "3 27 10\r",
+ "3 27 11\r",
+ "3 27 12\r",
+ "3 27 13\r",
+ "3 27 14\r",
+ "3 27 15\r",
+ "3 27 16\r",
+ "3 27 17\r",
+ "3 27 18\r",
+ "3 27 19\r",
+ "3 27 20\r",
+ "3 27 21\r",
+ "3 27 22\r",
+ "3 27 23\r",
+ "3 27 24\r",
+ "3 27 25\r",
+ "3 27 26\r",
+ "3 27 27\r",
+ "3 27 28\r",
+ "3 27 29\r",
+ "3 27 30\r",
+ "3 27 31\r",
+ "3 27 32\r",
+ "3 27 33\r",
+ "3 27 34\r",
+ "3 27 35\r",
+ "3 27 36\r",
+ "3 27 37\r",
+ "3 27 38\r",
+ "3 27 39\r",
+ "3 27 40\r",
+ "3 27 41\r",
+ "3 27 42\r",
+ "3 27 43\r",
+ "3 27 44\r",
+ "3 27 45\r",
+ "3 27 46\r",
+ "3 27 47\r",
+ "3 27 48\r",
+ "3 27 49\r",
+ "3 27 50\r",
+ "3 27 51\r",
+ "3 27 52\r",
+ "3 27 53\r",
+ "3 27 54\r",
+ "3 27 55\r",
+ "3 27 56\r",
+ "3 27 57\r",
+ "3 27 58\r",
+ "3 28 1\r",
+ "3 28 2\r",
+ "3 28 3\r",
+ "3 28 4\r",
+ "3 28 5\r",
+ "3 28 6\r",
+ "3 28 7\r",
+ "3 28 8\r",
+ "3 28 9\r",
+ "3 28 10\r",
+ "3 28 11\r",
+ "3 28 12\r",
+ "3 28 13\r",
+ "3 28 14\r",
+ "3 28 15\r",
+ "3 28 16\r",
+ "3 28 17\r",
+ "3 28 18\r",
+ "3 28 19\r",
+ "3 28 20\r",
+ "3 28 21\r",
+ "3 28 22\r",
+ "3 28 23\r",
+ "3 28 24\r",
+ "3 28 25\r",
+ "3 28 26\r",
+ "3 28 27\r",
+ "3 28 28\r",
+ "3 28 29\r",
+ "3 28 30\r",
+ "3 28 31\r",
+ "3 28 32\r",
+ "3 28 33\r",
+ "3 28 34\r",
+ "3 28 35\r",
+ "3 28 36\r",
+ "3 28 37\r",
+ "3 28 38\r",
+ "3 28 39\r",
+ "3 28 40\r",
+ "3 28 41\r",
+ "3 28 42\r",
+ "3 28 43\r",
+ "3 28 44\r",
+ "3 28 45\r",
+ "3 28 46\r",
+ "3 28 47\r",
+ "3 28 48\r",
+ "3 28 49\r",
+ "3 28 50\r",
+ "3 28 51\r",
+ "3 28 52\r",
+ "3 28 53\r",
+ "3 28 54\r",
+ "3 28 55\r",
+ "3 28 56\r",
+ "3 28 57\r",
+ "3 28 58\r",
+ "3 29 1\r",
+ "3 29 2\r",
+ "3 29 3\r",
+ "3 29 4\r",
+ "3 29 5\r",
+ "3 29 6\r",
+ "3 29 7\r",
+ "3 29 8\r",
+ "3 29 9\r",
+ "3 29 10\r",
+ "3 29 11\r",
+ "3 29 12\r",
+ "3 29 13\r",
+ "3 29 14\r",
+ "3 29 15\r",
+ "3 29 16\r",
+ "3 29 17\r",
+ "3 29 18\r",
+ "3 29 19\r",
+ "3 29 20\r",
+ "3 29 21\r",
+ "3 29 22\r",
+ "3 29 23\r",
+ "3 29 24\r",
+ "3 29 25\r",
+ "3 29 26\r",
+ "3 29 27\r",
+ "3 29 28\r",
+ "3 29 29\r",
+ "3 29 30\r",
+ "3 29 31\r",
+ "3 29 32\r",
+ "3 29 33\r",
+ "3 29 34\r",
+ "3 29 35\r",
+ "3 29 36\r",
+ "3 29 37\r",
+ "3 29 38\r",
+ "3 29 39\r",
+ "3 29 40\r",
+ "3 29 41\r",
+ "3 29 42\r",
+ "3 29 43\r",
+ "3 29 44\r",
+ "3 29 45\r",
+ "3 29 46\r",
+ "3 29 47\r",
+ "3 29 48\r",
+ "3 29 49\r",
+ "3 29 50\r",
+ "3 29 51\r",
+ "3 29 52\r",
+ "3 29 53\r",
+ "3 29 54\r",
+ "3 29 55\r",
+ "3 29 56\r",
+ "3 29 57\r",
+ "3 29 58\r",
+ "3 30 1\r",
+ "3 30 2\r",
+ "3 30 3\r",
+ "3 30 4\r",
+ "3 30 5\r",
+ "3 30 6\r",
+ "3 30 7\r",
+ "3 30 8\r",
+ "3 30 9\r",
+ "3 30 10\r",
+ "3 30 11\r",
+ "3 30 12\r",
+ "3 30 13\r",
+ "3 30 14\r",
+ "3 30 15\r",
+ "3 30 16\r",
+ "3 30 17\r",
+ "3 30 18\r",
+ "3 30 19\r",
+ "3 30 20\r",
+ "3 30 21\r",
+ "3 30 22\r",
+ "3 30 23\r",
+ "3 30 24\r",
+ "3 30 25\r",
+ "3 30 26\r",
+ "3 30 27\r",
+ "3 30 28\r",
+ "3 30 29\r",
+ "3 30 30\r",
+ "3 30 31\r",
+ "3 30 32\r",
+ "3 30 33\r",
+ "3 30 34\r",
+ "3 30 35\r",
+ "3 30 36\r",
+ "3 30 37\r",
+ "3 30 38\r",
+ "3 30 39\r",
+ "3 30 40\r",
+ "3 30 41\r",
+ "3 30 42\r",
+ "3 30 43\r",
+ "3 30 44\r",
+ "3 30 45\r",
+ "3 30 46\r",
+ "3 30 47\r",
+ "3 30 48\r",
+ "3 30 49\r",
+ "3 30 50\r",
+ "3 30 51\r",
+ "3 30 52\r",
+ "3 30 53\r",
+ "3 30 54\r",
+ "3 30 55\r",
+ "3 30 56\r",
+ "3 30 57\r",
+ "3 30 58\r",
+ "3 31 1\r",
+ "3 31 2\r",
+ "3 31 3\r",
+ "3 31 4\r",
+ "3 31 5\r",
+ "3 31 6\r",
+ "3 31 7\r",
+ "3 31 8\r",
+ "3 31 9\r",
+ "3 31 10\r",
+ "3 31 11\r",
+ "3 31 12\r",
+ "3 31 13\r",
+ "3 31 14\r",
+ "3 31 15\r",
+ "3 31 16\r",
+ "3 31 17\r",
+ "3 31 18\r",
+ "3 31 19\r",
+ "3 31 20\r",
+ "3 31 21\r",
+ "3 31 22\r",
+ "3 31 23\r",
+ "3 31 24\r",
+ "3 31 25\r",
+ "3 31 26\r",
+ "3 31 27\r",
+ "3 31 28\r",
+ "3 31 29\r",
+ "3 31 30\r",
+ "3 31 31\r",
+ "3 31 32\r",
+ "3 31 33\r",
+ "3 31 34\r",
+ "3 31 35\r",
+ "3 31 36\r",
+ "3 31 37\r",
+ "3 31 38\r",
+ "3 31 39\r",
+ "3 31 40\r",
+ "3 31 41\r",
+ "3 31 42\r",
+ "3 31 43\r",
+ "3 31 44\r",
+ "3 31 45\r",
+ "3 31 46\r",
+ "3 31 47\r",
+ "3 31 48\r",
+ "3 31 49\r",
+ "3 31 50\r",
+ "3 31 51\r",
+ "3 31 52\r",
+ "3 31 53\r",
+ "3 31 54\r",
+ "3 31 55\r",
+ "3 31 56\r",
+ "3 31 57\r",
+ "3 31 58\r",
+ "3 32 1\r",
+ "3 32 2\r",
+ "3 32 3\r",
+ "3 32 4\r",
+ "3 32 5\r",
+ "3 32 6\r",
+ "3 32 7\r",
+ "3 32 8\r",
+ "3 32 9\r",
+ "3 32 10\r",
+ "3 32 11\r",
+ "3 32 12\r",
+ "3 32 13\r",
+ "3 32 14\r",
+ "3 32 15\r",
+ "3 32 16\r",
+ "3 32 17\r",
+ "3 32 18\r",
+ "3 32 19\r",
+ "3 32 20\r",
+ "3 32 21\r",
+ "3 32 22\r",
+ "3 32 23\r",
+ "3 32 24\r",
+ "3 32 25\r",
+ "3 32 26\r",
+ "3 32 27\r",
+ "3 32 28\r",
+ "3 32 29\r",
+ "3 32 30\r",
+ "3 32 31\r",
+ "3 32 32\r",
+ "3 32 33\r",
+ "3 32 34\r",
+ "3 32 35\r",
+ "3 32 36\r",
+ "3 32 37\r",
+ "3 32 38\r",
+ "3 32 39\r",
+ "3 32 40\r",
+ "3 32 41\r",
+ "3 32 42\r",
+ "3 32 43\r",
+ "3 32 44\r",
+ "3 32 45\r",
+ "3 32 46\r",
+ "3 32 47\r",
+ "3 32 48\r",
+ "3 32 49\r",
+ "3 32 50\r",
+ "3 32 51\r",
+ "3 32 52\r",
+ "3 32 53\r",
+ "3 32 54\r",
+ "3 32 55\r",
+ "3 32 56\r",
+ "3 32 57\r",
+ "3 32 58\r",
+ "3 33 1\r",
+ "3 33 2\r",
+ "3 33 3\r",
+ "3 33 4\r",
+ "3 33 5\r",
+ "3 33 6\r",
+ "3 33 7\r",
+ "3 33 8\r",
+ "3 33 9\r",
+ "3 33 10\r",
+ "3 33 11\r",
+ "3 33 12\r",
+ "3 33 13\r",
+ "3 33 14\r",
+ "3 33 15\r",
+ "3 33 16\r",
+ "3 33 17\r",
+ "3 33 18\r",
+ "3 33 19\r",
+ "3 33 20\r",
+ "3 33 21\r",
+ "3 33 22\r",
+ "3 33 23\r",
+ "3 33 24\r",
+ "3 33 25\r",
+ "3 33 26\r",
+ "3 33 27\r",
+ "3 33 28\r",
+ "3 33 29\r",
+ "3 33 30\r",
+ "3 33 31\r",
+ "3 33 32\r",
+ "3 33 33\r",
+ "3 33 34\r",
+ "3 33 35\r",
+ "3 33 36\r",
+ "3 33 37\r",
+ "3 33 38\r",
+ "3 33 39\r",
+ "3 33 40\r",
+ "3 33 41\r",
+ "3 33 42\r",
+ "3 33 43\r",
+ "3 33 44\r",
+ "3 33 45\r",
+ "3 33 46\r",
+ "3 33 47\r",
+ "3 33 48\r",
+ "3 33 49\r",
+ "3 33 50\r",
+ "3 33 51\r",
+ "3 33 52\r",
+ "3 33 53\r",
+ "3 33 54\r",
+ "3 33 55\r",
+ "3 33 56\r",
+ "3 33 57\r",
+ "3 33 58\r",
+ "3 34 1\r",
+ "3 34 2\r",
+ "3 34 3\r",
+ "3 34 4\r",
+ "3 34 5\r",
+ "3 34 6\r",
+ "3 34 7\r",
+ "3 34 8\r",
+ "3 34 9\r",
+ "3 34 10\r",
+ "3 34 11\r",
+ "3 34 12\r",
+ "3 34 13\r",
+ "3 34 14\r",
+ "3 34 15\r",
+ "3 34 16\r",
+ "3 34 17\r",
+ "3 34 18\r",
+ "3 34 19\r",
+ "3 34 20\r",
+ "3 34 21\r",
+ "3 34 22\r",
+ "3 34 23\r",
+ "3 34 24\r",
+ "3 34 25\r",
+ "3 34 26\r",
+ "3 34 27\r",
+ "3 34 28\r",
+ "3 34 29\r",
+ "3 34 30\r",
+ "3 34 31\r",
+ "3 34 32\r",
+ "3 34 33\r",
+ "3 34 34\r",
+ "3 34 35\r",
+ "3 34 36\r",
+ "3 34 37\r",
+ "3 34 38\r",
+ "3 34 39\r",
+ "3 34 40\r",
+ "3 34 41\r",
+ "3 34 42\r",
+ "3 34 43\r",
+ "3 34 44\r",
+ "3 34 45\r",
+ "3 34 46\r",
+ "3 34 47\r",
+ "3 34 48\r",
+ "3 34 49\r",
+ "3 34 50\r",
+ "3 34 51\r",
+ "3 34 52\r",
+ "3 34 53\r",
+ "3 34 54\r",
+ "3 34 55\r",
+ "3 34 56\r",
+ "3 34 57\r",
+ "3 34 58\r",
+ "3 35 1\r",
+ "3 35 2\r",
+ "3 35 3\r",
+ "3 35 4\r",
+ "3 35 5\r",
+ "3 35 6\r",
+ "3 35 7\r",
+ "3 35 8\r",
+ "3 35 9\r",
+ "3 35 10\r",
+ "3 35 11\r",
+ "3 35 12\r",
+ "3 35 13\r",
+ "3 35 14\r",
+ "3 35 15\r",
+ "3 35 16\r",
+ "3 35 17\r",
+ "3 35 18\r",
+ "3 35 19\r",
+ "3 35 20\r",
+ "3 35 21\r",
+ "3 35 22\r",
+ "3 35 23\r",
+ "3 35 24\r",
+ "3 35 25\r",
+ "3 35 26\r",
+ "3 35 27\r",
+ "3 35 28\r",
+ "3 35 29\r",
+ "3 35 30\r",
+ "3 35 31\r",
+ "3 35 32\r",
+ "3 35 33\r",
+ "3 35 34\r",
+ "3 35 35\r",
+ "3 35 36\r",
+ "3 35 37\r",
+ "3 35 38\r",
+ "3 35 39\r",
+ "3 35 40\r",
+ "3 35 41\r",
+ "3 35 42\r",
+ "3 35 43\r",
+ "3 35 44\r",
+ "3 35 45\r",
+ "3 35 46\r",
+ "3 35 47\r",
+ "3 35 48\r",
+ "3 35 49\r",
+ "3 35 50\r",
+ "3 35 51\r",
+ "3 35 52\r",
+ "3 35 53\r",
+ "3 35 54\r",
+ "3 35 55\r",
+ "3 35 56\r",
+ "3 35 57\r",
+ "3 35 58\r",
+ "3 36 1\r",
+ "3 36 2\r",
+ "3 36 3\r",
+ "3 36 4\r",
+ "3 36 5\r",
+ "3 36 6\r",
+ "3 36 7\r",
+ "3 36 8\r",
+ "3 36 9\r",
+ "3 36 10\r",
+ "3 36 11\r",
+ "3 36 12\r",
+ "3 36 13\r",
+ "3 36 14\r",
+ "3 36 15\r",
+ "3 36 16\r",
+ "3 36 17\r",
+ "3 36 18\r",
+ "3 36 19\r",
+ "3 36 20\r",
+ "3 36 21\r",
+ "3 36 22\r",
+ "3 36 23\r",
+ "3 36 24\r",
+ "3 36 25\r",
+ "3 36 26\r",
+ "3 36 27\r",
+ "3 36 28\r",
+ "3 36 29\r",
+ "3 36 30\r",
+ "3 36 31\r",
+ "3 36 32\r",
+ "3 36 33\r",
+ "3 36 34\r",
+ "3 36 35\r",
+ "3 36 36\r",
+ "3 36 37\r",
+ "3 36 38\r",
+ "3 36 39\r",
+ "3 36 40\r",
+ "3 36 41\r",
+ "3 36 42\r",
+ "3 36 43\r",
+ "3 36 44\r",
+ "3 36 45\r",
+ "3 36 46\r",
+ "3 36 47\r",
+ "3 36 48\r",
+ "3 36 49\r",
+ "3 36 50\r",
+ "3 36 51\r",
+ "3 36 52\r",
+ "3 36 53\r",
+ "3 36 54\r",
+ "3 36 55\r",
+ "3 36 56\r",
+ "3 36 57\r",
+ "3 36 58\r",
+ "3 37 1\r",
+ "3 37 2\r",
+ "3 37 3\r",
+ "3 37 4\r",
+ "3 37 5\r",
+ "3 37 6\r",
+ "3 37 7\r",
+ "3 37 8\r",
+ "3 37 9\r",
+ "3 37 10\r",
+ "3 37 11\r",
+ "3 37 12\r",
+ "3 37 13\r",
+ "3 37 14\r",
+ "3 37 15\r",
+ "3 37 16\r",
+ "3 37 17\r",
+ "3 37 18\r",
+ "3 37 19\r",
+ "3 37 20\r",
+ "3 37 21\r",
+ "3 37 22\r",
+ "3 37 23\r",
+ "3 37 24\r",
+ "3 37 25\r",
+ "3 37 26\r",
+ "3 37 27\r",
+ "3 37 28\r",
+ "3 37 29\r",
+ "3 37 30\r",
+ "3 37 31\r",
+ "3 37 32\r",
+ "3 37 33\r",
+ "3 37 34\r",
+ "3 37 35\r",
+ "3 37 36\r",
+ "3 37 37\r",
+ "3 37 38\r",
+ "3 37 39\r",
+ "3 37 40\r",
+ "3 37 41\r",
+ "3 37 42\r",
+ "3 37 43\r",
+ "3 37 44\r",
+ "3 37 45\r",
+ "3 37 46\r",
+ "3 37 47\r",
+ "3 37 48\r",
+ "3 37 49\r",
+ "3 37 50\r",
+ "3 37 51\r",
+ "3 37 52\r",
+ "3 37 53\r",
+ "3 37 54\r",
+ "3 37 55\r",
+ "3 37 56\r",
+ "3 37 57\r",
+ "3 37 58\r",
+ "3 38 1\r",
+ "3 38 2\r",
+ "3 38 3\r",
+ "3 38 4\r",
+ "3 38 5\r",
+ "3 38 6\r",
+ "3 38 7\r",
+ "3 38 8\r",
+ "3 38 9\r",
+ "3 38 10\r",
+ "3 38 11\r",
+ "3 38 12\r",
+ "3 38 13\r",
+ "3 38 14\r",
+ "3 38 15\r",
+ "3 38 16\r",
+ "3 38 17\r",
+ "3 38 18\r",
+ "3 38 19\r",
+ "3 38 20\r",
+ "3 38 21\r",
+ "3 38 22\r",
+ "3 38 23\r",
+ "3 38 24\r",
+ "3 38 25\r",
+ "3 38 26\r",
+ "3 38 27\r",
+ "3 38 28\r",
+ "3 38 29\r",
+ "3 38 30\r",
+ "3 38 31\r",
+ "3 38 32\r",
+ "3 38 33\r",
+ "3 38 34\r",
+ "3 38 35\r",
+ "3 38 36\r",
+ "3 38 37\r",
+ "3 38 38\r",
+ "3 38 39\r",
+ "3 38 40\r",
+ "3 38 41\r",
+ "3 38 42\r",
+ "3 38 43\r",
+ "3 38 44\r",
+ "3 38 45\r",
+ "3 38 46\r",
+ "3 38 47\r",
+ "3 38 48\r",
+ "3 38 49\r",
+ "3 38 50\r",
+ "3 38 51\r",
+ "3 38 52\r",
+ "3 38 53\r",
+ "3 38 54\r",
+ "3 38 55\r",
+ "3 38 56\r",
+ "3 38 57\r",
+ "3 38 58\r",
+ "3 39 1\r",
+ "3 39 2\r",
+ "3 39 3\r",
+ "3 39 4\r",
+ "3 39 5\r",
+ "3 39 6\r",
+ "3 39 7\r",
+ "3 39 8\r",
+ "3 39 9\r",
+ "3 39 10\r",
+ "3 39 11\r",
+ "3 39 12\r",
+ "3 39 13\r",
+ "3 39 14\r",
+ "3 39 15\r",
+ "3 39 16\r",
+ "3 39 17\r",
+ "3 39 18\r",
+ "3 39 19\r",
+ "3 39 20\r",
+ "3 39 21\r",
+ "3 39 22\r",
+ "3 39 23\r",
+ "3 39 24\r",
+ "3 39 25\r",
+ "3 39 26\r",
+ "3 39 27\r",
+ "3 39 28\r",
+ "3 39 29\r",
+ "3 39 30\r",
+ "3 39 31\r",
+ "3 39 32\r",
+ "3 39 33\r",
+ "3 39 34\r",
+ "3 39 35\r",
+ "3 39 36\r",
+ "3 39 37\r",
+ "3 39 38\r",
+ "3 39 39\r",
+ "3 39 40\r",
+ "3 39 41\r",
+ "3 39 42\r",
+ "3 39 43\r",
+ "3 39 44\r",
+ "3 39 45\r",
+ "3 39 46\r",
+ "3 39 47\r",
+ "3 39 48\r",
+ "3 39 49\r",
+ "3 39 50\r",
+ "3 39 51\r",
+ "3 39 52\r",
+ "3 39 53\r",
+ "3 39 54\r",
+ "3 39 55\r",
+ "3 39 56\r",
+ "3 39 57\r",
+ "3 39 58\r",
+ "3 40 1\r",
+ "3 40 2\r",
+ "3 40 3\r",
+ "3 40 4\r",
+ "3 40 5\r",
+ "3 40 6\r",
+ "3 40 7\r",
+ "3 40 8\r",
+ "3 40 9\r",
+ "3 40 10\r",
+ "3 40 11\r",
+ "3 40 12\r",
+ "3 40 13\r",
+ "3 40 14\r",
+ "3 40 15\r",
+ "3 40 16\r",
+ "3 40 17\r",
+ "3 40 18\r",
+ "3 40 19\r",
+ "3 40 20\r",
+ "3 40 21\r",
+ "3 40 22\r",
+ "3 40 23\r",
+ "3 40 24\r",
+ "3 40 25\r",
+ "3 40 26\r",
+ "3 40 27\r",
+ "3 40 28\r",
+ "3 40 29\r",
+ "3 40 30\r",
+ "3 40 31\r",
+ "3 40 32\r",
+ "3 40 33\r",
+ "3 40 34\r",
+ "3 40 35\r",
+ "3 40 36\r",
+ "3 40 37\r",
+ "3 40 38\r",
+ "3 40 39\r",
+ "3 40 40\r",
+ "3 40 41\r",
+ "3 40 42\r",
+ "3 40 43\r",
+ "3 40 44\r",
+ "3 40 45\r",
+ "3 40 46\r",
+ "3 40 47\r",
+ "3 40 48\r",
+ "3 40 49\r",
+ "3 40 50\r",
+ "3 40 51\r",
+ "3 40 52\r",
+ "3 40 53\r",
+ "3 40 54\r",
+ "3 40 55\r",
+ "3 40 56\r",
+ "3 40 57\r",
+ "3 40 58\r",
+ "3 41 1\r",
+ "3 41 2\r",
+ "3 41 3\r",
+ "3 41 4\r",
+ "3 41 5\r",
+ "3 41 6\r",
+ "3 41 7\r",
+ "3 41 8\r",
+ "3 41 9\r",
+ "3 41 10\r",
+ "3 41 11\r",
+ "3 41 12\r",
+ "3 41 13\r",
+ "3 41 14\r",
+ "3 41 15\r",
+ "3 41 16\r",
+ "3 41 17\r",
+ "3 41 18\r",
+ "3 41 19\r",
+ "3 41 20\r",
+ "3 41 21\r",
+ "3 41 22\r",
+ "3 41 23\r",
+ "3 41 24\r",
+ "3 41 25\r",
+ "3 41 26\r",
+ "3 41 27\r",
+ "3 41 28\r",
+ "3 41 29\r",
+ "3 41 30\r",
+ "3 41 31\r",
+ "3 41 32\r",
+ "3 41 33\r",
+ "3 41 34\r",
+ "3 41 35\r",
+ "3 41 36\r",
+ "3 41 37\r",
+ "3 41 38\r",
+ "3 41 39\r",
+ "3 41 40\r",
+ "3 41 41\r",
+ "3 41 42\r",
+ "3 41 43\r",
+ "3 41 44\r",
+ "3 41 45\r",
+ "3 41 46\r",
+ "3 41 47\r",
+ "3 41 48\r",
+ "3 41 49\r",
+ "3 41 50\r",
+ "3 41 51\r",
+ "3 41 52\r",
+ "3 41 53\r",
+ "3 41 54\r",
+ "3 41 55\r",
+ "3 41 56\r",
+ "3 41 57\r",
+ "3 41 58\r",
+ "3 42 1\r",
+ "3 42 2\r",
+ "3 42 3\r",
+ "3 42 4\r",
+ "3 42 5\r",
+ "3 42 6\r",
+ "3 42 7\r",
+ "3 42 8\r",
+ "3 42 9\r",
+ "3 42 10\r",
+ "3 42 11\r",
+ "3 42 12\r",
+ "3 42 13\r",
+ "3 42 14\r",
+ "3 42 15\r",
+ "3 42 16\r",
+ "3 42 17\r",
+ "3 42 18\r",
+ "3 42 19\r",
+ "3 42 20\r",
+ "3 42 21\r",
+ "3 42 22\r",
+ "3 42 23\r",
+ "3 42 24\r",
+ "3 42 25\r",
+ "3 42 26\r",
+ "3 42 27\r",
+ "3 42 28\r",
+ "3 42 29\r",
+ "3 42 30\r",
+ "3 42 31\r",
+ "3 42 32\r",
+ "3 42 33\r",
+ "3 42 34\r",
+ "3 42 35\r",
+ "3 42 36\r",
+ "3 42 37\r",
+ "3 42 38\r",
+ "3 42 39\r",
+ "3 42 40\r",
+ "3 42 41\r",
+ "3 42 42\r",
+ "3 42 43\r",
+ "3 42 44\r",
+ "3 42 45\r",
+ "3 42 46\r",
+ "3 42 47\r",
+ "3 42 48\r",
+ "3 42 49\r",
+ "3 42 50\r",
+ "3 42 51\r",
+ "3 42 52\r",
+ "3 42 53\r",
+ "3 42 54\r",
+ "3 42 55\r",
+ "3 42 56\r",
+ "3 42 57\r",
+ "3 42 58\r",
+ "3 43 1\r",
+ "3 43 2\r",
+ "3 43 3\r",
+ "3 43 4\r",
+ "3 43 5\r",
+ "3 43 6\r",
+ "3 43 7\r",
+ "3 43 8\r",
+ "3 43 9\r",
+ "3 43 10\r",
+ "3 43 11\r",
+ "3 43 12\r",
+ "3 43 13\r",
+ "3 43 14\r",
+ "3 43 15\r",
+ "3 43 16\r",
+ "3 43 17\r",
+ "3 43 18\r",
+ "3 43 19\r",
+ "3 43 20\r",
+ "3 43 21\r",
+ "3 43 22\r",
+ "3 43 23\r",
+ "3 43 24\r",
+ "3 43 25\r",
+ "3 43 26\r",
+ "3 43 27\r",
+ "3 43 28\r",
+ "3 43 29\r",
+ "3 43 30\r",
+ "3 43 31\r",
+ "3 43 32\r",
+ "3 43 33\r",
+ "3 43 34\r",
+ "3 43 35\r",
+ "3 43 36\r",
+ "3 43 37\r",
+ "3 43 38\r",
+ "3 43 39\r",
+ "3 43 40\r",
+ "3 43 41\r",
+ "3 43 42\r",
+ "3 43 43\r",
+ "3 43 44\r",
+ "3 43 45\r",
+ "3 43 46\r",
+ "3 43 47\r",
+ "3 43 48\r",
+ "3 43 49\r",
+ "3 43 50\r",
+ "3 43 51\r",
+ "3 43 52\r",
+ "3 43 53\r",
+ "3 43 54\r",
+ "3 43 55\r",
+ "3 43 56\r",
+ "3 43 57\r",
+ "3 43 58\r",
+ "3 44 1\r",
+ "3 44 2\r",
+ "3 44 3\r",
+ "3 44 4\r",
+ "3 44 5\r",
+ "3 44 6\r",
+ "3 44 7\r",
+ "3 44 8\r",
+ "3 44 9\r",
+ "3 44 10\r",
+ "3 44 11\r",
+ "3 44 12\r",
+ "3 44 13\r",
+ "3 44 14\r",
+ "3 44 15\r",
+ "3 44 16\r",
+ "3 44 17\r",
+ "3 44 18\r",
+ "3 44 19\r",
+ "3 44 20\r",
+ "3 44 21\r",
+ "3 44 22\r",
+ "3 44 23\r",
+ "3 44 24\r",
+ "3 44 25\r",
+ "3 44 26\r",
+ "3 44 27\r",
+ "3 44 28\r",
+ "3 44 29\r",
+ "3 44 30\r",
+ "3 44 31\r",
+ "3 44 32\r",
+ "3 44 33\r",
+ "3 44 34\r",
+ "3 44 35\r",
+ "3 44 36\r",
+ "3 44 37\r",
+ "3 44 38\r",
+ "3 44 39\r",
+ "3 44 40\r",
+ "3 44 41\r",
+ "3 44 42\r",
+ "3 44 43\r",
+ "3 44 44\r",
+ "3 44 45\r",
+ "3 44 46\r",
+ "3 44 47\r",
+ "3 44 48\r",
+ "3 44 49\r",
+ "3 44 50\r",
+ "3 44 51\r",
+ "3 44 52\r",
+ "3 44 53\r",
+ "3 44 54\r",
+ "3 44 55\r",
+ "3 44 56\r",
+ "3 44 57\r",
+ "3 44 58\r",
+ "3 45 1\r",
+ "3 45 2\r",
+ "3 45 3\r",
+ "3 45 4\r",
+ "3 45 5\r",
+ "3 45 6\r",
+ "3 45 7\r",
+ "3 45 8\r",
+ "3 45 9\r",
+ "3 45 10\r",
+ "3 45 11\r",
+ "3 45 12\r",
+ "3 45 13\r",
+ "3 45 14\r",
+ "3 45 15\r",
+ "3 45 16\r",
+ "3 45 17\r",
+ "3 45 18\r",
+ "3 45 19\r",
+ "3 45 20\r",
+ "3 45 21\r",
+ "3 45 22\r",
+ "3 45 23\r",
+ "3 45 24\r",
+ "3 45 25\r",
+ "3 45 26\r",
+ "3 45 27\r",
+ "3 45 28\r",
+ "3 45 29\r",
+ "3 45 30\r",
+ "3 45 31\r",
+ "3 45 32\r",
+ "3 45 33\r",
+ "3 45 34\r",
+ "3 45 35\r",
+ "3 45 36\r",
+ "3 45 37\r",
+ "3 45 38\r",
+ "3 45 39\r",
+ "3 45 40\r",
+ "3 45 41\r",
+ "3 45 42\r",
+ "3 45 43\r",
+ "3 45 44\r",
+ "3 45 45\r",
+ "3 45 46\r",
+ "3 45 47\r",
+ "3 45 48\r",
+ "3 45 49\r",
+ "3 45 50\r",
+ "3 45 51\r",
+ "3 45 52\r",
+ "3 45 53\r",
+ "3 45 54\r",
+ "3 45 55\r",
+ "3 45 56\r",
+ "3 45 57\r",
+ "3 45 58\r",
+ "3 46 1\r",
+ "3 46 2\r",
+ "3 46 3\r",
+ "3 46 4\r",
+ "3 46 5\r",
+ "3 46 6\r",
+ "3 46 7\r",
+ "3 46 8\r",
+ "3 46 9\r",
+ "3 46 10\r",
+ "3 46 11\r",
+ "3 46 12\r",
+ "3 46 13\r",
+ "3 46 14\r",
+ "3 46 15\r",
+ "3 46 16\r",
+ "3 46 17\r",
+ "3 46 18\r",
+ "3 46 19\r",
+ "3 46 20\r",
+ "3 46 21\r",
+ "3 46 22\r",
+ "3 46 23\r",
+ "3 46 24\r",
+ "3 46 25\r",
+ "3 46 26\r",
+ "3 46 27\r",
+ "3 46 28\r",
+ "3 46 29\r",
+ "3 46 30\r",
+ "3 46 31\r",
+ "3 46 32\r",
+ "3 46 33\r",
+ "3 46 34\r",
+ "3 46 35\r",
+ "3 46 36\r",
+ "3 46 37\r",
+ "3 46 38\r",
+ "3 46 39\r",
+ "3 46 40\r",
+ "3 46 41\r",
+ "3 46 42\r",
+ "3 46 43\r",
+ "3 46 44\r",
+ "3 46 45\r",
+ "3 46 46\r",
+ "3 46 47\r",
+ "3 46 48\r",
+ "3 46 49\r",
+ "3 46 50\r",
+ "3 46 51\r",
+ "3 46 52\r",
+ "3 46 53\r",
+ "3 46 54\r",
+ "3 46 55\r",
+ "3 46 56\r",
+ "3 46 57\r",
+ "3 46 58\r",
+ "3 47 1\r",
+ "3 47 2\r",
+ "3 47 3\r",
+ "3 47 4\r",
+ "3 47 5\r",
+ "3 47 6\r",
+ "3 47 7\r",
+ "3 47 8\r",
+ "3 47 9\r",
+ "3 47 10\r",
+ "3 47 11\r",
+ "3 47 12\r",
+ "3 47 13\r",
+ "3 47 14\r",
+ "3 47 15\r",
+ "3 47 16\r",
+ "3 47 17\r",
+ "3 47 18\r",
+ "3 47 19\r",
+ "3 47 20\r",
+ "3 47 21\r",
+ "3 47 22\r",
+ "3 47 23\r",
+ "3 47 24\r",
+ "3 47 25\r",
+ "3 47 26\r",
+ "3 47 27\r",
+ "3 47 28\r",
+ "3 47 29\r",
+ "3 47 30\r",
+ "3 47 31\r",
+ "3 47 32\r",
+ "3 47 33\r",
+ "3 47 34\r",
+ "3 47 35\r",
+ "3 47 36\r",
+ "3 47 37\r",
+ "3 47 38\r",
+ "3 47 39\r",
+ "3 47 40\r",
+ "3 47 41\r",
+ "3 47 42\r",
+ "3 47 43\r",
+ "3 47 44\r",
+ "3 47 45\r",
+ "3 47 46\r",
+ "3 47 47\r",
+ "3 47 48\r",
+ "3 47 49\r",
+ "3 47 50\r",
+ "3 47 51\r",
+ "3 47 52\r",
+ "3 47 53\r",
+ "3 47 54\r",
+ "3 47 55\r",
+ "3 47 56\r",
+ "3 47 57\r",
+ "3 47 58\r",
+ "3 48 1\r",
+ "3 48 2\r",
+ "3 48 3\r",
+ "3 48 4\r",
+ "3 48 5\r",
+ "3 48 6\r",
+ "3 48 7\r",
+ "3 48 8\r",
+ "3 48 9\r",
+ "3 48 10\r",
+ "3 48 11\r",
+ "3 48 12\r",
+ "3 48 13\r",
+ "3 48 14\r",
+ "3 48 15\r",
+ "3 48 16\r",
+ "3 48 17\r",
+ "3 48 18\r",
+ "3 48 19\r",
+ "3 48 20\r",
+ "3 48 21\r",
+ "3 48 22\r",
+ "3 48 23\r",
+ "3 48 24\r",
+ "3 48 25\r",
+ "3 48 26\r",
+ "3 48 27\r",
+ "3 48 28\r",
+ "3 48 29\r",
+ "3 48 30\r",
+ "3 48 31\r",
+ "3 48 32\r",
+ "3 48 33\r",
+ "3 48 34\r",
+ "3 48 35\r",
+ "3 48 36\r",
+ "3 48 37\r",
+ "3 48 38\r",
+ "3 48 39\r",
+ "3 48 40\r",
+ "3 48 41\r",
+ "3 48 42\r",
+ "3 48 43\r",
+ "3 48 44\r",
+ "3 48 45\r",
+ "3 48 46\r",
+ "3 48 47\r",
+ "3 48 48\r",
+ "3 48 49\r",
+ "3 48 50\r",
+ "3 48 51\r",
+ "3 48 52\r",
+ "3 48 53\r",
+ "3 48 54\r",
+ "3 48 55\r",
+ "3 48 56\r",
+ "3 48 57\r",
+ "3 48 58\r",
+ "3 49 1\r",
+ "3 49 2\r",
+ "3 49 3\r",
+ "3 49 4\r",
+ "3 49 5\r",
+ "3 49 6\r",
+ "3 49 7\r",
+ "3 49 8\r",
+ "3 49 9\r",
+ "3 49 10\r",
+ "3 49 11\r",
+ "3 49 12\r",
+ "3 49 13\r",
+ "3 49 14\r",
+ "3 49 15\r",
+ "3 49 16\r",
+ "3 49 17\r",
+ "3 49 18\r",
+ "3 49 19\r",
+ "3 49 20\r",
+ "3 49 21\r",
+ "3 49 22\r",
+ "3 49 23\r",
+ "3 49 24\r",
+ "3 49 25\r",
+ "3 49 26\r",
+ "3 49 27\r",
+ "3 49 28\r",
+ "3 49 29\r",
+ "3 49 30\r",
+ "3 49 31\r",
+ "3 49 32\r",
+ "3 49 33\r",
+ "3 49 34\r",
+ "3 49 35\r",
+ "3 49 36\r",
+ "3 49 37\r",
+ "3 49 38\r",
+ "3 49 39\r",
+ "3 49 40\r",
+ "3 49 41\r",
+ "3 49 42\r",
+ "3 49 43\r",
+ "3 49 44\r",
+ "3 49 45\r",
+ "3 49 46\r",
+ "3 49 47\r",
+ "3 49 48\r",
+ "3 49 49\r",
+ "3 49 50\r",
+ "3 49 51\r",
+ "3 49 52\r",
+ "3 49 53\r",
+ "3 49 54\r",
+ "3 49 55\r",
+ "3 49 56\r",
+ "3 49 57\r",
+ "3 49 58\r",
+ "3 50 1\r",
+ "3 50 2\r",
+ "3 50 3\r",
+ "3 50 4\r",
+ "3 50 5\r",
+ "3 50 6\r",
+ "3 50 7\r",
+ "3 50 8\r",
+ "3 50 9\r",
+ "3 50 10\r",
+ "3 50 11\r",
+ "3 50 12\r",
+ "3 50 13\r",
+ "3 50 14\r",
+ "3 50 15\r",
+ "3 50 16\r",
+ "3 50 17\r",
+ "3 50 18\r",
+ "3 50 19\r",
+ "3 50 20\r",
+ "3 50 21\r",
+ "3 50 22\r",
+ "3 50 23\r",
+ "3 50 24\r",
+ "3 50 25\r",
+ "3 50 26\r",
+ "3 50 27\r",
+ "3 50 28\r",
+ "3 50 29\r",
+ "3 50 30\r",
+ "3 50 31\r",
+ "3 50 32\r",
+ "3 50 33\r",
+ "3 50 34\r",
+ "3 50 35\r",
+ "3 50 36\r",
+ "3 50 37\r",
+ "3 50 38\r",
+ "3 50 39\r",
+ "3 50 40\r",
+ "3 50 41\r",
+ "3 50 42\r",
+ "3 50 43"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\r",
+ "3 50 44\r",
+ "3 50 45\r",
+ "3 50 46\r",
+ "3 50 47\r",
+ "3 50 48\r",
+ "3 50 49\r",
+ "3 50 50\r",
+ "3 50 51\r",
+ "3 50 52\r",
+ "3 50 53\r",
+ "3 50 54\r",
+ "3 50 55\r",
+ "3 50 56\r",
+ "3 50 57\r",
+ "3 50 58\r",
+ "3 51 1\r",
+ "3 51 2\r",
+ "3 51 3\r",
+ "3 51 4\r",
+ "3 51 5\r",
+ "3 51 6\r",
+ "3 51 7\r",
+ "3 51 8\r",
+ "3 51 9\r",
+ "3 51 10\r",
+ "3 51 11\r",
+ "3 51 12\r",
+ "3 51 13\r",
+ "3 51 14\r",
+ "3 51 15\r",
+ "3 51 16\r",
+ "3 51 17\r",
+ "3 51 18\r",
+ "3 51 19\r",
+ "3 51 20\r",
+ "3 51 21\r",
+ "3 51 22\r",
+ "3 51 23\r",
+ "3 51 24\r",
+ "3 51 25\r",
+ "3 51 26\r",
+ "3 51 27\r",
+ "3 51 28\r",
+ "3 51 29\r",
+ "3 51 30\r",
+ "3 51 31\r",
+ "3 51 32\r",
+ "3 51 33\r",
+ "3 51 34\r",
+ "3 51 35\r",
+ "3 51 36\r",
+ "3 51 37\r",
+ "3 51 38\r",
+ "3 51 39\r",
+ "3 51 40\r",
+ "3 51 41\r",
+ "3 51 42\r",
+ "3 51 43\r",
+ "3 51 44\r",
+ "3 51 45\r",
+ "3 51 46\r",
+ "3 51 47\r",
+ "3 51 48\r",
+ "3 51 49\r",
+ "3 51 50\r",
+ "3 51 51\r",
+ "3 51 52\r",
+ "3 51 53\r",
+ "3 51 54\r",
+ "3 51 55\r",
+ "3 51 56\r",
+ "3 51 57\r",
+ "3 51 58\r",
+ "3 52 1\r",
+ "3 52 2\r",
+ "3 52 3\r",
+ "3 52 4\r",
+ "3 52 5\r",
+ "3 52 6\r",
+ "3 52 7\r",
+ "3 52 8\r",
+ "3 52 9\r",
+ "3 52 10\r",
+ "3 52 11\r",
+ "3 52 12\r",
+ "3 52 13\r",
+ "3 52 14\r",
+ "3 52 15\r",
+ "3 52 16\r",
+ "3 52 17\r",
+ "3 52 18\r",
+ "3 52 19\r",
+ "3 52 20\r",
+ "3 52 21\r",
+ "3 52 22\r",
+ "3 52 23\r",
+ "3 52 24\r",
+ "3 52 25\r",
+ "3 52 26\r",
+ "3 52 27\r",
+ "3 52 28\r",
+ "3 52 29\r",
+ "3 52 30\r",
+ "3 52 31\r",
+ "3 52 32\r",
+ "3 52 33\r",
+ "3 52 34\r",
+ "3 52 35\r",
+ "3 52 36\r",
+ "3 52 37\r",
+ "3 52 38\r",
+ "3 52 39\r",
+ "3 52 40\r",
+ "3 52 41\r",
+ "3 52 42\r",
+ "3 52 43\r",
+ "3 52 44\r",
+ "3 52 45\r",
+ "3 52 46\r",
+ "3 52 47\r",
+ "3 52 48\r",
+ "3 52 49\r",
+ "3 52 50\r",
+ "3 52 51\r",
+ "3 52 52\r",
+ "3 52 53\r",
+ "3 52 54\r",
+ "3 52 55\r",
+ "3 52 56\r",
+ "3 52 57\r",
+ "3 52 58\r",
+ "3 53 1\r",
+ "3 53 2\r",
+ "3 53 3\r",
+ "3 53 4\r",
+ "3 53 5\r",
+ "3 53 6\r",
+ "3 53 7\r",
+ "3 53 8\r",
+ "3 53 9\r",
+ "3 53 10\r",
+ "3 53 11\r",
+ "3 53 12\r",
+ "3 53 13\r",
+ "3 53 14\r",
+ "3 53 15\r",
+ "3 53 16\r",
+ "3 53 17\r",
+ "3 53 18\r",
+ "3 53 19\r",
+ "3 53 20\r",
+ "3 53 21\r",
+ "3 53 22\r",
+ "3 53 23\r",
+ "3 53 24\r",
+ "3 53 25\r",
+ "3 53 26\r",
+ "3 53 27\r",
+ "3 53 28\r",
+ "3 53 29\r",
+ "3 53 30\r",
+ "3 53 31\r",
+ "3 53 32\r",
+ "3 53 33\r",
+ "3 53 34\r",
+ "3 53 35\r",
+ "3 53 36\r",
+ "3 53 37\r",
+ "3 53 38\r",
+ "3 53 39\r",
+ "3 53 40\r",
+ "3 53 41\r",
+ "3 53 42\r",
+ "3 53 43\r",
+ "3 53 44\r",
+ "3 53 45\r",
+ "3 53 46\r",
+ "3 53 47\r",
+ "3 53 48\r",
+ "3 53 49\r",
+ "3 53 50\r",
+ "3 53 51\r",
+ "3 53 52\r",
+ "3 53 53\r",
+ "3 53 54\r",
+ "3 53 55\r",
+ "3 53 56\r",
+ "3 53 57\r",
+ "3 53 58\r",
+ "3 54 1\r",
+ "3 54 2\r",
+ "3 54 3\r",
+ "3 54 4\r",
+ "3 54 5\r",
+ "3 54 6\r",
+ "3 54 7\r",
+ "3 54 8\r",
+ "3 54 9\r",
+ "3 54 10\r",
+ "3 54 11\r",
+ "3 54 12\r",
+ "3 54 13\r",
+ "3 54 14\r",
+ "3 54 15\r",
+ "3 54 16\r",
+ "3 54 17\r",
+ "3 54 18\r",
+ "3 54 19\r",
+ "3 54 20\r",
+ "3 54 21\r",
+ "3 54 22\r",
+ "3 54 23\r",
+ "3 54 24\r",
+ "3 54 25\r",
+ "3 54 26\r",
+ "3 54 27\r",
+ "3 54 28\r",
+ "3 54 29\r",
+ "3 54 30\r",
+ "3 54 31\r",
+ "3 54 32\r",
+ "3 54 33\r",
+ "3 54 34\r",
+ "3 54 35\r",
+ "3 54 36\r",
+ "3 54 37\r",
+ "3 54 38\r",
+ "3 54 39\r",
+ "3 54 40\r",
+ "3 54 41\r",
+ "3 54 42\r",
+ "3 54 43\r",
+ "3 54 44\r",
+ "3 54 45\r",
+ "3 54 46\r",
+ "3 54 47\r",
+ "3 54 48\r",
+ "3 54 49\r",
+ "3 54 50\r",
+ "3 54 51\r",
+ "3 54 52\r",
+ "3 54 53\r",
+ "3 54 54\r",
+ "3 54 55\r",
+ "3 54 56\r",
+ "3 54 57\r",
+ "3 54 58\r",
+ "3 55 1\r",
+ "3 55 2\r",
+ "3 55 3\r",
+ "3 55 4\r",
+ "3 55 5\r",
+ "3 55 6\r",
+ "3 55 7\r",
+ "3 55 8\r",
+ "3 55 9\r",
+ "3 55 10\r",
+ "3 55 11\r",
+ "3 55 12\r",
+ "3 55 13\r",
+ "3 55 14\r",
+ "3 55 15\r",
+ "3 55 16\r",
+ "3 55 17\r",
+ "3 55 18\r",
+ "3 55 19\r",
+ "3 55 20\r",
+ "3 55 21\r",
+ "3 55 22\r",
+ "3 55 23\r",
+ "3 55 24\r",
+ "3 55 25\r",
+ "3 55 26\r",
+ "3 55 27\r",
+ "3 55 28\r",
+ "3 55 29\r",
+ "3 55 30\r",
+ "3 55 31\r",
+ "3 55 32\r",
+ "3 55 33\r",
+ "3 55 34\r",
+ "3 55 35\r",
+ "3 55 36\r",
+ "3 55 37\r",
+ "3 55 38\r",
+ "3 55 39\r",
+ "3 55 40\r",
+ "3 55 41\r",
+ "3 55 42\r",
+ "3 55 43\r",
+ "3 55 44\r",
+ "3 55 45\r",
+ "3 55 46\r",
+ "3 55 47\r",
+ "3 55 48\r",
+ "3 55 49\r",
+ "3 55 50\r",
+ "3 55 51\r",
+ "3 55 52\r",
+ "3 55 53\r",
+ "3 55 54\r",
+ "3 55 55\r",
+ "3 55 56\r",
+ "3 55 57\r",
+ "3 55 58\r",
+ "3 56 1\r",
+ "3 56 2\r",
+ "3 56 3\r",
+ "3 56 4\r",
+ "3 56 5\r",
+ "3 56 6\r",
+ "3 56 7\r",
+ "3 56 8\r",
+ "3 56 9\r",
+ "3 56 10\r",
+ "3 56 11\r",
+ "3 56 12\r",
+ "3 56 13\r",
+ "3 56 14\r",
+ "3 56 15\r",
+ "3 56 16\r",
+ "3 56 17\r",
+ "3 56 18\r",
+ "3 56 19\r",
+ "3 56 20\r",
+ "3 56 21\r",
+ "3 56 22\r",
+ "3 56 23\r",
+ "3 56 24\r",
+ "3 56 25\r",
+ "3 56 26\r",
+ "3 56 27\r",
+ "3 56 28\r",
+ "3 56 29\r",
+ "3 56 30\r",
+ "3 56 31\r",
+ "3 56 32\r",
+ "3 56 33\r",
+ "3 56 34\r",
+ "3 56 35\r",
+ "3 56 36\r",
+ "3 56 37\r",
+ "3 56 38\r",
+ "3 56 39\r",
+ "3 56 40\r",
+ "3 56 41\r",
+ "3 56 42\r",
+ "3 56 43\r",
+ "3 56 44\r",
+ "3 56 45\r",
+ "3 56 46\r",
+ "3 56 47\r",
+ "3 56 48\r",
+ "3 56 49\r",
+ "3 56 50\r",
+ "3 56 51\r",
+ "3 56 52\r",
+ "3 56 53\r",
+ "3 56 54\r",
+ "3 56 55\r",
+ "3 56 56\r",
+ "3 56 57\r",
+ "3 56 58\r",
+ "3 57 1\r",
+ "3 57 2\r",
+ "3 57 3\r",
+ "3 57 4\r",
+ "3 57 5\r",
+ "3 57 6\r",
+ "3 57 7\r",
+ "3 57 8\r",
+ "3 57 9\r",
+ "3 57 10\r",
+ "3 57 11\r",
+ "3 57 12\r",
+ "3 57 13\r",
+ "3 57 14\r",
+ "3 57 15\r",
+ "3 57 16\r",
+ "3 57 17\r",
+ "3 57 18\r",
+ "3 57 19\r",
+ "3 57 20\r",
+ "3 57 21\r",
+ "3 57 22\r",
+ "3 57 23\r",
+ "3 57 24\r",
+ "3 57 25\r",
+ "3 57 26\r",
+ "3 57 27\r",
+ "3 57 28\r",
+ "3 57 29\r",
+ "3 57 30\r",
+ "3 57 31\r",
+ "3 57 32\r",
+ "3 57 33\r",
+ "3 57 34\r",
+ "3 57 35\r",
+ "3 57 36\r",
+ "3 57 37\r",
+ "3 57 38\r",
+ "3 57 39\r",
+ "3 57 40\r",
+ "3 57 41\r",
+ "3 57 42\r",
+ "3 57 43\r",
+ "3 57 44\r",
+ "3 57 45\r",
+ "3 57 46\r",
+ "3 57 47\r",
+ "3 57 48\r",
+ "3 57 49\r",
+ "3 57 50\r",
+ "3 57 51\r",
+ "3 57 52\r",
+ "3 57 53\r",
+ "3 57 54\r",
+ "3 57 55\r",
+ "3 57 56\r",
+ "3 57 57\r",
+ "3 57 58\r",
+ "3 58 1\r",
+ "3 58 2\r",
+ "3 58 3\r",
+ "3 58 4\r",
+ "3 58 5\r",
+ "3 58 6\r",
+ "3 58 7\r",
+ "3 58 8\r",
+ "3 58 9\r",
+ "3 58 10\r",
+ "3 58 11\r",
+ "3 58 12\r",
+ "3 58 13\r",
+ "3 58 14\r",
+ "3 58 15\r",
+ "3 58 16\r",
+ "3 58 17\r",
+ "3 58 18\r",
+ "3 58 19\r",
+ "3 58 20\r",
+ "3 58 21\r",
+ "3 58 22\r",
+ "3 58 23\r",
+ "3 58 24\r",
+ "3 58 25\r",
+ "3 58 26\r",
+ "3 58 27\r",
+ "3 58 28\r",
+ "3 58 29\r",
+ "3 58 30\r",
+ "3 58 31\r",
+ "3 58 32\r",
+ "3 58 33\r",
+ "3 58 34\r",
+ "3 58 35\r",
+ "3 58 36\r",
+ "3 58 37\r",
+ "3 58 38\r",
+ "3 58 39\r",
+ "3 58 40\r",
+ "3 58 41\r",
+ "3 58 42\r",
+ "3 58 43\r",
+ "3 58 44\r",
+ "3 58 45\r",
+ "3 58 46\r",
+ "3 58 47\r",
+ "3 58 48\r",
+ "3 58 49\r",
+ "3 58 50\r",
+ "3 58 51\r",
+ "3 58 52\r",
+ "3 58 53\r",
+ "3 58 54\r",
+ "3 58 55\r",
+ "3 58 56\r",
+ "3 58 57\r",
+ "3 58 58\r",
+ "4 1 1\r",
+ "4 1 2\r",
+ "4 1 3\r",
+ "4 1 4\r",
+ "4 1 5\r",
+ "4 1 6\r",
+ "4 1 7\r",
+ "4 1 8\r",
+ "4 1 9\r",
+ "4 1 10\r",
+ "4 1 11\r",
+ "4 1 12\r",
+ "4 1 13\r",
+ "4 1 14\r",
+ "4 1 15\r",
+ "4 1 16\r",
+ "4 1 17\r",
+ "4 1 18\r",
+ "4 1 19\r",
+ "4 1 20\r",
+ "4 1 21\r",
+ "4 1 22\r",
+ "4 1 23\r",
+ "4 1 24\r",
+ "4 1 25\r",
+ "4 1 26\r",
+ "4 1 27\r",
+ "4 1 28\r",
+ "4 1 29\r",
+ "4 1 30\r",
+ "4 1 31\r",
+ "4 1 32\r",
+ "4 1 33\r",
+ "4 1 34\r",
+ "4 1 35\r",
+ "4 1 36\r",
+ "4 1 37\r",
+ "4 1 38\r",
+ "4 1 39\r",
+ "4 1 40\r",
+ "4 1 41\r",
+ "4 1 42\r",
+ "4 1 43\r",
+ "4 1 44\r",
+ "4 1 45\r",
+ "4 1 46\r",
+ "4 1 47\r",
+ "4 1 48\r",
+ "4 1 49\r",
+ "4 1 50\r",
+ "4 1 51\r",
+ "4 1 52\r",
+ "4 1 53\r",
+ "4 1 54\r",
+ "4 1 55\r",
+ "4 1 56\r",
+ "4 1 57\r",
+ "4 1 58\r",
+ "4 2 1\r",
+ "4 2 2\r",
+ "4 2 3\r",
+ "4 2 4\r",
+ "4 2 5\r",
+ "4 2 6\r",
+ "4 2 7\r",
+ "4 2 8\r",
+ "4 2 9\r",
+ "4 2 10\r",
+ "4 2 11\r",
+ "4 2 12\r",
+ "4 2 13\r",
+ "4 2 14\r",
+ "4 2 15\r",
+ "4 2 16\r",
+ "4 2 17\r",
+ "4 2 18\r",
+ "4 2 19\r",
+ "4 2 20\r",
+ "4 2 21\r",
+ "4 2 22\r",
+ "4 2 23\r",
+ "4 2 24\r",
+ "4 2 25\r",
+ "4 2 26\r",
+ "4 2 27\r",
+ "4 2 28\r",
+ "4 2 29\r",
+ "4 2 30\r",
+ "4 2 31\r",
+ "4 2 32\r",
+ "4 2 33\r",
+ "4 2 34\r",
+ "4 2 35\r",
+ "4 2 36\r",
+ "4 2 37\r",
+ "4 2 38\r",
+ "4 2 39\r",
+ "4 2 40\r",
+ "4 2 41\r",
+ "4 2 42\r",
+ "4 2 43\r",
+ "4 2 44\r",
+ "4 2 45\r",
+ "4 2 46\r",
+ "4 2 47\r",
+ "4 2 48\r",
+ "4 2 49\r",
+ "4 2 50\r",
+ "4 2 51\r",
+ "4 2 52\r",
+ "4 2 53\r",
+ "4 2 54\r",
+ "4 2 55\r",
+ "4 2 56\r",
+ "4 2 57\r",
+ "4 2 58\r",
+ "4 3 1\r",
+ "4 3 2\r",
+ "4 3 3\r",
+ "4 3 4\r",
+ "4 3 5\r",
+ "4 3 6\r",
+ "4 3 7\r",
+ "4 3 8\r",
+ "4 3 9\r",
+ "4 3 10\r",
+ "4 3 11\r",
+ "4 3 12\r",
+ "4 3 13\r",
+ "4 3 14\r",
+ "4 3 15\r",
+ "4 3 16\r",
+ "4 3 17\r",
+ "4 3 18\r",
+ "4 3 19\r",
+ "4 3 20\r",
+ "4 3 21\r",
+ "4 3 22\r",
+ "4 3 23\r",
+ "4 3 24\r",
+ "4 3 25\r",
+ "4 3 26\r",
+ "4 3 27\r",
+ "4 3 28\r",
+ "4 3 29\r",
+ "4 3 30\r",
+ "4 3 31\r",
+ "4 3 32\r",
+ "4 3 33\r",
+ "4 3 34\r",
+ "4 3 35\r",
+ "4 3 36\r",
+ "4 3 37\r",
+ "4 3 38\r",
+ "4 3 39\r",
+ "4 3 40\r",
+ "4 3 41\r",
+ "4 3 42\r",
+ "4 3 43\r",
+ "4 3 44\r",
+ "4 3 45\r",
+ "4 3 46\r",
+ "4 3 47\r",
+ "4 3 48\r",
+ "4 3 49\r",
+ "4 3 50\r",
+ "4 3 51\r",
+ "4 3 52\r",
+ "4 3 53\r",
+ "4 3 54\r",
+ "4 3 55\r",
+ "4 3 56\r",
+ "4 3 57\r",
+ "4 3 58\r",
+ "4 4 1\r",
+ "4 4 2\r",
+ "4 4 3\r",
+ "4 4 4\r",
+ "4 4 5\r",
+ "4 4 6\r",
+ "4 4 7\r",
+ "4 4 8\r",
+ "4 4 9\r",
+ "4 4 10\r",
+ "4 4 11\r",
+ "4 4 12\r",
+ "4 4 13\r",
+ "4 4 14\r",
+ "4 4 15\r",
+ "4 4 16\r",
+ "4 4 17\r",
+ "4 4 18\r",
+ "4 4 19\r",
+ "4 4 20\r",
+ "4 4 21\r",
+ "4 4 22\r",
+ "4 4 23\r",
+ "4 4 24\r",
+ "4 4 25\r",
+ "4 4 26\r",
+ "4 4 27\r",
+ "4 4 28\r",
+ "4 4 29\r",
+ "4 4 30\r",
+ "4 4 31\r",
+ "4 4 32\r",
+ "4 4 33\r",
+ "4 4 34\r",
+ "4 4 35\r",
+ "4 4 36\r",
+ "4 4 37\r",
+ "4 4 38\r",
+ "4 4 39\r",
+ "4 4 40\r",
+ "4 4 41\r",
+ "4 4 42\r",
+ "4 4 43\r",
+ "4 4 44\r",
+ "4 4 45\r",
+ "4 4 46\r",
+ "4 4 47\r",
+ "4 4 48\r",
+ "4 4 49\r",
+ "4 4 50\r",
+ "4 4 51\r",
+ "4 4 52\r",
+ "4 4 53\r",
+ "4 4 54\r",
+ "4 4 55\r",
+ "4 4 56\r",
+ "4 4 57\r",
+ "4 4 58\r",
+ "4 5 1\r",
+ "4 5 2\r",
+ "4 5 3\r",
+ "4 5 4\r",
+ "4 5 5\r",
+ "4 5 6\r",
+ "4 5 7\r",
+ "4 5 8\r",
+ "4 5 9\r",
+ "4 5 10\r",
+ "4 5 11\r",
+ "4 5 12\r",
+ "4 5 13\r",
+ "4 5 14\r",
+ "4 5 15\r",
+ "4 5 16\r",
+ "4 5 17\r",
+ "4 5 18\r",
+ "4 5 19\r",
+ "4 5 20\r",
+ "4 5 21\r",
+ "4 5 22\r",
+ "4 5 23\r",
+ "4 5 24\r",
+ "4 5 25\r",
+ "4 5 26\r",
+ "4 5 27\r",
+ "4 5 28\r",
+ "4 5 29\r",
+ "4 5 30\r",
+ "4 5 31\r",
+ "4 5 32\r",
+ "4 5 33\r",
+ "4 5 34\r",
+ "4 5 35\r",
+ "4 5 36\r",
+ "4 5 37\r",
+ "4 5 38\r",
+ "4 5 39\r",
+ "4 5 40\r",
+ "4 5 41\r",
+ "4 5 42\r",
+ "4 5 43\r",
+ "4 5 44\r",
+ "4 5 45\r",
+ "4 5 46\r",
+ "4 5 47\r",
+ "4 5 48\r",
+ "4 5 49\r",
+ "4 5 50\r",
+ "4 5 51\r",
+ "4 5 52\r",
+ "4 5 53\r",
+ "4 5 54\r",
+ "4 5 55\r",
+ "4 5 56\r",
+ "4 5 57\r",
+ "4 5 58\r",
+ "4 6 1\r",
+ "4 6 2\r",
+ "4 6 3\r",
+ "4 6 4\r",
+ "4 6 5\r",
+ "4 6 6\r",
+ "4 6 7\r",
+ "4 6 8\r",
+ "4 6 9\r",
+ "4 6 10\r",
+ "4 6 11\r",
+ "4 6 12\r",
+ "4 6 13\r",
+ "4 6 14\r",
+ "4 6 15\r",
+ "4 6 16\r",
+ "4 6 17\r",
+ "4 6 18\r",
+ "4 6 19\r",
+ "4 6 20\r",
+ "4 6 21\r",
+ "4 6 22\r",
+ "4 6 23\r",
+ "4 6 24\r",
+ "4 6 25\r",
+ "4 6 26\r",
+ "4 6 27\r",
+ "4 6 28\r",
+ "4 6 29\r",
+ "4 6 30\r",
+ "4 6 31\r",
+ "4 6 32\r",
+ "4 6 33\r",
+ "4 6 34\r",
+ "4 6 35\r",
+ "4 6 36\r",
+ "4 6 37\r",
+ "4 6 38\r",
+ "4 6 39\r",
+ "4 6 40\r",
+ "4 6 41\r",
+ "4 6 42\r",
+ "4 6 43\r",
+ "4 6 44\r",
+ "4 6 45\r",
+ "4 6 46\r",
+ "4 6 47\r",
+ "4 6 48\r",
+ "4 6 49\r",
+ "4 6 50\r",
+ "4 6 51\r",
+ "4 6 52\r",
+ "4 6 53\r",
+ "4 6 54\r",
+ "4 6 55\r",
+ "4 6 56\r",
+ "4 6 57\r",
+ "4 6 58\r",
+ "4 7 1\r",
+ "4 7 2\r",
+ "4 7 3\r",
+ "4 7 4\r",
+ "4 7 5\r",
+ "4 7 6\r",
+ "4 7 7\r",
+ "4 7 8\r",
+ "4 7 9\r",
+ "4 7 10\r",
+ "4 7 11\r",
+ "4 7 12\r",
+ "4 7 13\r",
+ "4 7 14\r",
+ "4 7 15\r",
+ "4 7 16\r",
+ "4 7 17\r",
+ "4 7 18\r",
+ "4 7 19\r",
+ "4 7 20\r",
+ "4 7 21\r",
+ "4 7 22\r",
+ "4 7 23\r",
+ "4 7 24\r",
+ "4 7 25\r",
+ "4 7 26\r",
+ "4 7 27\r",
+ "4 7 28\r",
+ "4 7 29\r",
+ "4 7 30\r",
+ "4 7 31\r",
+ "4 7 32\r",
+ "4 7 33\r",
+ "4 7 34\r",
+ "4 7 35\r",
+ "4 7 36\r",
+ "4 7 37\r",
+ "4 7 38\r",
+ "4 7 39\r",
+ "4 7 40\r",
+ "4 7 41\r",
+ "4 7 42\r",
+ "4 7 43\r",
+ "4 7 44\r",
+ "4 7 45\r",
+ "4 7 46\r",
+ "4 7 47\r",
+ "4 7 48\r",
+ "4 7 49\r",
+ "4 7 50\r",
+ "4 7 51\r",
+ "4 7 52\r",
+ "4 7 53\r",
+ "4 7 54\r",
+ "4 7 55\r",
+ "4 7 56\r",
+ "4 7 57\r",
+ "4 7 58\r",
+ "4 8 1\r",
+ "4 8 2\r",
+ "4 8 3\r",
+ "4 8 4\r",
+ "4 8 5\r",
+ "4 8 6\r",
+ "4 8 7\r",
+ "4 8 8\r",
+ "4 8 9\r",
+ "4 8 10\r",
+ "4 8 11\r",
+ "4 8 12\r",
+ "4 8 13\r",
+ "4 8 14\r",
+ "4 8 15\r",
+ "4 8 16\r",
+ "4 8 17\r",
+ "4 8 18\r",
+ "4 8 19\r",
+ "4 8 20\r",
+ "4 8 21\r",
+ "4 8 22\r",
+ "4 8 23\r",
+ "4 8 24\r",
+ "4 8 25\r",
+ "4 8 26\r",
+ "4 8 27\r",
+ "4 8 28\r",
+ "4 8 29\r",
+ "4 8 30\r",
+ "4 8 31\r",
+ "4 8 32\r",
+ "4 8 33\r",
+ "4 8 34\r",
+ "4 8 35\r",
+ "4 8 36\r",
+ "4 8 37\r",
+ "4 8 38\r",
+ "4 8 39\r",
+ "4 8 40\r",
+ "4 8 41\r",
+ "4 8 42\r",
+ "4 8 43\r",
+ "4 8 44\r",
+ "4 8 45\r",
+ "4 8 46\r",
+ "4 8 47\r",
+ "4 8 48\r",
+ "4 8 49\r",
+ "4 8 50\r",
+ "4 8 51\r",
+ "4 8 52\r",
+ "4 8 53\r",
+ "4 8 54\r",
+ "4 8 55\r",
+ "4 8 56\r",
+ "4 8 57\r",
+ "4 8 58\r",
+ "4 9 1\r",
+ "4 9 2\r",
+ "4 9 3\r",
+ "4 9 4\r",
+ "4 9 5\r",
+ "4 9 6\r",
+ "4 9 7\r",
+ "4 9 8\r",
+ "4 9 9\r",
+ "4 9 10\r",
+ "4 9 11\r",
+ "4 9 12\r",
+ "4 9 13\r",
+ "4 9 14\r",
+ "4 9 15\r",
+ "4 9 16\r",
+ "4 9 17\r",
+ "4 9 18\r",
+ "4 9 19\r",
+ "4 9 20\r",
+ "4 9 21\r",
+ "4 9 22\r",
+ "4 9 23\r",
+ "4 9 24\r",
+ "4 9 25\r",
+ "4 9 26\r",
+ "4 9 27\r",
+ "4 9 28\r",
+ "4 9 29\r",
+ "4 9 30\r",
+ "4 9 31\r",
+ "4 9 32\r",
+ "4 9 33\r",
+ "4 9 34\r",
+ "4 9 35\r",
+ "4 9 36\r",
+ "4 9 37\r",
+ "4 9 38\r",
+ "4 9 39\r",
+ "4 9 40\r",
+ "4 9 41\r",
+ "4 9 42\r",
+ "4 9 43\r",
+ "4 9 44\r",
+ "4 9 45\r",
+ "4 9 46\r",
+ "4 9 47\r",
+ "4 9 48\r",
+ "4 9 49\r",
+ "4 9 50\r",
+ "4 9 51\r",
+ "4 9 52\r",
+ "4 9 53\r",
+ "4 9 54\r",
+ "4 9 55\r",
+ "4 9 56\r",
+ "4 9 57\r",
+ "4 9 58\r",
+ "4 10 1\r",
+ "4 10 2\r",
+ "4 10 3\r",
+ "4 10 4\r",
+ "4 10 5\r",
+ "4 10 6\r",
+ "4 10 7\r",
+ "4 10 8\r",
+ "4 10 9\r",
+ "4 10 10\r",
+ "4 10 11\r",
+ "4 10 12\r",
+ "4 10 13\r",
+ "4 10 14\r",
+ "4 10 15\r",
+ "4 10 16\r",
+ "4 10 17\r",
+ "4 10 18\r",
+ "4 10 19\r",
+ "4 10 20\r",
+ "4 10 21\r",
+ "4 10 22\r",
+ "4 10 23\r",
+ "4 10 24\r",
+ "4 10 25\r",
+ "4 10 26\r",
+ "4 10 27\r",
+ "4 10 28\r",
+ "4 10 29\r",
+ "4 10 30\r",
+ "4 10 31\r",
+ "4 10 32\r",
+ "4 10 33\r",
+ "4 10 34\r",
+ "4 10 35\r",
+ "4 10 36\r",
+ "4 10 37\r",
+ "4 10 38\r",
+ "4 10 39\r",
+ "4 10 40\r",
+ "4 10 41\r",
+ "4 10 42\r",
+ "4 10 43\r",
+ "4 10 44\r",
+ "4 10 45\r",
+ "4 10 46\r",
+ "4 10 47\r",
+ "4 10 48\r",
+ "4 10 49\r",
+ "4 10 50\r",
+ "4 10 51\r",
+ "4 10 52\r",
+ "4 10 53\r",
+ "4 10 54\r",
+ "4 10 55\r",
+ "4 10 56\r",
+ "4 10 57\r",
+ "4 10 58\r",
+ "4 11 1\r",
+ "4 11 2\r",
+ "4 11 3\r",
+ "4 11 4\r",
+ "4 11 5\r",
+ "4 11 6\r",
+ "4 11 7\r",
+ "4 11 8\r",
+ "4 11 9\r",
+ "4 11 10\r",
+ "4 11 11\r",
+ "4 11 12\r",
+ "4 11 13\r",
+ "4 11 14\r",
+ "4 11 15\r",
+ "4 11 16\r",
+ "4 11 17\r",
+ "4 11 18\r",
+ "4 11 19\r",
+ "4 11 20\r",
+ "4 11 21\r",
+ "4 11 22\r",
+ "4 11 23\r",
+ "4 11 24\r",
+ "4 11 25\r",
+ "4 11 26\r",
+ "4 11 27\r",
+ "4 11 28\r",
+ "4 11 29\r",
+ "4 11 30\r",
+ "4 11 31\r",
+ "4 11 32\r",
+ "4 11 33\r",
+ "4 11 34\r",
+ "4 11 35\r",
+ "4 11 36\r",
+ "4 11 37\r",
+ "4 11 38\r",
+ "4 11 39\r",
+ "4 11 40\r",
+ "4 11 41\r",
+ "4 11 42\r",
+ "4 11 43\r",
+ "4 11 44\r",
+ "4 11 45\r",
+ "4 11 46\r",
+ "4 11 47\r",
+ "4 11 48\r",
+ "4 11 49\r",
+ "4 11 50\r",
+ "4 11 51\r",
+ "4 11 52\r",
+ "4 11 53\r",
+ "4 11 54\r",
+ "4 11 55\r",
+ "4 11 56\r",
+ "4 11 57\r",
+ "4 11 58\r",
+ "4 12 1\r",
+ "4 12 2\r",
+ "4 12 3\r",
+ "4 12 4\r",
+ "4 12 5\r",
+ "4 12 6\r",
+ "4 12 7\r",
+ "4 12 8\r",
+ "4 12 9\r",
+ "4 12 10\r",
+ "4 12 11\r",
+ "4 12 12\r",
+ "4 12 13\r",
+ "4 12 14\r",
+ "4 12 15\r",
+ "4 12 16\r",
+ "4 12 17\r",
+ "4 12 18\r",
+ "4 12 19\r",
+ "4 12 20\r",
+ "4 12 21\r",
+ "4 12 22\r",
+ "4 12 23\r",
+ "4 12 24\r",
+ "4 12 25\r",
+ "4 12 26\r",
+ "4 12 27\r",
+ "4 12 28\r",
+ "4 12 29\r",
+ "4 12 30\r",
+ "4 12 31\r",
+ "4 12 32\r",
+ "4 12 33\r",
+ "4 12 34\r",
+ "4 12 35\r",
+ "4 12 36\r",
+ "4 12 37\r",
+ "4 12 38\r",
+ "4 12 39\r",
+ "4 12 40\r",
+ "4 12 41\r",
+ "4 12 42\r",
+ "4 12 43\r",
+ "4 12 44\r",
+ "4 12 45\r",
+ "4 12 46\r",
+ "4 12 47\r",
+ "4 12 48\r",
+ "4 12 49\r",
+ "4 12 50\r",
+ "4 12 51\r",
+ "4 12 52\r",
+ "4 12 53\r",
+ "4 12 54\r",
+ "4 12 55\r",
+ "4 12 56\r",
+ "4 12 57\r",
+ "4 12 58\r",
+ "4 13 1\r",
+ "4 13 2\r",
+ "4 13 3\r",
+ "4 13 4\r",
+ "4 13 5\r",
+ "4 13 6\r",
+ "4 13 7\r",
+ "4 13 8\r",
+ "4 13 9\r",
+ "4 13 10\r",
+ "4 13 11\r",
+ "4 13 12\r",
+ "4 13 13\r",
+ "4 13 14\r",
+ "4 13 15\r",
+ "4 13 16\r",
+ "4 13 17\r",
+ "4 13 18\r",
+ "4 13 19\r",
+ "4 13 20\r",
+ "4 13 21\r",
+ "4 13 22\r",
+ "4 13 23\r",
+ "4 13 24\r",
+ "4 13 25\r",
+ "4 13 26\r",
+ "4 13 27\r",
+ "4 13 28\r",
+ "4 13 29\r",
+ "4 13 30\r",
+ "4 13 31\r",
+ "4 13 32\r",
+ "4 13 33\r",
+ "4 13 34\r",
+ "4 13 35\r",
+ "4 13 36\r",
+ "4 13 37\r",
+ "4 13 38\r",
+ "4 13 39\r",
+ "4 13 40\r",
+ "4 13 41\r",
+ "4 13 42\r",
+ "4 13 43\r",
+ "4 13 44\r",
+ "4 13 45\r",
+ "4 13 46\r",
+ "4 13 47\r",
+ "4 13 48\r",
+ "4 13 49\r",
+ "4 13 50\r",
+ "4 13 51\r",
+ "4 13 52\r",
+ "4 13 53\r",
+ "4 13 54\r",
+ "4 13 55\r",
+ "4 13 56\r",
+ "4 13 57\r",
+ "4 13 58\r",
+ "4 14 1\r",
+ "4 14 2\r",
+ "4 14 3\r",
+ "4 14 4\r",
+ "4 14 5\r",
+ "4 14 6\r",
+ "4 14 7\r",
+ "4 14 8\r",
+ "4 14 9\r",
+ "4 14 10\r",
+ "4 14 11\r",
+ "4 14 12\r",
+ "4 14 13\r",
+ "4 14 14\r",
+ "4 14 15\r",
+ "4 14 16\r",
+ "4 14 17\r",
+ "4 14 18\r",
+ "4 14 19\r",
+ "4 14 20\r",
+ "4 14 21\r",
+ "4 14 22\r",
+ "4 14 23\r",
+ "4 14 24\r",
+ "4 14 25\r",
+ "4 14 26\r",
+ "4 14 27\r",
+ "4 14 28\r",
+ "4 14 29\r",
+ "4 14 30\r",
+ "4 14 31\r",
+ "4 14 32\r",
+ "4 14 33\r",
+ "4 14 34\r",
+ "4 14 35\r",
+ "4 14 36\r",
+ "4 14 37\r",
+ "4 14 38\r",
+ "4 14 39\r",
+ "4 14 40\r",
+ "4 14 41\r",
+ "4 14 42\r",
+ "4 14 43\r",
+ "4 14 44\r",
+ "4 14 45\r",
+ "4 14 46\r",
+ "4 14 47\r",
+ "4 14 48\r",
+ "4 14 49\r",
+ "4 14 50\r",
+ "4 14 51\r",
+ "4 14 52\r",
+ "4 14 53\r",
+ "4 14 54\r",
+ "4 14 55\r",
+ "4 14 56\r",
+ "4 14 57\r",
+ "4 14 58\r",
+ "4 15 1\r",
+ "4 15 2\r",
+ "4 15 3\r",
+ "4 15 4\r",
+ "4 15 5\r",
+ "4 15 6\r",
+ "4 15 7\r",
+ "4 15 8\r",
+ "4 15 9\r",
+ "4 15 10\r",
+ "4 15 11\r",
+ "4 15 12\r",
+ "4 15 13\r",
+ "4 15 14\r",
+ "4 15 15\r",
+ "4 15 16\r",
+ "4 15 17\r",
+ "4 15 18\r",
+ "4 15 19\r",
+ "4 15 20\r",
+ "4 15 21\r",
+ "4 15 22\r",
+ "4 15 23\r",
+ "4 15 24\r",
+ "4 15 25\r",
+ "4 15 26\r",
+ "4 15 27\r",
+ "4 15 28\r",
+ "4 15 29\r",
+ "4 15 30\r",
+ "4 15 31\r",
+ "4 15 32\r",
+ "4 15 33\r",
+ "4 15 34\r",
+ "4 15 35\r",
+ "4 15 36\r",
+ "4 15 37\r",
+ "4 15 38\r",
+ "4 15 39\r",
+ "4 15 40\r",
+ "4 15 41\r",
+ "4 15 42\r",
+ "4 15 43\r",
+ "4 15 44\r",
+ "4 15 45\r",
+ "4 15 46\r",
+ "4 15 47\r",
+ "4 15 48\r",
+ "4 15 49\r",
+ "4 15 50\r",
+ "4 15 51\r",
+ "4 15 52\r",
+ "4 15 53\r",
+ "4 15 54\r",
+ "4 15 55\r",
+ "4 15 56\r",
+ "4 15 57\r",
+ "4 15 58\r",
+ "4 16 1\r",
+ "4 16 2\r",
+ "4 16 3\r",
+ "4 16 4\r",
+ "4 16 5\r",
+ "4 16 6\r",
+ "4 16 7\r",
+ "4 16 8\r",
+ "4 16 9\r",
+ "4 16 10\r",
+ "4 16 11\r",
+ "4 16 12\r",
+ "4 16 13\r",
+ "4 16 14\r",
+ "4 16 15\r",
+ "4 16 16\r",
+ "4 16 17\r",
+ "4 16 18\r",
+ "4 16 19\r",
+ "4 16 20\r",
+ "4 16 21\r",
+ "4 16 22\r",
+ "4 16 23\r",
+ "4 16 24\r",
+ "4 16 25\r",
+ "4 16 26\r",
+ "4 16 27\r",
+ "4 16 28\r",
+ "4 16 29\r",
+ "4 16 30\r",
+ "4 16 31\r",
+ "4 16 32\r",
+ "4 16 33\r",
+ "4 16 34\r",
+ "4 16 35\r",
+ "4 16 36\r",
+ "4 16 37\r",
+ "4 16 38\r",
+ "4 16 39\r",
+ "4 16 40\r",
+ "4 16 41\r",
+ "4 16 42\r",
+ "4 16 43\r",
+ "4 16 44\r",
+ "4 16 45\r",
+ "4 16 46\r",
+ "4 16 47\r",
+ "4 16 48\r",
+ "4 16 49\r",
+ "4 16 50\r",
+ "4 16 51\r",
+ "4 16 52\r",
+ "4 16 53\r",
+ "4 16 54\r",
+ "4 16 55\r",
+ "4 16 56\r",
+ "4 16 57\r",
+ "4 16 58\r",
+ "4 17 1\r",
+ "4 17 2\r",
+ "4 17 3\r",
+ "4 17 4\r",
+ "4 17 5\r",
+ "4 17 6\r",
+ "4 17 7\r",
+ "4 17 8\r",
+ "4 17 9\r",
+ "4 17 10\r",
+ "4 17 11\r",
+ "4 17 12\r",
+ "4 17 13\r",
+ "4 17 14\r",
+ "4 17 15\r",
+ "4 17 16\r",
+ "4 17 17\r",
+ "4 17 18\r",
+ "4 17 19\r",
+ "4 17 20\r",
+ "4 17 21\r",
+ "4 17 22\r",
+ "4 17 23\r",
+ "4 17 24\r",
+ "4 17 25\r",
+ "4 17 26\r",
+ "4 17 27\r",
+ "4 17 28\r",
+ "4 17 29\r",
+ "4 17 30\r",
+ "4 17 31\r",
+ "4 17 32\r",
+ "4 17 33\r",
+ "4 17 34\r",
+ "4 17 35\r",
+ "4 17 36\r",
+ "4 17 37\r",
+ "4 17 38\r",
+ "4 17 39\r",
+ "4 17 40\r",
+ "4 17 41\r",
+ "4 17 42\r",
+ "4 17 43\r",
+ "4 17 44\r",
+ "4 17 45\r",
+ "4 17 46\r",
+ "4 17 47\r",
+ "4 17 48\r",
+ "4 17 49\r",
+ "4 17 50\r",
+ "4 17 51\r",
+ "4 17 52\r",
+ "4 17 53\r",
+ "4 17 54\r",
+ "4 17 55\r",
+ "4 17 56\r",
+ "4 17 57\r",
+ "4 17 58\r",
+ "4 18 1\r",
+ "4 18 2\r",
+ "4 18 3\r",
+ "4 18 4\r",
+ "4 18 5\r",
+ "4 18 6\r",
+ "4 18 7\r",
+ "4 18 8\r",
+ "4 18 9\r",
+ "4 18 10\r",
+ "4 18 11\r",
+ "4 18 12\r",
+ "4 18 13\r",
+ "4 18 14\r",
+ "4 18 15\r",
+ "4 18 16\r",
+ "4 18 17\r",
+ "4 18 18\r",
+ "4 18 19\r",
+ "4 18 20\r",
+ "4 18 21\r",
+ "4 18 22\r",
+ "4 18 23\r",
+ "4 18 24\r",
+ "4 18 25\r",
+ "4 18 26\r",
+ "4 18 27\r",
+ "4 18 28\r",
+ "4 18 29\r",
+ "4 18 30\r",
+ "4 18 31\r",
+ "4 18 32\r",
+ "4 18 33\r",
+ "4 18 34\r",
+ "4 18 35\r",
+ "4 18 36\r",
+ "4 18 37\r",
+ "4 18 38\r",
+ "4 18 39\r",
+ "4 18 40\r",
+ "4 18 41\r",
+ "4 18 42\r",
+ "4 18 43\r",
+ "4 18 44\r",
+ "4 18 45\r",
+ "4 18 46\r",
+ "4 18 47\r",
+ "4 18 48\r",
+ "4 18 49\r",
+ "4 18 50\r",
+ "4 18 51\r",
+ "4 18 52\r",
+ "4 18 53\r",
+ "4 18 54\r",
+ "4 18 55\r",
+ "4 18 56\r",
+ "4 18 57\r",
+ "4 18 58\r",
+ "4 19 1\r",
+ "4 19 2\r",
+ "4 19 3\r",
+ "4 19 4\r",
+ "4 19 5\r",
+ "4 19 6\r",
+ "4 19 7\r",
+ "4 19 8\r",
+ "4 19 9\r",
+ "4 19 10\r",
+ "4 19 11\r",
+ "4 19 12\r",
+ "4 19 13\r",
+ "4 19 14\r",
+ "4 19 15\r",
+ "4 19 16\r",
+ "4 19 17\r",
+ "4 19 18\r",
+ "4 19 19\r",
+ "4 19 20\r",
+ "4 19 21\r",
+ "4 19 22\r",
+ "4 19 23\r",
+ "4 19 24\r",
+ "4 19 25\r",
+ "4 19 26\r",
+ "4 19 27\r",
+ "4 19 28\r",
+ "4 19 29\r",
+ "4 19 30\r",
+ "4 19 31\r",
+ "4 19 32\r",
+ "4 19 33\r",
+ "4 19 34\r",
+ "4 19 35\r",
+ "4 19 36\r",
+ "4 19 37\r",
+ "4 19 38\r",
+ "4 19 39\r",
+ "4 19 40\r",
+ "4 19 41\r",
+ "4 19 42\r",
+ "4 19 43\r",
+ "4 19 44\r",
+ "4 19 45\r",
+ "4 19 46\r",
+ "4 19 47\r",
+ "4 19 48\r",
+ "4 19 49\r",
+ "4 19 50\r",
+ "4 19 51\r",
+ "4 19 52\r",
+ "4 19 53\r",
+ "4 19 54\r",
+ "4 19 55\r",
+ "4 19 56\r",
+ "4 19 57\r",
+ "4 19 58\r",
+ "4 20 1\r",
+ "4 20 2\r",
+ "4 20 3\r",
+ "4 20 4\r",
+ "4 20 5\r",
+ "4 20 6\r",
+ "4 20 7\r",
+ "4 20 8\r",
+ "4 20 9\r",
+ "4 20 10\r",
+ "4 20 11\r",
+ "4 20 12\r",
+ "4 20 13\r",
+ "4 20 14\r",
+ "4 20 15\r",
+ "4 20 16\r",
+ "4 20 17\r",
+ "4 20 18\r",
+ "4 20 19\r",
+ "4 20 20\r",
+ "4 20 21\r",
+ "4 20 22\r",
+ "4 20 23\r",
+ "4 20 24\r",
+ "4 20 25\r",
+ "4 20 26\r",
+ "4 20 27\r",
+ "4 20 28\r",
+ "4 20 29\r",
+ "4 20 30\r",
+ "4 20 31\r",
+ "4 20 32\r",
+ "4 20 33\r",
+ "4 20 34\r",
+ "4 20 35\r",
+ "4 20 36\r",
+ "4 20 37\r",
+ "4 20 38\r",
+ "4 20 39\r",
+ "4 20 40\r",
+ "4 20 41\r",
+ "4 20 42\r",
+ "4 20 43\r",
+ "4 20 44\r",
+ "4 20 45\r",
+ "4 20 46\r",
+ "4 20 47\r",
+ "4 20 48\r",
+ "4 20 49\r",
+ "4 20 50\r",
+ "4 20 51\r",
+ "4 20 52\r",
+ "4 20 53\r",
+ "4 20 54\r",
+ "4 20 55\r",
+ "4 20 56\r",
+ "4 20 57\r",
+ "4 20 58\r",
+ "4 21 1\r",
+ "4 21 2\r",
+ "4 21 3\r",
+ "4 21 4\r",
+ "4 21 5\r",
+ "4 21 6\r",
+ "4 21 7\r",
+ "4 21 8\r",
+ "4 21 9\r",
+ "4 21 10\r",
+ "4 21 11\r",
+ "4 21 12\r",
+ "4 21 13\r",
+ "4 21 14\r",
+ "4 21 15\r",
+ "4 21 16\r",
+ "4 21 17\r",
+ "4 21 18\r",
+ "4 21 19\r",
+ "4 21 20\r",
+ "4 21 21\r",
+ "4 21 22\r",
+ "4 21 23\r",
+ "4 21 24\r",
+ "4 21 25\r",
+ "4 21 26\r",
+ "4 21 27\r",
+ "4 21 28\r",
+ "4 21 29\r",
+ "4 21 30\r",
+ "4 21 31\r",
+ "4 21 32\r",
+ "4 21 33\r",
+ "4 21 34\r",
+ "4 21 35\r",
+ "4 21 36\r",
+ "4 21 37\r",
+ "4 21 38\r",
+ "4 21 39\r",
+ "4 21 40\r",
+ "4 21 41\r",
+ "4 21 42\r",
+ "4 21 43\r",
+ "4 21 44\r",
+ "4 21 45\r",
+ "4 21 46\r",
+ "4 21 47\r",
+ "4 21 48\r",
+ "4 21 49\r",
+ "4 21 50\r",
+ "4 21 51\r",
+ "4 21 52\r",
+ "4 21 53\r",
+ "4 21 54\r",
+ "4 21 55\r",
+ "4 21 56\r",
+ "4 21 57\r",
+ "4 21 58\r",
+ "4 22 1\r",
+ "4 22 2\r",
+ "4 22 3\r",
+ "4 22 4\r",
+ "4 22 5\r",
+ "4 22 6\r",
+ "4 22 7\r",
+ "4 22 8\r",
+ "4 22 9\r",
+ "4 22 10\r",
+ "4 22 11\r",
+ "4 22 12\r",
+ "4 22 13\r",
+ "4 22 14\r",
+ "4 22 15\r",
+ "4 22 16\r",
+ "4 22 17\r",
+ "4 22 18\r",
+ "4 22 19\r",
+ "4 22 20\r",
+ "4 22 21\r",
+ "4 22 22\r",
+ "4 22 23\r",
+ "4 22 24\r",
+ "4 22 25\r",
+ "4 22 26\r",
+ "4 22 27\r",
+ "4 22 28\r",
+ "4 22 29\r",
+ "4 22 30\r",
+ "4 22 31\r",
+ "4 22 32\r",
+ "4 22 33\r",
+ "4 22 34\r",
+ "4 22 35\r",
+ "4 22 36\r",
+ "4 22 37\r",
+ "4 22 38\r",
+ "4 22 39\r",
+ "4 22 40\r",
+ "4 22 41\r",
+ "4 22 42\r",
+ "4 22 43\r",
+ "4 22 44\r",
+ "4 22 45\r",
+ "4 22 46\r",
+ "4 22 47\r",
+ "4 22 48\r",
+ "4 22 49\r",
+ "4 22 50\r",
+ "4 22 51\r",
+ "4 22 52\r",
+ "4 22 53\r",
+ "4 22 54\r",
+ "4 22 55\r",
+ "4 22 56\r",
+ "4 22 57\r",
+ "4 22 58\r",
+ "4 23 1\r",
+ "4 23 2\r",
+ "4 23 3\r",
+ "4 23 4\r",
+ "4 23 5\r",
+ "4 23 6\r",
+ "4 23 7\r",
+ "4 23 8\r",
+ "4 23 9\r",
+ "4 23 10\r",
+ "4 23 11\r",
+ "4 23 12\r",
+ "4 23 13\r",
+ "4 23 14\r",
+ "4 23 15\r",
+ "4 23 16\r",
+ "4 23 17\r",
+ "4 23 18\r",
+ "4 23 19\r",
+ "4 23 20\r",
+ "4 23 21\r",
+ "4 23 22\r",
+ "4 23 23\r",
+ "4 23 24\r",
+ "4 23 25\r",
+ "4 23 26\r",
+ "4 23 27\r",
+ "4 23 28\r",
+ "4 23 29\r",
+ "4 23 30\r",
+ "4 23 31\r",
+ "4 23 32\r",
+ "4 23 33\r",
+ "4 23 34\r",
+ "4 23 35\r",
+ "4 23 36\r",
+ "4 23 37\r",
+ "4 23 38\r",
+ "4 23 39\r",
+ "4 23 40\r",
+ "4 23 41\r",
+ "4 23 42\r",
+ "4 23 43\r",
+ "4 23 44\r",
+ "4 23 45\r",
+ "4 23 46\r",
+ "4 23 47\r",
+ "4 23 48\r",
+ "4 23 49\r",
+ "4 23 50\r",
+ "4 23 51\r",
+ "4 23 52\r",
+ "4 23 53\r",
+ "4 23 54\r",
+ "4 23 55\r",
+ "4 23 56\r",
+ "4 23 57\r",
+ "4 23 58\r",
+ "4 24 1\r",
+ "4 24 2\r",
+ "4 24 3\r",
+ "4 24 4\r",
+ "4 24 5\r",
+ "4 24 6\r",
+ "4 24 7\r",
+ "4 24 8\r",
+ "4 24 9\r",
+ "4 24 10\r",
+ "4 24 11\r",
+ "4 24 12\r",
+ "4 24 13\r",
+ "4 24 14\r",
+ "4 24 15\r",
+ "4 24 16\r",
+ "4 24 17\r",
+ "4 24 18\r",
+ "4 24 19\r",
+ "4 24 20\r",
+ "4 24 21\r",
+ "4 24 22\r",
+ "4 24 23\r",
+ "4 24 24\r",
+ "4 24 25\r",
+ "4 24 26\r",
+ "4 24 27\r",
+ "4 24 28\r",
+ "4 24 29\r",
+ "4 24 30\r",
+ "4 24 31\r",
+ "4 24 32\r",
+ "4 24 33\r",
+ "4 24 34\r",
+ "4 24 35\r",
+ "4 24 36\r",
+ "4 24 37\r",
+ "4 24 38\r",
+ "4 24 39\r",
+ "4 24 40\r",
+ "4 24 41\r",
+ "4 24 42\r",
+ "4 24 43\r",
+ "4 24 44\r",
+ "4 24 45\r",
+ "4 24 46\r",
+ "4 24 47\r",
+ "4 24 48\r",
+ "4 24 49\r",
+ "4 24 50\r",
+ "4 24 51\r",
+ "4 24 52\r",
+ "4 24 53\r",
+ "4 24 54\r",
+ "4 24 55\r",
+ "4 24 56\r",
+ "4 24 57\r",
+ "4 24 58\r",
+ "4 25 1\r",
+ "4 25 2\r",
+ "4 25 3\r",
+ "4 25 4\r",
+ "4 25 5\r",
+ "4 25 6\r",
+ "4 25 7\r",
+ "4 25 8\r",
+ "4 25 9\r",
+ "4 25 10\r",
+ "4 25 11\r",
+ "4 25 12\r",
+ "4 25 13\r",
+ "4 25 14\r",
+ "4 25 15\r",
+ "4 25 16\r",
+ "4 25 17\r",
+ "4 25 18\r",
+ "4 25 19\r",
+ "4 25 20\r",
+ "4 25 21\r",
+ "4 25 22\r",
+ "4 25 23\r",
+ "4 25 24\r",
+ "4 25 25\r",
+ "4 25 26\r",
+ "4 25 27\r",
+ "4 25 28\r",
+ "4 25 29\r",
+ "4 25 30\r",
+ "4 25 31\r",
+ "4 25 32\r",
+ "4 25 33\r",
+ "4 25 34\r",
+ "4 25 35\r",
+ "4 25 36\r",
+ "4 25 37\r",
+ "4 25 38\r",
+ "4 25 39\r",
+ "4 25 40\r",
+ "4 25 41\r",
+ "4 25 42\r",
+ "4 25 43\r",
+ "4 25 44\r",
+ "4 25 45\r",
+ "4 25 46\r",
+ "4 25 47\r",
+ "4 25 48\r",
+ "4 25 49\r",
+ "4 25 50\r",
+ "4 25 51\r",
+ "4 25 52\r",
+ "4 25 53\r",
+ "4 25 54\r",
+ "4 25 55\r",
+ "4 25 56\r",
+ "4 25 57\r",
+ "4 25 58\r",
+ "4 26 1\r",
+ "4 26 2\r",
+ "4 26 3\r",
+ "4 26 4\r",
+ "4 26 5\r",
+ "4 26 6\r",
+ "4 26 7\r",
+ "4 26 8\r",
+ "4 26 9\r",
+ "4 26 10\r",
+ "4 26 11\r",
+ "4 26 12\r",
+ "4 26 13\r",
+ "4 26 14\r",
+ "4 26 15\r",
+ "4 26 16\r",
+ "4 26 17\r",
+ "4 26 18\r",
+ "4 26 19\r",
+ "4 26 20\r",
+ "4 26 21\r",
+ "4 26 22\r",
+ "4 26 23\r",
+ "4 26 24\r",
+ "4 26 25\r",
+ "4 26 26\r",
+ "4 26 27\r",
+ "4 26 28\r",
+ "4 26 29\r",
+ "4 26 30\r",
+ "4 26 31\r",
+ "4 26 32\r",
+ "4 26 33\r",
+ "4 26 34\r",
+ "4 26 35\r",
+ "4 26 36\r",
+ "4 26 37\r",
+ "4 26 38\r",
+ "4 26 39\r",
+ "4 26 40\r",
+ "4 26 41\r",
+ "4 26 42\r",
+ "4 26 43\r",
+ "4 26 44\r",
+ "4 26 45\r",
+ "4 26 46\r",
+ "4 26 47\r",
+ "4 26 48\r",
+ "4 26 49\r",
+ "4 26 50\r",
+ "4 26 51\r",
+ "4 26 52\r",
+ "4 26 53\r",
+ "4 26 54\r",
+ "4 26 55\r",
+ "4 26 56\r",
+ "4 26 57\r",
+ "4 26 58\r",
+ "4 27 1\r",
+ "4 27 2\r",
+ "4 27 3\r",
+ "4 27 4\r",
+ "4 27 5\r",
+ "4 27 6\r",
+ "4 27 7\r",
+ "4 27 8\r",
+ "4 27 9\r",
+ "4 27 10\r",
+ "4 27 11\r",
+ "4 27 12\r",
+ "4 27 13\r",
+ "4 27 14\r",
+ "4 27 15\r",
+ "4 27 16\r",
+ "4 27 17\r",
+ "4 27 18\r",
+ "4 27 19\r",
+ "4 27 20\r",
+ "4 27 21\r",
+ "4 27 22\r",
+ "4 27 23\r",
+ "4 27 24\r",
+ "4 27 25\r",
+ "4 27 26\r",
+ "4 27 27\r",
+ "4 27 28\r",
+ "4 27 29\r",
+ "4 27 30\r",
+ "4 27 31\r",
+ "4 27 32\r",
+ "4 27 33\r",
+ "4 27 34\r",
+ "4 27 35\r",
+ "4 27 36\r",
+ "4 27 37\r",
+ "4 27 38\r",
+ "4 27 39\r",
+ "4 27 40\r",
+ "4 27 41\r",
+ "4 27 42\r",
+ "4 27 43\r",
+ "4 27 44\r",
+ "4 27 45\r",
+ "4 27 46\r",
+ "4 27 47\r",
+ "4 27 48\r",
+ "4 27 49\r",
+ "4 27 50\r",
+ "4 27 51\r",
+ "4 27 52\r",
+ "4 27 53\r",
+ "4 27 54\r",
+ "4 27 55\r",
+ "4 27 56\r",
+ "4 27 57\r",
+ "4 27 58\r",
+ "4 28 1\r",
+ "4 28 2\r",
+ "4 28 3\r",
+ "4 28 4\r",
+ "4 28 5\r",
+ "4 28 6\r",
+ "4 28 7\r",
+ "4 28 8\r",
+ "4 28 9\r",
+ "4 28 10\r",
+ "4 28 11\r",
+ "4 28 12\r",
+ "4 28 13\r",
+ "4 28 14\r",
+ "4 28 15\r",
+ "4 28 16\r",
+ "4 28 17\r",
+ "4 28 18\r",
+ "4 28 19\r",
+ "4 28 20\r",
+ "4 28 21\r",
+ "4 28 22\r",
+ "4 28 23\r",
+ "4 28 24\r",
+ "4 28 25\r",
+ "4 28 26\r",
+ "4 28 27\r",
+ "4 28 28\r",
+ "4 28 29\r",
+ "4 28 30\r",
+ "4 28 31\r",
+ "4 28 32\r",
+ "4 28 33\r",
+ "4 28 34\r",
+ "4 28 35\r",
+ "4 28 36\r",
+ "4 28 37\r",
+ "4 28 38\r",
+ "4 28 39\r",
+ "4 28 40\r",
+ "4 28 41\r",
+ "4 28 42\r",
+ "4 28 43\r",
+ "4 28 44\r",
+ "4 28 45\r",
+ "4 28 46\r",
+ "4 28 47\r",
+ "4 28 48\r",
+ "4 28 49\r",
+ "4 28 50\r",
+ "4 28 51\r",
+ "4 28 52\r",
+ "4 28 53\r",
+ "4 28 54\r",
+ "4 28 55\r",
+ "4 28 56\r",
+ "4 28 57\r",
+ "4 28 58\r",
+ "4 29 1\r",
+ "4 29 2\r",
+ "4 29 3\r",
+ "4 29 4\r",
+ "4 29 5\r",
+ "4 29 6\r",
+ "4 29 7\r",
+ "4 29 8\r",
+ "4 29 9\r",
+ "4 29 10\r",
+ "4 29 11\r",
+ "4 29 12\r",
+ "4 29 13\r",
+ "4 29 14\r",
+ "4 29 15\r",
+ "4 29 16\r",
+ "4 29 17\r",
+ "4 29 18\r",
+ "4 29 19\r",
+ "4 29 20\r",
+ "4 29 21\r",
+ "4 29 22\r",
+ "4 29 23\r",
+ "4 29 24\r",
+ "4 29 25\r",
+ "4 29 26\r",
+ "4 29 27\r",
+ "4 29 28\r",
+ "4 29 29\r",
+ "4 29 30\r",
+ "4 29 31\r",
+ "4 29 32\r",
+ "4 29 33\r",
+ "4 29 34\r",
+ "4 29 35\r",
+ "4 29 36\r",
+ "4 29 37\r",
+ "4 29 38\r",
+ "4 29 39\r",
+ "4 29 40\r",
+ "4 29 41\r",
+ "4 29 42\r",
+ "4 29 43\r",
+ "4 29 44\r",
+ "4 29 45\r",
+ "4 29 46\r",
+ "4 29 47\r",
+ "4 29 48\r",
+ "4 29 49\r",
+ "4 29 50\r",
+ "4 29 51\r",
+ "4 29 52\r",
+ "4 29 53\r",
+ "4 29 54\r",
+ "4 29 55\r",
+ "4 29 56\r",
+ "4 29 57\r",
+ "4 29 58\r",
+ "4 30 1\r",
+ "4 30 2\r",
+ "4 30 3\r",
+ "4 30 4\r",
+ "4 30 5\r",
+ "4 30 6\r",
+ "4 30 7\r",
+ "4 30 8\r",
+ "4 30 9\r",
+ "4 30 10\r",
+ "4 30 11\r",
+ "4 30 12\r",
+ "4 30 13\r",
+ "4 30 14\r",
+ "4 30 15\r",
+ "4 30 16\r",
+ "4 30 17\r",
+ "4 30 18\r",
+ "4 30 19\r",
+ "4 30 20\r",
+ "4 30 21\r",
+ "4 30 22\r",
+ "4 30 23\r",
+ "4 30 24\r",
+ "4 30 25\r",
+ "4 30 26\r",
+ "4 30 27\r",
+ "4 30 28\r",
+ "4 30 29\r",
+ "4 30 30\r",
+ "4 30 31\r",
+ "4 30 32\r",
+ "4 30 33\r",
+ "4 30 34\r",
+ "4 30 35\r",
+ "4 30 36\r",
+ "4 30 37\r",
+ "4 30 38\r",
+ "4 30 39\r",
+ "4 30 40\r",
+ "4 30 41\r",
+ "4 30 42\r",
+ "4 30 43\r",
+ "4 30 44\r",
+ "4 30 45\r",
+ "4 30 46\r",
+ "4 30 47\r",
+ "4 30 48\r",
+ "4 30 49\r",
+ "4 30 50\r",
+ "4 30 51\r",
+ "4 30 52\r",
+ "4 30 53\r",
+ "4 30 54\r",
+ "4 30 55\r",
+ "4 30 56\r",
+ "4 30 57\r",
+ "4 30 58\r",
+ "4 31 1\r",
+ "4 31 2\r",
+ "4 31 3\r",
+ "4 31 4\r",
+ "4 31 5\r",
+ "4 31 6\r",
+ "4 31 7\r",
+ "4 31 8\r",
+ "4 31 9\r",
+ "4 31 10\r",
+ "4 31 11\r",
+ "4 31 12\r",
+ "4 31 13\r",
+ "4 31 14\r",
+ "4 31 15\r",
+ "4 31 16\r",
+ "4 31 17\r",
+ "4 31 18\r",
+ "4 31 19\r",
+ "4 31 20\r",
+ "4 31 21\r",
+ "4 31 22\r",
+ "4 31 23\r",
+ "4 31 24\r",
+ "4 31 25\r",
+ "4 31 26\r",
+ "4 31 27\r",
+ "4 31 28\r",
+ "4 31 29\r",
+ "4 31 30\r",
+ "4 31 31\r",
+ "4 31 32\r",
+ "4 31 33\r",
+ "4 31 34\r",
+ "4 31 35\r",
+ "4 31 36\r",
+ "4 31 37\r",
+ "4 31 38\r",
+ "4 31 39\r",
+ "4 31 40\r",
+ "4 31 41\r",
+ "4 31 42\r",
+ "4 31 43\r",
+ "4 31 44\r",
+ "4 31 45\r",
+ "4 31 46\r",
+ "4 31 47\r",
+ "4 31 48\r",
+ "4 31 49\r",
+ "4 31 50\r",
+ "4 31 51\r",
+ "4 31 52\r",
+ "4 31 53\r",
+ "4 31 54\r",
+ "4 31 55\r",
+ "4 31 56\r",
+ "4 31 57\r",
+ "4 31 58\r",
+ "4 32 1\r",
+ "4 32 2\r",
+ "4 32 3\r",
+ "4 32 4\r",
+ "4 32 5\r",
+ "4 32 6\r",
+ "4 32 7\r",
+ "4 32 8\r",
+ "4 32 9\r",
+ "4 32 10\r",
+ "4 32 11\r",
+ "4 32 12\r",
+ "4 32 13\r",
+ "4 32 14\r",
+ "4 32 15\r",
+ "4 32 16\r",
+ "4 32 17\r",
+ "4 32 18\r",
+ "4 32 19\r",
+ "4 32 20\r",
+ "4 32 21\r",
+ "4 32 22\r",
+ "4 32 23\r",
+ "4 32 24\r",
+ "4 32 25\r",
+ "4 32 26\r",
+ "4 32 27\r",
+ "4 32 28\r",
+ "4 32 29\r",
+ "4 32 30\r",
+ "4 32 31\r",
+ "4 32 32\r",
+ "4 32 33\r",
+ "4 32 34\r",
+ "4 32 35\r",
+ "4 32 36\r",
+ "4 32 37\r",
+ "4 32 38\r",
+ "4 32 39\r",
+ "4 32 40\r",
+ "4 32 41\r",
+ "4 32 42\r",
+ "4 32 43\r",
+ "4 32 44\r",
+ "4 32 45\r",
+ "4 32 46\r",
+ "4 32 47\r",
+ "4 32 48\r",
+ "4 32 49\r",
+ "4 32 50\r",
+ "4 32 51\r",
+ "4 32 52\r",
+ "4 32 53\r",
+ "4 32 54\r",
+ "4 32 55\r",
+ "4 32 56\r",
+ "4 32 57\r",
+ "4 32 58\r",
+ "4 33 1\r",
+ "4 33 2\r",
+ "4 33 3\r",
+ "4 33 4\r",
+ "4 33 5\r",
+ "4 33 6\r",
+ "4 33 7\r",
+ "4 33 8\r",
+ "4 33 9\r",
+ "4 33 10\r",
+ "4 33 11\r",
+ "4 33 12\r",
+ "4 33 13\r",
+ "4 33 14\r",
+ "4 33 15\r",
+ "4 33 16\r",
+ "4 33 17\r",
+ "4 33 18\r",
+ "4 33 19\r",
+ "4 33 20\r",
+ "4 33 21\r",
+ "4 33 22\r",
+ "4 33 23\r",
+ "4 33 24\r",
+ "4 33 25\r",
+ "4 33 26\r",
+ "4 33 27\r",
+ "4 33 28\r",
+ "4 33 29\r",
+ "4 33 30\r",
+ "4 33 31\r",
+ "4 33 32\r",
+ "4 33 33\r",
+ "4 33 34\r",
+ "4 33 35\r",
+ "4 33 36\r",
+ "4 33 37\r",
+ "4 33 38\r",
+ "4 33 39\r",
+ "4 33 40\r",
+ "4 33 41\r",
+ "4 33 42\r",
+ "4 33 43\r",
+ "4 33 44\r",
+ "4 33 45\r",
+ "4 33 46\r",
+ "4 33 47\r",
+ "4 33 48\r",
+ "4 33 49\r",
+ "4 33 50\r",
+ "4 33 51\r",
+ "4 33 52\r",
+ "4 33 53\r",
+ "4 33 54\r",
+ "4 33 55\r",
+ "4 33 56\r",
+ "4 33 57\r",
+ "4 33 58\r",
+ "4 34 1\r",
+ "4 34 2\r",
+ "4 34 3\r",
+ "4 34 4\r",
+ "4 34 5\r",
+ "4 34 6\r",
+ "4 34 7\r",
+ "4 34 8\r",
+ "4 34 9\r",
+ "4 34 10\r",
+ "4 34 11\r",
+ "4 34 12\r",
+ "4 34 13\r",
+ "4 34 14\r",
+ "4 34 15\r",
+ "4 34 16\r",
+ "4 34 17\r",
+ "4 34 18\r",
+ "4 34 19\r",
+ "4 34 20\r",
+ "4 34 21\r",
+ "4 34 22\r",
+ "4 34 23\r",
+ "4 34 24\r",
+ "4 34 25\r",
+ "4 34 26\r",
+ "4 34 27\r",
+ "4 34 28\r",
+ "4 34 29\r",
+ "4 34 30\r",
+ "4 34 31\r",
+ "4 34 32\r",
+ "4 34 33\r",
+ "4 34 34\r",
+ "4 34 35\r",
+ "4 34 36\r",
+ "4 34 37\r",
+ "4 34 38\r",
+ "4 34 39\r",
+ "4 34 40\r",
+ "4 34 41\r",
+ "4 34 42\r",
+ "4 34 43\r",
+ "4 34 44\r",
+ "4 34 45\r",
+ "4 34 46\r",
+ "4 34 47\r",
+ "4 34 48\r",
+ "4 34 49\r",
+ "4 34 50\r",
+ "4 34 51\r",
+ "4 34 52\r",
+ "4 34 53\r",
+ "4 34 54\r",
+ "4 34 55\r",
+ "4 34 56\r",
+ "4 34 57\r",
+ "4 34 58\r",
+ "4 35 1\r",
+ "4 35 2\r",
+ "4 35 3\r",
+ "4 35 4\r",
+ "4 35 5\r",
+ "4 35 6\r",
+ "4 35 7\r",
+ "4 35 8\r",
+ "4 35 9\r",
+ "4 35 10\r",
+ "4 35 11\r",
+ "4 35 12\r",
+ "4 35 13\r",
+ "4 35 14\r",
+ "4 35 15\r",
+ "4 35 16\r",
+ "4 35 17\r",
+ "4 35 18\r",
+ "4 35 19\r",
+ "4 35 20\r",
+ "4 35 21\r",
+ "4 35 22\r",
+ "4 35 23\r",
+ "4 35 24\r",
+ "4 35 25\r",
+ "4 35 26\r",
+ "4 35 27\r",
+ "4 35 28\r",
+ "4 35 29\r",
+ "4 35 30\r",
+ "4 35 31\r",
+ "4 35 32\r",
+ "4 35 33\r",
+ "4 35 34\r",
+ "4 35 35\r",
+ "4 35 36\r",
+ "4 35 37\r",
+ "4 35 38\r",
+ "4 35 39\r",
+ "4 35 40\r",
+ "4 35 41\r",
+ "4 35 42\r",
+ "4 35 43\r",
+ "4 35 44\r",
+ "4 35 45\r",
+ "4 35 46\r",
+ "4 35 47\r",
+ "4 35 48\r",
+ "4 35 49\r",
+ "4 35 50\r",
+ "4 35 51\r",
+ "4 35 52\r",
+ "4 35 53\r",
+ "4 35 54\r",
+ "4 35 55\r",
+ "4 35 56\r",
+ "4 35 57\r",
+ "4 35 58\r",
+ "4 36 1"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\r",
+ "4 36 2\r",
+ "4 36 3\r",
+ "4 36 4\r",
+ "4 36 5\r",
+ "4 36 6\r",
+ "4 36 7\r",
+ "4 36 8\r",
+ "4 36 9\r",
+ "4 36 10\r",
+ "4 36 11\r",
+ "4 36 12\r",
+ "4 36 13\r",
+ "4 36 14\r",
+ "4 36 15\r",
+ "4 36 16\r",
+ "4 36 17\r",
+ "4 36 18\r",
+ "4 36 19\r",
+ "4 36 20\r",
+ "4 36 21\r",
+ "4 36 22\r",
+ "4 36 23\r",
+ "4 36 24\r",
+ "4 36 25\r",
+ "4 36 26\r",
+ "4 36 27\r",
+ "4 36 28\r",
+ "4 36 29\r",
+ "4 36 30\r",
+ "4 36 31\r",
+ "4 36 32\r",
+ "4 36 33\r",
+ "4 36 34\r",
+ "4 36 35\r",
+ "4 36 36\r",
+ "4 36 37\r",
+ "4 36 38\r",
+ "4 36 39\r",
+ "4 36 40\r",
+ "4 36 41\r",
+ "4 36 42\r",
+ "4 36 43\r",
+ "4 36 44\r",
+ "4 36 45\r",
+ "4 36 46\r",
+ "4 36 47\r",
+ "4 36 48\r",
+ "4 36 49\r",
+ "4 36 50\r",
+ "4 36 51\r",
+ "4 36 52\r",
+ "4 36 53\r",
+ "4 36 54\r",
+ "4 36 55\r",
+ "4 36 56\r",
+ "4 36 57\r",
+ "4 36 58\r",
+ "4 37 1\r",
+ "4 37 2\r",
+ "4 37 3\r",
+ "4 37 4\r",
+ "4 37 5\r",
+ "4 37 6\r",
+ "4 37 7\r",
+ "4 37 8\r",
+ "4 37 9\r",
+ "4 37 10\r",
+ "4 37 11\r",
+ "4 37 12\r",
+ "4 37 13\r",
+ "4 37 14\r",
+ "4 37 15\r",
+ "4 37 16\r",
+ "4 37 17\r",
+ "4 37 18\r",
+ "4 37 19\r",
+ "4 37 20\r",
+ "4 37 21\r",
+ "4 37 22\r",
+ "4 37 23\r",
+ "4 37 24\r",
+ "4 37 25\r",
+ "4 37 26\r",
+ "4 37 27\r",
+ "4 37 28\r",
+ "4 37 29\r",
+ "4 37 30\r",
+ "4 37 31\r",
+ "4 37 32\r",
+ "4 37 33\r",
+ "4 37 34\r",
+ "4 37 35\r",
+ "4 37 36\r",
+ "4 37 37\r",
+ "4 37 38\r",
+ "4 37 39\r",
+ "4 37 40\r",
+ "4 37 41\r",
+ "4 37 42\r",
+ "4 37 43\r",
+ "4 37 44\r",
+ "4 37 45\r",
+ "4 37 46\r",
+ "4 37 47\r",
+ "4 37 48\r",
+ "4 37 49\r",
+ "4 37 50\r",
+ "4 37 51\r",
+ "4 37 52\r",
+ "4 37 53\r",
+ "4 37 54\r",
+ "4 37 55\r",
+ "4 37 56\r",
+ "4 37 57\r",
+ "4 37 58\r",
+ "4 38 1\r",
+ "4 38 2\r",
+ "4 38 3\r",
+ "4 38 4\r",
+ "4 38 5\r",
+ "4 38 6\r",
+ "4 38 7\r",
+ "4 38 8\r",
+ "4 38 9\r",
+ "4 38 10\r",
+ "4 38 11\r",
+ "4 38 12\r",
+ "4 38 13\r",
+ "4 38 14\r",
+ "4 38 15\r",
+ "4 38 16\r",
+ "4 38 17\r",
+ "4 38 18\r",
+ "4 38 19\r",
+ "4 38 20\r",
+ "4 38 21\r",
+ "4 38 22\r",
+ "4 38 23\r",
+ "4 38 24\r",
+ "4 38 25\r",
+ "4 38 26\r",
+ "4 38 27\r",
+ "4 38 28\r",
+ "4 38 29\r",
+ "4 38 30\r",
+ "4 38 31\r",
+ "4 38 32\r",
+ "4 38 33\r",
+ "4 38 34\r",
+ "4 38 35\r",
+ "4 38 36\r",
+ "4 38 37\r",
+ "4 38 38\r",
+ "4 38 39\r",
+ "4 38 40\r",
+ "4 38 41\r",
+ "4 38 42\r",
+ "4 38 43\r",
+ "4 38 44\r",
+ "4 38 45\r",
+ "4 38 46\r",
+ "4 38 47\r",
+ "4 38 48\r",
+ "4 38 49\r",
+ "4 38 50\r",
+ "4 38 51\r",
+ "4 38 52\r",
+ "4 38 53\r",
+ "4 38 54\r",
+ "4 38 55\r",
+ "4 38 56\r",
+ "4 38 57\r",
+ "4 38 58\r",
+ "4 39 1\r",
+ "4 39 2\r",
+ "4 39 3\r",
+ "4 39 4\r",
+ "4 39 5\r",
+ "4 39 6\r",
+ "4 39 7\r",
+ "4 39 8\r",
+ "4 39 9\r",
+ "4 39 10\r",
+ "4 39 11\r",
+ "4 39 12\r",
+ "4 39 13\r",
+ "4 39 14\r",
+ "4 39 15\r",
+ "4 39 16\r",
+ "4 39 17\r",
+ "4 39 18\r",
+ "4 39 19\r",
+ "4 39 20\r",
+ "4 39 21\r",
+ "4 39 22\r",
+ "4 39 23\r",
+ "4 39 24\r",
+ "4 39 25\r",
+ "4 39 26\r",
+ "4 39 27\r",
+ "4 39 28\r",
+ "4 39 29\r",
+ "4 39 30\r",
+ "4 39 31\r",
+ "4 39 32\r",
+ "4 39 33\r",
+ "4 39 34\r",
+ "4 39 35\r",
+ "4 39 36\r",
+ "4 39 37\r",
+ "4 39 38\r",
+ "4 39 39\r",
+ "4 39 40\r",
+ "4 39 41\r",
+ "4 39 42\r",
+ "4 39 43\r",
+ "4 39 44\r",
+ "4 39 45\r",
+ "4 39 46\r",
+ "4 39 47\r",
+ "4 39 48\r",
+ "4 39 49\r",
+ "4 39 50\r",
+ "4 39 51\r",
+ "4 39 52\r",
+ "4 39 53\r",
+ "4 39 54\r",
+ "4 39 55\r",
+ "4 39 56\r",
+ "4 39 57\r",
+ "4 39 58\r",
+ "4 40 1\r",
+ "4 40 2\r",
+ "4 40 3\r",
+ "4 40 4\r",
+ "4 40 5\r",
+ "4 40 6\r",
+ "4 40 7\r",
+ "4 40 8\r",
+ "4 40 9\r",
+ "4 40 10\r",
+ "4 40 11\r",
+ "4 40 12\r",
+ "4 40 13\r",
+ "4 40 14\r",
+ "4 40 15\r",
+ "4 40 16\r",
+ "4 40 17\r",
+ "4 40 18\r",
+ "4 40 19\r",
+ "4 40 20\r",
+ "4 40 21\r",
+ "4 40 22\r",
+ "4 40 23\r",
+ "4 40 24\r",
+ "4 40 25\r",
+ "4 40 26\r",
+ "4 40 27\r",
+ "4 40 28\r",
+ "4 40 29\r",
+ "4 40 30\r",
+ "4 40 31\r",
+ "4 40 32\r",
+ "4 40 33\r",
+ "4 40 34\r",
+ "4 40 35\r",
+ "4 40 36\r",
+ "4 40 37\r",
+ "4 40 38\r",
+ "4 40 39\r",
+ "4 40 40\r",
+ "4 40 41\r",
+ "4 40 42\r",
+ "4 40 43\r",
+ "4 40 44\r",
+ "4 40 45\r",
+ "4 40 46\r",
+ "4 40 47\r",
+ "4 40 48\r",
+ "4 40 49\r",
+ "4 40 50\r",
+ "4 40 51\r",
+ "4 40 52\r",
+ "4 40 53\r",
+ "4 40 54\r",
+ "4 40 55\r",
+ "4 40 56\r",
+ "4 40 57\r",
+ "4 40 58\r",
+ "4 41 1\r",
+ "4 41 2\r",
+ "4 41 3\r",
+ "4 41 4\r",
+ "4 41 5\r",
+ "4 41 6\r",
+ "4 41 7\r",
+ "4 41 8\r",
+ "4 41 9\r",
+ "4 41 10\r",
+ "4 41 11\r",
+ "4 41 12\r",
+ "4 41 13\r",
+ "4 41 14\r",
+ "4 41 15\r",
+ "4 41 16\r",
+ "4 41 17\r",
+ "4 41 18\r",
+ "4 41 19\r",
+ "4 41 20\r",
+ "4 41 21\r",
+ "4 41 22\r",
+ "4 41 23\r",
+ "4 41 24\r",
+ "4 41 25\r",
+ "4 41 26\r",
+ "4 41 27\r",
+ "4 41 28\r",
+ "4 41 29\r",
+ "4 41 30\r",
+ "4 41 31\r",
+ "4 41 32\r",
+ "4 41 33\r",
+ "4 41 34\r",
+ "4 41 35\r",
+ "4 41 36\r",
+ "4 41 37\r",
+ "4 41 38\r",
+ "4 41 39\r",
+ "4 41 40\r",
+ "4 41 41\r",
+ "4 41 42\r",
+ "4 41 43\r",
+ "4 41 44\r",
+ "4 41 45\r",
+ "4 41 46\r",
+ "4 41 47\r",
+ "4 41 48\r",
+ "4 41 49\r",
+ "4 41 50\r",
+ "4 41 51\r",
+ "4 41 52\r",
+ "4 41 53\r",
+ "4 41 54\r",
+ "4 41 55\r",
+ "4 41 56\r",
+ "4 41 57\r",
+ "4 41 58\r",
+ "4 42 1\r",
+ "4 42 2\r",
+ "4 42 3\r",
+ "4 42 4\r",
+ "4 42 5\r",
+ "4 42 6\r",
+ "4 42 7\r",
+ "4 42 8\r",
+ "4 42 9\r",
+ "4 42 10\r",
+ "4 42 11\r",
+ "4 42 12\r",
+ "4 42 13\r",
+ "4 42 14\r",
+ "4 42 15\r",
+ "4 42 16\r",
+ "4 42 17\r",
+ "4 42 18\r",
+ "4 42 19\r",
+ "4 42 20\r",
+ "4 42 21\r",
+ "4 42 22\r",
+ "4 42 23\r",
+ "4 42 24\r",
+ "4 42 25\r",
+ "4 42 26\r",
+ "4 42 27\r",
+ "4 42 28\r",
+ "4 42 29\r",
+ "4 42 30\r",
+ "4 42 31\r",
+ "4 42 32\r",
+ "4 42 33\r",
+ "4 42 34\r",
+ "4 42 35\r",
+ "4 42 36\r",
+ "4 42 37\r",
+ "4 42 38\r",
+ "4 42 39\r",
+ "4 42 40\r",
+ "4 42 41\r",
+ "4 42 42\r",
+ "4 42 43\r",
+ "4 42 44\r",
+ "4 42 45\r",
+ "4 42 46\r",
+ "4 42 47\r",
+ "4 42 48\r",
+ "4 42 49\r",
+ "4 42 50\r",
+ "4 42 51\r",
+ "4 42 52\r",
+ "4 42 53\r",
+ "4 42 54\r",
+ "4 42 55\r",
+ "4 42 56\r",
+ "4 42 57\r",
+ "4 42 58\r",
+ "4 43 1\r",
+ "4 43 2\r",
+ "4 43 3\r",
+ "4 43 4\r",
+ "4 43 5\r",
+ "4 43 6\r",
+ "4 43 7\r",
+ "4 43 8\r",
+ "4 43 9\r",
+ "4 43 10\r",
+ "4 43 11\r",
+ "4 43 12\r",
+ "4 43 13\r",
+ "4 43 14\r",
+ "4 43 15\r",
+ "4 43 16\r",
+ "4 43 17\r",
+ "4 43 18\r",
+ "4 43 19\r",
+ "4 43 20\r",
+ "4 43 21\r",
+ "4 43 22\r",
+ "4 43 23\r",
+ "4 43 24\r",
+ "4 43 25\r",
+ "4 43 26\r",
+ "4 43 27\r",
+ "4 43 28\r",
+ "4 43 29\r",
+ "4 43 30\r",
+ "4 43 31\r",
+ "4 43 32\r",
+ "4 43 33\r",
+ "4 43 34\r",
+ "4 43 35\r",
+ "4 43 36\r",
+ "4 43 37\r",
+ "4 43 38\r",
+ "4 43 39\r",
+ "4 43 40\r",
+ "4 43 41\r",
+ "4 43 42\r",
+ "4 43 43\r",
+ "4 43 44\r",
+ "4 43 45\r",
+ "4 43 46\r",
+ "4 43 47\r",
+ "4 43 48\r",
+ "4 43 49\r",
+ "4 43 50\r",
+ "4 43 51\r",
+ "4 43 52\r",
+ "4 43 53\r",
+ "4 43 54\r",
+ "4 43 55\r",
+ "4 43 56\r",
+ "4 43 57\r",
+ "4 43 58\r",
+ "4 44 1\r",
+ "4 44 2\r",
+ "4 44 3\r",
+ "4 44 4\r",
+ "4 44 5\r",
+ "4 44 6\r",
+ "4 44 7\r",
+ "4 44 8\r",
+ "4 44 9\r",
+ "4 44 10\r",
+ "4 44 11\r",
+ "4 44 12\r",
+ "4 44 13\r",
+ "4 44 14\r",
+ "4 44 15\r",
+ "4 44 16\r",
+ "4 44 17\r",
+ "4 44 18\r",
+ "4 44 19\r",
+ "4 44 20\r",
+ "4 44 21\r",
+ "4 44 22\r",
+ "4 44 23\r",
+ "4 44 24\r",
+ "4 44 25\r",
+ "4 44 26\r",
+ "4 44 27\r",
+ "4 44 28\r",
+ "4 44 29\r",
+ "4 44 30\r",
+ "4 44 31\r",
+ "4 44 32\r",
+ "4 44 33\r",
+ "4 44 34\r",
+ "4 44 35\r",
+ "4 44 36\r",
+ "4 44 37\r",
+ "4 44 38\r",
+ "4 44 39\r",
+ "4 44 40\r",
+ "4 44 41\r",
+ "4 44 42\r",
+ "4 44 43\r",
+ "4 44 44\r",
+ "4 44 45\r",
+ "4 44 46\r",
+ "4 44 47\r",
+ "4 44 48\r",
+ "4 44 49\r",
+ "4 44 50\r",
+ "4 44 51\r",
+ "4 44 52\r",
+ "4 44 53\r",
+ "4 44 54\r",
+ "4 44 55\r",
+ "4 44 56\r",
+ "4 44 57\r",
+ "4 44 58\r",
+ "4 45 1\r",
+ "4 45 2\r",
+ "4 45 3\r",
+ "4 45 4\r",
+ "4 45 5\r",
+ "4 45 6\r",
+ "4 45 7\r",
+ "4 45 8\r",
+ "4 45 9\r",
+ "4 45 10\r",
+ "4 45 11\r",
+ "4 45 12\r",
+ "4 45 13\r",
+ "4 45 14\r",
+ "4 45 15\r",
+ "4 45 16\r",
+ "4 45 17\r",
+ "4 45 18\r",
+ "4 45 19\r",
+ "4 45 20\r",
+ "4 45 21\r",
+ "4 45 22\r",
+ "4 45 23\r",
+ "4 45 24\r",
+ "4 45 25\r",
+ "4 45 26\r",
+ "4 45 27\r",
+ "4 45 28\r",
+ "4 45 29\r",
+ "4 45 30\r",
+ "4 45 31\r",
+ "4 45 32\r",
+ "4 45 33\r",
+ "4 45 34\r",
+ "4 45 35\r",
+ "4 45 36\r",
+ "4 45 37\r",
+ "4 45 38\r",
+ "4 45 39\r",
+ "4 45 40\r",
+ "4 45 41\r",
+ "4 45 42\r",
+ "4 45 43\r",
+ "4 45 44\r",
+ "4 45 45\r",
+ "4 45 46\r",
+ "4 45 47\r",
+ "4 45 48\r",
+ "4 45 49\r",
+ "4 45 50\r",
+ "4 45 51\r",
+ "4 45 52\r",
+ "4 45 53\r",
+ "4 45 54\r",
+ "4 45 55\r",
+ "4 45 56\r",
+ "4 45 57\r",
+ "4 45 58\r",
+ "4 46 1\r",
+ "4 46 2\r",
+ "4 46 3\r",
+ "4 46 4\r",
+ "4 46 5\r",
+ "4 46 6\r",
+ "4 46 7\r",
+ "4 46 8\r",
+ "4 46 9\r",
+ "4 46 10\r",
+ "4 46 11\r",
+ "4 46 12\r",
+ "4 46 13\r",
+ "4 46 14\r",
+ "4 46 15\r",
+ "4 46 16\r",
+ "4 46 17\r",
+ "4 46 18\r",
+ "4 46 19\r",
+ "4 46 20\r",
+ "4 46 21\r",
+ "4 46 22\r",
+ "4 46 23\r",
+ "4 46 24\r",
+ "4 46 25\r",
+ "4 46 26\r",
+ "4 46 27\r",
+ "4 46 28\r",
+ "4 46 29\r",
+ "4 46 30\r",
+ "4 46 31\r",
+ "4 46 32\r",
+ "4 46 33\r",
+ "4 46 34\r",
+ "4 46 35\r",
+ "4 46 36\r",
+ "4 46 37\r",
+ "4 46 38\r",
+ "4 46 39\r",
+ "4 46 40\r",
+ "4 46 41\r",
+ "4 46 42\r",
+ "4 46 43\r",
+ "4 46 44\r",
+ "4 46 45\r",
+ "4 46 46\r",
+ "4 46 47\r",
+ "4 46 48\r",
+ "4 46 49\r",
+ "4 46 50\r",
+ "4 46 51\r",
+ "4 46 52\r",
+ "4 46 53\r",
+ "4 46 54\r",
+ "4 46 55\r",
+ "4 46 56\r",
+ "4 46 57\r",
+ "4 46 58\r",
+ "4 47 1\r",
+ "4 47 2\r",
+ "4 47 3\r",
+ "4 47 4\r",
+ "4 47 5\r",
+ "4 47 6\r",
+ "4 47 7\r",
+ "4 47 8\r",
+ "4 47 9\r",
+ "4 47 10\r",
+ "4 47 11\r",
+ "4 47 12\r",
+ "4 47 13\r",
+ "4 47 14\r",
+ "4 47 15\r",
+ "4 47 16\r",
+ "4 47 17\r",
+ "4 47 18\r",
+ "4 47 19\r",
+ "4 47 20\r",
+ "4 47 21\r",
+ "4 47 22\r",
+ "4 47 23\r",
+ "4 47 24\r",
+ "4 47 25\r",
+ "4 47 26\r",
+ "4 47 27\r",
+ "4 47 28\r",
+ "4 47 29\r",
+ "4 47 30\r",
+ "4 47 31\r",
+ "4 47 32\r",
+ "4 47 33\r",
+ "4 47 34\r",
+ "4 47 35\r",
+ "4 47 36\r",
+ "4 47 37\r",
+ "4 47 38\r",
+ "4 47 39\r",
+ "4 47 40\r",
+ "4 47 41\r",
+ "4 47 42\r",
+ "4 47 43\r",
+ "4 47 44\r",
+ "4 47 45\r",
+ "4 47 46\r",
+ "4 47 47\r",
+ "4 47 48\r",
+ "4 47 49\r",
+ "4 47 50\r",
+ "4 47 51\r",
+ "4 47 52\r",
+ "4 47 53\r",
+ "4 47 54\r",
+ "4 47 55\r",
+ "4 47 56\r",
+ "4 47 57\r",
+ "4 47 58\r",
+ "4 48 1\r",
+ "4 48 2\r",
+ "4 48 3\r",
+ "4 48 4\r",
+ "4 48 5\r",
+ "4 48 6\r",
+ "4 48 7\r",
+ "4 48 8\r",
+ "4 48 9\r",
+ "4 48 10\r",
+ "4 48 11\r",
+ "4 48 12\r",
+ "4 48 13\r",
+ "4 48 14\r",
+ "4 48 15\r",
+ "4 48 16\r",
+ "4 48 17\r",
+ "4 48 18\r",
+ "4 48 19\r",
+ "4 48 20\r",
+ "4 48 21\r",
+ "4 48 22\r",
+ "4 48 23\r",
+ "4 48 24\r",
+ "4 48 25\r",
+ "4 48 26\r",
+ "4 48 27\r",
+ "4 48 28\r",
+ "4 48 29\r",
+ "4 48 30\r",
+ "4 48 31\r",
+ "4 48 32\r",
+ "4 48 33\r",
+ "4 48 34\r",
+ "4 48 35\r",
+ "4 48 36\r",
+ "4 48 37\r",
+ "4 48 38\r",
+ "4 48 39\r",
+ "4 48 40\r",
+ "4 48 41\r",
+ "4 48 42\r",
+ "4 48 43\r",
+ "4 48 44\r",
+ "4 48 45\r",
+ "4 48 46\r",
+ "4 48 47\r",
+ "4 48 48\r",
+ "4 48 49\r",
+ "4 48 50\r",
+ "4 48 51\r",
+ "4 48 52\r",
+ "4 48 53\r",
+ "4 48 54\r",
+ "4 48 55\r",
+ "4 48 56\r",
+ "4 48 57\r",
+ "4 48 58\r",
+ "4 49 1\r",
+ "4 49 2\r",
+ "4 49 3\r",
+ "4 49 4\r",
+ "4 49 5\r",
+ "4 49 6\r",
+ "4 49 7\r",
+ "4 49 8\r",
+ "4 49 9\r",
+ "4 49 10\r",
+ "4 49 11\r",
+ "4 49 12\r",
+ "4 49 13\r",
+ "4 49 14\r",
+ "4 49 15\r",
+ "4 49 16\r",
+ "4 49 17\r",
+ "4 49 18\r",
+ "4 49 19\r",
+ "4 49 20\r",
+ "4 49 21\r",
+ "4 49 22\r",
+ "4 49 23\r",
+ "4 49 24\r",
+ "4 49 25\r",
+ "4 49 26\r",
+ "4 49 27\r",
+ "4 49 28\r",
+ "4 49 29\r",
+ "4 49 30\r",
+ "4 49 31\r",
+ "4 49 32\r",
+ "4 49 33"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\r",
+ "4 49 34\r",
+ "4 49 35\r",
+ "4 49 36\r",
+ "4 49 37\r",
+ "4 49 38\r",
+ "4 49 39\r",
+ "4 49 40\r",
+ "4 49 41\r",
+ "4 49 42\r",
+ "4 49 43\r",
+ "4 49 44\r",
+ "4 49 45\r",
+ "4 49 46\r",
+ "4 49 47\r",
+ "4 49 48\r",
+ "4 49 49\r",
+ "4 49 50\r",
+ "4 49 51\r",
+ "4 49 52\r",
+ "4 49 53\r",
+ "4 49 54\r",
+ "4 49 55\r",
+ "4 49 56\r",
+ "4 49 57\r",
+ "4 49 58\r",
+ "4 50 1\r",
+ "4 50 2\r",
+ "4 50 3\r",
+ "4 50 4\r",
+ "4 50 5\r",
+ "4 50 6\r",
+ "4 50 7\r",
+ "4 50 8\r",
+ "4 50 9\r",
+ "4 50 10\r",
+ "4 50 11\r",
+ "4 50 12\r",
+ "4 50 13\r",
+ "4 50 14\r",
+ "4 50 15\r",
+ "4 50 16\r",
+ "4 50 17\r",
+ "4 50 18\r",
+ "4 50 19\r",
+ "4 50 20\r",
+ "4 50 21\r",
+ "4 50 22\r",
+ "4 50 23\r",
+ "4 50 24\r",
+ "4 50 25\r",
+ "4 50 26\r",
+ "4 50 27\r",
+ "4 50 28\r",
+ "4 50 29\r",
+ "4 50 30\r",
+ "4 50 31\r",
+ "4 50 32\r",
+ "4 50 33\r",
+ "4 50 34\r",
+ "4 50 35\r",
+ "4 50 36\r",
+ "4 50 37\r",
+ "4 50 38\r",
+ "4 50 39\r",
+ "4 50 40\r",
+ "4 50 41\r",
+ "4 50 42\r",
+ "4 50 43\r",
+ "4 50 44\r",
+ "4 50 45\r",
+ "4 50 46\r",
+ "4 50 47\r",
+ "4 50 48\r",
+ "4 50 49\r",
+ "4 50 50\r",
+ "4 50 51\r",
+ "4 50 52\r",
+ "4 50 53\r",
+ "4 50 54\r",
+ "4 50 55\r",
+ "4 50 56\r",
+ "4 50 57\r",
+ "4 50 58\r",
+ "4 51 1\r",
+ "4 51 2\r",
+ "4 51 3\r",
+ "4 51 4\r",
+ "4 51 5\r",
+ "4 51 6\r",
+ "4 51 7\r",
+ "4 51 8\r",
+ "4 51 9\r",
+ "4 51 10\r",
+ "4 51 11\r",
+ "4 51 12\r",
+ "4 51 13\r",
+ "4 51 14\r",
+ "4 51 15\r",
+ "4 51 16\r",
+ "4 51 17\r",
+ "4 51 18\r",
+ "4 51 19\r",
+ "4 51 20\r",
+ "4 51 21\r",
+ "4 51 22\r",
+ "4 51 23\r",
+ "4 51 24\r",
+ "4 51 25\r",
+ "4 51 26\r",
+ "4 51 27\r",
+ "4 51 28\r",
+ "4 51 29\r",
+ "4 51 30\r",
+ "4 51 31\r",
+ "4 51 32\r",
+ "4 51 33\r",
+ "4 51 34\r",
+ "4 51 35\r",
+ "4 51 36\r",
+ "4 51 37\r",
+ "4 51 38\r",
+ "4 51 39\r",
+ "4 51 40\r",
+ "4 51 41\r",
+ "4 51 42\r",
+ "4 51 43\r",
+ "4 51 44\r",
+ "4 51 45\r",
+ "4 51 46\r",
+ "4 51 47\r",
+ "4 51 48\r",
+ "4 51 49\r",
+ "4 51 50\r",
+ "4 51 51\r",
+ "4 51 52\r",
+ "4 51 53\r",
+ "4 51 54\r",
+ "4 51 55\r",
+ "4 51 56\r",
+ "4 51 57\r",
+ "4 51 58\r",
+ "4 52 1\r",
+ "4 52 2\r",
+ "4 52 3\r",
+ "4 52 4\r",
+ "4 52 5\r",
+ "4 52 6\r",
+ "4 52 7\r",
+ "4 52 8\r",
+ "4 52 9\r",
+ "4 52 10\r",
+ "4 52 11\r",
+ "4 52 12\r",
+ "4 52 13\r",
+ "4 52 14\r",
+ "4 52 15\r",
+ "4 52 16\r",
+ "4 52 17\r",
+ "4 52 18\r",
+ "4 52 19\r",
+ "4 52 20\r",
+ "4 52 21\r",
+ "4 52 22\r",
+ "4 52 23\r",
+ "4 52 24\r",
+ "4 52 25\r",
+ "4 52 26\r",
+ "4 52 27\r",
+ "4 52 28\r",
+ "4 52 29\r",
+ "4 52 30\r",
+ "4 52 31\r",
+ "4 52 32\r",
+ "4 52 33\r",
+ "4 52 34\r",
+ "4 52 35\r",
+ "4 52 36\r",
+ "4 52 37\r",
+ "4 52 38\r",
+ "4 52 39\r",
+ "4 52 40\r",
+ "4 52 41\r",
+ "4 52 42\r",
+ "4 52 43\r",
+ "4 52 44\r",
+ "4 52 45\r",
+ "4 52 46\r",
+ "4 52 47\r",
+ "4 52 48\r",
+ "4 52 49\r",
+ "4 52 50\r",
+ "4 52 51\r",
+ "4 52 52\r",
+ "4 52 53\r",
+ "4 52 54\r",
+ "4 52 55\r",
+ "4 52 56\r",
+ "4 52 57\r",
+ "4 52 58\r",
+ "4 53 1\r",
+ "4 53 2\r",
+ "4 53 3\r",
+ "4 53 4\r",
+ "4 53 5\r",
+ "4 53 6\r",
+ "4 53 7\r",
+ "4 53 8\r",
+ "4 53 9\r",
+ "4 53 10\r",
+ "4 53 11\r",
+ "4 53 12\r",
+ "4 53 13\r",
+ "4 53 14\r",
+ "4 53 15\r",
+ "4 53 16\r",
+ "4 53 17\r",
+ "4 53 18\r",
+ "4 53 19\r",
+ "4 53 20\r",
+ "4 53 21\r",
+ "4 53 22\r",
+ "4 53 23\r",
+ "4 53 24\r",
+ "4 53 25\r",
+ "4 53 26\r",
+ "4 53 27\r",
+ "4 53 28\r",
+ "4 53 29\r",
+ "4 53 30\r",
+ "4 53 31\r",
+ "4 53 32\r",
+ "4 53 33\r",
+ "4 53 34\r",
+ "4 53 35\r",
+ "4 53 36\r",
+ "4 53 37\r",
+ "4 53 38\r",
+ "4 53 39\r",
+ "4 53 40\r",
+ "4 53 41\r",
+ "4 53 42\r",
+ "4 53 43\r",
+ "4 53 44\r",
+ "4 53 45\r",
+ "4 53 46\r",
+ "4 53 47\r",
+ "4 53 48\r",
+ "4 53 49\r",
+ "4 53 50\r",
+ "4 53 51\r",
+ "4 53 52\r",
+ "4 53 53\r",
+ "4 53 54\r",
+ "4 53 55\r",
+ "4 53 56\r",
+ "4 53 57\r",
+ "4 53 58\r",
+ "4 54 1\r",
+ "4 54 2\r",
+ "4 54 3\r",
+ "4 54 4\r",
+ "4 54 5\r",
+ "4 54 6\r",
+ "4 54 7\r",
+ "4 54 8\r",
+ "4 54 9\r",
+ "4 54 10\r",
+ "4 54 11\r",
+ "4 54 12\r",
+ "4 54 13\r",
+ "4 54 14\r",
+ "4 54 15\r",
+ "4 54 16\r",
+ "4 54 17\r",
+ "4 54 18\r",
+ "4 54 19\r",
+ "4 54 20\r",
+ "4 54 21\r",
+ "4 54 22\r",
+ "4 54 23\r",
+ "4 54 24\r",
+ "4 54 25\r",
+ "4 54 26\r",
+ "4 54 27\r",
+ "4 54 28\r",
+ "4 54 29\r",
+ "4 54 30\r",
+ "4 54 31\r",
+ "4 54 32\r",
+ "4 54 33\r",
+ "4 54 34\r",
+ "4 54 35\r",
+ "4 54 36\r",
+ "4 54 37\r",
+ "4 54 38\r",
+ "4 54 39\r",
+ "4 54 40\r",
+ "4 54 41\r",
+ "4 54 42\r",
+ "4 54 43\r",
+ "4 54 44\r",
+ "4 54 45\r",
+ "4 54 46\r",
+ "4 54 47\r",
+ "4 54 48\r",
+ "4 54 49\r",
+ "4 54 50\r",
+ "4 54 51\r",
+ "4 54 52\r",
+ "4 54 53\r",
+ "4 54 54\r",
+ "4 54 55\r",
+ "4 54 56\r",
+ "4 54 57\r",
+ "4 54 58\r",
+ "4 55 1\r",
+ "4 55 2\r",
+ "4 55 3\r",
+ "4 55 4\r",
+ "4 55 5\r",
+ "4 55 6\r",
+ "4 55 7\r",
+ "4 55 8\r",
+ "4 55 9\r",
+ "4 55 10\r",
+ "4 55 11\r",
+ "4 55 12\r",
+ "4 55 13\r",
+ "4 55 14\r",
+ "4 55 15\r",
+ "4 55 16\r",
+ "4 55 17\r",
+ "4 55 18\r",
+ "4 55 19\r",
+ "4 55 20\r",
+ "4 55 21\r",
+ "4 55 22\r",
+ "4 55 23\r",
+ "4 55 24\r",
+ "4 55 25\r",
+ "4 55 26\r",
+ "4 55 27\r",
+ "4 55 28\r",
+ "4 55 29\r",
+ "4 55 30\r",
+ "4 55 31\r",
+ "4 55 32\r",
+ "4 55 33\r",
+ "4 55 34\r",
+ "4 55 35\r",
+ "4 55 36\r",
+ "4 55 37\r",
+ "4 55 38\r",
+ "4 55 39\r",
+ "4 55 40\r",
+ "4 55 41\r",
+ "4 55 42\r",
+ "4 55 43\r",
+ "4 55 44\r",
+ "4 55 45\r",
+ "4 55 46\r",
+ "4 55 47\r",
+ "4 55 48\r",
+ "4 55 49\r",
+ "4 55 50\r",
+ "4 55 51\r",
+ "4 55 52\r",
+ "4 55 53\r",
+ "4 55 54\r",
+ "4 55 55\r",
+ "4 55 56\r",
+ "4 55 57\r",
+ "4 55 58\r",
+ "4 56 1\r",
+ "4 56 2\r",
+ "4 56 3\r",
+ "4 56 4\r",
+ "4 56 5\r",
+ "4 56 6\r",
+ "4 56 7\r",
+ "4 56 8\r",
+ "4 56 9\r",
+ "4 56 10\r",
+ "4 56 11\r",
+ "4 56 12\r",
+ "4 56 13\r",
+ "4 56 14\r",
+ "4 56 15\r",
+ "4 56 16\r",
+ "4 56 17\r",
+ "4 56 18\r",
+ "4 56 19\r",
+ "4 56 20\r",
+ "4 56 21\r",
+ "4 56 22\r",
+ "4 56 23\r",
+ "4 56 24\r",
+ "4 56 25\r",
+ "4 56 26\r",
+ "4 56 27\r",
+ "4 56 28\r",
+ "4 56 29\r",
+ "4 56 30\r",
+ "4 56 31\r",
+ "4 56 32\r",
+ "4 56 33\r",
+ "4 56 34\r",
+ "4 56 35\r",
+ "4 56 36\r",
+ "4 56 37\r",
+ "4 56 38\r",
+ "4 56 39\r",
+ "4 56 40\r",
+ "4 56 41\r",
+ "4 56 42\r",
+ "4 56 43\r",
+ "4 56 44\r",
+ "4 56 45\r",
+ "4 56 46\r",
+ "4 56 47\r",
+ "4 56 48\r",
+ "4 56 49\r",
+ "4 56 50\r",
+ "4 56 51\r",
+ "4 56 52\r",
+ "4 56 53\r",
+ "4 56 54\r",
+ "4 56 55\r",
+ "4 56 56\r",
+ "4 56 57\r",
+ "4 56 58\r",
+ "4 57 1\r",
+ "4 57 2\r",
+ "4 57 3\r",
+ "4 57 4\r",
+ "4 57 5\r",
+ "4 57 6\r",
+ "4 57 7\r",
+ "4 57 8\r",
+ "4 57 9\r",
+ "4 57 10\r",
+ "4 57 11\r",
+ "4 57 12\r",
+ "4 57 13\r",
+ "4 57 14\r",
+ "4 57 15\r",
+ "4 57 16\r",
+ "4 57 17\r",
+ "4 57 18\r",
+ "4 57 19\r",
+ "4 57 20\r",
+ "4 57 21\r",
+ "4 57 22\r",
+ "4 57 23\r",
+ "4 57 24\r",
+ "4 57 25\r",
+ "4 57 26\r",
+ "4 57 27\r",
+ "4 57 28\r",
+ "4 57 29\r",
+ "4 57 30\r",
+ "4 57 31\r",
+ "4 57 32\r",
+ "4 57 33\r",
+ "4 57 34\r",
+ "4 57 35\r",
+ "4 57 36\r",
+ "4 57 37\r",
+ "4 57 38\r",
+ "4 57 39\r",
+ "4 57 40\r",
+ "4 57 41\r",
+ "4 57 42\r",
+ "4 57 43\r",
+ "4 57 44\r",
+ "4 57 45\r",
+ "4 57 46\r",
+ "4 57 47\r",
+ "4 57 48\r",
+ "4 57 49\r",
+ "4 57 50\r",
+ "4 57 51\r",
+ "4 57 52\r",
+ "4 57 53\r",
+ "4 57 54\r",
+ "4 57 55\r",
+ "4 57 56\r",
+ "4 57 57\r",
+ "4 57 58\r",
+ "4 58 1\r",
+ "4 58 2\r",
+ "4 58 3\r",
+ "4 58 4\r",
+ "4 58 5\r",
+ "4 58 6\r",
+ "4 58 7\r",
+ "4 58 8\r",
+ "4 58 9\r",
+ "4 58 10\r",
+ "4 58 11\r",
+ "4 58 12\r",
+ "4 58 13\r",
+ "4 58 14\r",
+ "4 58 15\r",
+ "4 58 16\r",
+ "4 58 17\r",
+ "4 58 18\r",
+ "4 58 19\r",
+ "4 58 20\r",
+ "4 58 21\r",
+ "4 58 22\r",
+ "4 58 23\r",
+ "4 58 24\r",
+ "4 58 25\r",
+ "4 58 26\r",
+ "4 58 27\r",
+ "4 58 28\r",
+ "4 58 29\r",
+ "4 58 30\r",
+ "4 58 31\r",
+ "4 58 32\r",
+ "4 58 33\r",
+ "4 58 34\r",
+ "4 58 35\r",
+ "4 58 36\r",
+ "4 58 37\r",
+ "4 58 38\r",
+ "4 58 39\r",
+ "4 58 40\r",
+ "4 58 41\r",
+ "4 58 42\r",
+ "4 58 43\r",
+ "4 58 44\r",
+ "4 58 45\r",
+ "4 58 46\r",
+ "4 58 47\r",
+ "4 58 48\r",
+ "4 58 49\r",
+ "4 58 50\r",
+ "4 58 51\r",
+ "4 58 52\r",
+ "4 58 53\r",
+ "4 58 54\r",
+ "4 58 55\r",
+ "4 58 56\r",
+ "4 58 57\r",
+ "4 58 58\r",
+ "5 1 1\r",
+ "5 1 2\r",
+ "5 1 3\r",
+ "5 1 4\r",
+ "5 1 5\r",
+ "5 1 6\r",
+ "5 1 7\r",
+ "5 1 8\r",
+ "5 1 9\r",
+ "5 1 10\r",
+ "5 1 11\r",
+ "5 1 12\r",
+ "5 1 13\r",
+ "5 1 14\r",
+ "5 1 15\r",
+ "5 1 16\r",
+ "5 1 17\r",
+ "5 1 18\r",
+ "5 1 19\r",
+ "5 1 20\r",
+ "5 1 21\r",
+ "5 1 22\r",
+ "5 1 23\r",
+ "5 1 24\r",
+ "5 1 25\r",
+ "5 1 26\r",
+ "5 1 27\r",
+ "5 1 28\r",
+ "5 1 29\r",
+ "5 1 30\r",
+ "5 1 31\r",
+ "5 1 32\r",
+ "5 1 33\r",
+ "5 1 34\r",
+ "5 1 35\r",
+ "5 1 36\r",
+ "5 1 37\r",
+ "5 1 38\r",
+ "5 1 39\r",
+ "5 1 40\r",
+ "5 1 41\r",
+ "5 1 42\r",
+ "5 1 43\r",
+ "5 1 44\r",
+ "5 1 45\r",
+ "5 1 46\r",
+ "5 1 47\r",
+ "5 1 48\r",
+ "5 1 49\r",
+ "5 1 50\r",
+ "5 1 51\r",
+ "5 1 52\r",
+ "5 1 53\r",
+ "5 1 54\r",
+ "5 1 55\r",
+ "5 1 56\r",
+ "5 1 57\r",
+ "5 1 58\r",
+ "5 2 1\r",
+ "5 2 2\r",
+ "5 2 3\r",
+ "5 2 4\r",
+ "5 2 5\r",
+ "5 2 6\r",
+ "5 2 7\r",
+ "5 2 8\r",
+ "5 2 9\r",
+ "5 2 10\r",
+ "5 2 11\r",
+ "5 2 12\r",
+ "5 2 13\r",
+ "5 2 14\r",
+ "5 2 15\r",
+ "5 2 16\r",
+ "5 2 17\r",
+ "5 2 18\r",
+ "5 2 19\r",
+ "5 2 20\r",
+ "5 2 21\r",
+ "5 2 22\r",
+ "5 2 23\r",
+ "5 2 24\r",
+ "5 2 25\r",
+ "5 2 26\r",
+ "5 2 27\r",
+ "5 2 28\r",
+ "5 2 29\r",
+ "5 2 30\r",
+ "5 2 31\r",
+ "5 2 32\r",
+ "5 2 33\r",
+ "5 2 34\r",
+ "5 2 35\r",
+ "5 2 36\r",
+ "5 2 37\r",
+ "5 2 38\r",
+ "5 2 39\r",
+ "5 2 40\r",
+ "5 2 41\r",
+ "5 2 42\r",
+ "5 2 43\r",
+ "5 2 44\r",
+ "5 2 45\r",
+ "5 2 46\r",
+ "5 2 47\r",
+ "5 2 48\r",
+ "5 2 49\r",
+ "5 2 50\r",
+ "5 2 51\r",
+ "5 2 52\r",
+ "5 2 53\r",
+ "5 2 54\r",
+ "5 2 55\r",
+ "5 2 56\r",
+ "5 2 57\r",
+ "5 2 58\r",
+ "5 3 1\r",
+ "5 3 2\r",
+ "5 3 3\r",
+ "5 3 4\r",
+ "5 3 5\r",
+ "5 3 6\r",
+ "5 3 7\r",
+ "5 3 8\r",
+ "5 3 9\r",
+ "5 3 10\r",
+ "5 3 11\r",
+ "5 3 12\r",
+ "5 3 13\r",
+ "5 3 14\r",
+ "5 3 15\r",
+ "5 3 16\r",
+ "5 3 17\r",
+ "5 3 18\r",
+ "5 3 19\r",
+ "5 3 20\r",
+ "5 3 21\r",
+ "5 3 22\r",
+ "5 3 23\r",
+ "5 3 24\r",
+ "5 3 25\r",
+ "5 3 26\r",
+ "5 3 27\r",
+ "5 3 28\r",
+ "5 3 29\r",
+ "5 3 30\r",
+ "5 3 31\r",
+ "5 3 32\r",
+ "5 3 33\r",
+ "5 3 34\r",
+ "5 3 35\r",
+ "5 3 36\r",
+ "5 3 37\r",
+ "5 3 38\r",
+ "5 3 39\r",
+ "5 3 40\r",
+ "5 3 41\r",
+ "5 3 42\r",
+ "5 3 43\r",
+ "5 3 44\r",
+ "5 3 45\r",
+ "5 3 46\r",
+ "5 3 47\r",
+ "5 3 48\r",
+ "5 3 49\r",
+ "5 3 50\r",
+ "5 3 51\r",
+ "5 3 52\r",
+ "5 3 53\r",
+ "5 3 54\r",
+ "5 3 55\r",
+ "5 3 56\r",
+ "5 3 57\r",
+ "5 3 58"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\r",
+ "5 4 1\r",
+ "5 4 2\r",
+ "5 4 3\r",
+ "5 4 4\r",
+ "5 4 5\r",
+ "5 4 6\r",
+ "5 4 7\r",
+ "5 4 8\r",
+ "5 4 9\r",
+ "5 4 10\r",
+ "5 4 11\r",
+ "5 4 12\r",
+ "5 4 13\r",
+ "5 4 14\r",
+ "5 4 15\r",
+ "5 4 16\r",
+ "5 4 17\r",
+ "5 4 18\r",
+ "5 4 19\r",
+ "5 4 20\r",
+ "5 4 21\r",
+ "5 4 22\r",
+ "5 4 23\r",
+ "5 4 24\r",
+ "5 4 25\r",
+ "5 4 26\r",
+ "5 4 27\r",
+ "5 4 28\r",
+ "5 4 29\r",
+ "5 4 30\r",
+ "5 4 31\r",
+ "5 4 32\r",
+ "5 4 33\r",
+ "5 4 34\r",
+ "5 4 35\r",
+ "5 4 36\r",
+ "5 4 37\r",
+ "5 4 38\r",
+ "5 4 39\r",
+ "5 4 40\r",
+ "5 4 41\r",
+ "5 4 42\r",
+ "5 4 43\r",
+ "5 4 44\r",
+ "5 4 45\r",
+ "5 4 46\r",
+ "5 4 47\r",
+ "5 4 48\r",
+ "5 4 49\r",
+ "5 4 50\r",
+ "5 4 51\r",
+ "5 4 52\r",
+ "5 4 53\r",
+ "5 4 54\r",
+ "5 4 55\r",
+ "5 4 56\r",
+ "5 4 57\r",
+ "5 4 58\r",
+ "5 5 1\r",
+ "5 5 2\r",
+ "5 5 3\r",
+ "5 5 4\r",
+ "5 5 5\r",
+ "5 5 6\r",
+ "5 5 7\r",
+ "5 5 8\r",
+ "5 5 9\r",
+ "5 5 10\r",
+ "5 5 11\r",
+ "5 5 12\r",
+ "5 5 13\r",
+ "5 5 14\r",
+ "5 5 15\r",
+ "5 5 16\r",
+ "5 5 17\r",
+ "5 5 18\r",
+ "5 5 19\r",
+ "5 5 20\r",
+ "5 5 21\r",
+ "5 5 22\r",
+ "5 5 23\r",
+ "5 5 24\r",
+ "5 5 25\r",
+ "5 5 26\r",
+ "5 5 27\r",
+ "5 5 28\r",
+ "5 5 29\r",
+ "5 5 30\r",
+ "5 5 31\r",
+ "5 5 32\r",
+ "5 5 33\r",
+ "5 5 34\r",
+ "5 5 35\r",
+ "5 5 36\r",
+ "5 5 37\r",
+ "5 5 38\r",
+ "5 5 39\r",
+ "5 5 40\r",
+ "5 5 41\r",
+ "5 5 42\r",
+ "5 5 43\r",
+ "5 5 44\r",
+ "5 5 45\r",
+ "5 5 46\r",
+ "5 5 47\r",
+ "5 5 48\r",
+ "5 5 49\r",
+ "5 5 50\r",
+ "5 5 51\r",
+ "5 5 52\r",
+ "5 5 53\r",
+ "5 5 54\r",
+ "5 5 55\r",
+ "5 5 56\r",
+ "5 5 57\r",
+ "5 5 58\r",
+ "5 6 1\r",
+ "5 6 2\r",
+ "5 6 3\r",
+ "5 6 4\r",
+ "5 6 5\r",
+ "5 6 6\r",
+ "5 6 7\r",
+ "5 6 8\r",
+ "5 6 9\r",
+ "5 6 10\r",
+ "5 6 11\r",
+ "5 6 12\r",
+ "5 6 13\r",
+ "5 6 14\r",
+ "5 6 15\r",
+ "5 6 16\r",
+ "5 6 17\r",
+ "5 6 18\r",
+ "5 6 19\r",
+ "5 6 20\r",
+ "5 6 21\r",
+ "5 6 22\r",
+ "5 6 23\r",
+ "5 6 24\r",
+ "5 6 25\r",
+ "5 6 26\r",
+ "5 6 27\r",
+ "5 6 28\r",
+ "5 6 29\r",
+ "5 6 30\r",
+ "5 6 31\r",
+ "5 6 32\r",
+ "5 6 33\r",
+ "5 6 34\r",
+ "5 6 35\r",
+ "5 6 36\r",
+ "5 6 37\r",
+ "5 6 38\r",
+ "5 6 39\r",
+ "5 6 40\r",
+ "5 6 41\r",
+ "5 6 42\r",
+ "5 6 43\r",
+ "5 6 44\r",
+ "5 6 45\r",
+ "5 6 46\r",
+ "5 6 47\r",
+ "5 6 48\r",
+ "5 6 49\r",
+ "5 6 50\r",
+ "5 6 51\r",
+ "5 6 52\r",
+ "5 6 53\r",
+ "5 6 54\r",
+ "5 6 55\r",
+ "5 6 56\r",
+ "5 6 57\r",
+ "5 6 58\r",
+ "5 7 1\r",
+ "5 7 2\r",
+ "5 7 3\r",
+ "5 7 4\r",
+ "5 7 5\r",
+ "5 7 6\r",
+ "5 7 7\r",
+ "5 7 8\r",
+ "5 7 9\r",
+ "5 7 10\r",
+ "5 7 11\r",
+ "5 7 12\r",
+ "5 7 13\r",
+ "5 7 14\r",
+ "5 7 15\r",
+ "5 7 16\r",
+ "5 7 17\r",
+ "5 7 18\r",
+ "5 7 19\r",
+ "5 7 20\r",
+ "5 7 21\r",
+ "5 7 22\r",
+ "5 7 23\r",
+ "5 7 24\r",
+ "5 7 25\r",
+ "5 7 26\r",
+ "5 7 27\r",
+ "5 7 28\r",
+ "5 7 29\r",
+ "5 7 30\r",
+ "5 7 31\r",
+ "5 7 32\r",
+ "5 7 33\r",
+ "5 7 34\r",
+ "5 7 35\r",
+ "5 7 36\r",
+ "5 7 37\r",
+ "5 7 38\r",
+ "5 7 39\r",
+ "5 7 40\r",
+ "5 7 41\r",
+ "5 7 42\r",
+ "5 7 43\r",
+ "5 7 44\r",
+ "5 7 45\r",
+ "5 7 46\r",
+ "5 7 47\r",
+ "5 7 48\r",
+ "5 7 49\r",
+ "5 7 50\r",
+ "5 7 51\r",
+ "5 7 52\r",
+ "5 7 53\r",
+ "5 7 54\r",
+ "5 7 55\r",
+ "5 7 56\r",
+ "5 7 57\r",
+ "5 7 58\r",
+ "5 8 1\r",
+ "5 8 2\r",
+ "5 8 3\r",
+ "5 8 4\r",
+ "5 8 5\r",
+ "5 8 6\r",
+ "5 8 7\r",
+ "5 8 8\r",
+ "5 8 9\r",
+ "5 8 10\r",
+ "5 8 11\r",
+ "5 8 12\r",
+ "5 8 13\r",
+ "5 8 14\r",
+ "5 8 15\r",
+ "5 8 16\r",
+ "5 8 17\r",
+ "5 8 18\r",
+ "5 8 19\r",
+ "5 8 20\r",
+ "5 8 21\r",
+ "5 8 22\r",
+ "5 8 23\r",
+ "5 8 24\r",
+ "5 8 25\r",
+ "5 8 26\r",
+ "5 8 27\r",
+ "5 8 28\r",
+ "5 8 29\r",
+ "5 8 30\r",
+ "5 8 31\r",
+ "5 8 32\r",
+ "5 8 33\r",
+ "5 8 34\r",
+ "5 8 35\r",
+ "5 8 36\r",
+ "5 8 37\r",
+ "5 8 38\r",
+ "5 8 39\r",
+ "5 8 40\r",
+ "5 8 41\r",
+ "5 8 42\r",
+ "5 8 43\r",
+ "5 8 44\r",
+ "5 8 45\r",
+ "5 8 46\r",
+ "5 8 47\r",
+ "5 8 48\r",
+ "5 8 49\r",
+ "5 8 50\r",
+ "5 8 51\r",
+ "5 8 52\r",
+ "5 8 53\r",
+ "5 8 54\r",
+ "5 8 55\r",
+ "5 8 56\r",
+ "5 8 57\r",
+ "5 8 58\r",
+ "5 9 1\r",
+ "5 9 2\r",
+ "5 9 3\r",
+ "5 9 4\r",
+ "5 9 5\r",
+ "5 9 6\r",
+ "5 9 7\r",
+ "5 9 8\r",
+ "5 9 9\r",
+ "5 9 10\r",
+ "5 9 11\r",
+ "5 9 12\r",
+ "5 9 13\r",
+ "5 9 14\r",
+ "5 9 15\r",
+ "5 9 16\r",
+ "5 9 17\r",
+ "5 9 18\r",
+ "5 9 19\r",
+ "5 9 20\r",
+ "5 9 21\r",
+ "5 9 22\r",
+ "5 9 23\r",
+ "5 9 24\r",
+ "5 9 25\r",
+ "5 9 26\r",
+ "5 9 27\r",
+ "5 9 28\r",
+ "5 9 29\r",
+ "5 9 30\r",
+ "5 9 31\r",
+ "5 9 32\r",
+ "5 9 33\r",
+ "5 9 34\r",
+ "5 9 35\r",
+ "5 9 36\r",
+ "5 9 37\r",
+ "5 9 38\r",
+ "5 9 39\r",
+ "5 9 40\r",
+ "5 9 41\r",
+ "5 9 42\r",
+ "5 9 43\r",
+ "5 9 44\r",
+ "5 9 45\r",
+ "5 9 46\r",
+ "5 9 47\r",
+ "5 9 48\r",
+ "5 9 49\r",
+ "5 9 50\r",
+ "5 9 51\r",
+ "5 9 52\r",
+ "5 9 53\r",
+ "5 9 54\r",
+ "5 9 55\r",
+ "5 9 56\r",
+ "5 9 57\r",
+ "5 9 58\r",
+ "5 10 1\r",
+ "5 10 2\r",
+ "5 10 3\r",
+ "5 10 4\r",
+ "5 10 5\r",
+ "5 10 6\r",
+ "5 10 7\r",
+ "5 10 8\r",
+ "5 10 9\r",
+ "5 10 10\r",
+ "5 10 11\r",
+ "5 10 12\r",
+ "5 10 13\r",
+ "5 10 14\r",
+ "5 10 15\r",
+ "5 10 16\r",
+ "5 10 17\r",
+ "5 10 18\r",
+ "5 10 19\r",
+ "5 10 20\r",
+ "5 10 21\r",
+ "5 10 22\r",
+ "5 10 23\r",
+ "5 10 24\r",
+ "5 10 25\r",
+ "5 10 26\r",
+ "5 10 27\r",
+ "5 10 28\r",
+ "5 10 29\r",
+ "5 10 30\r",
+ "5 10 31\r",
+ "5 10 32\r",
+ "5 10 33\r",
+ "5 10 34\r",
+ "5 10 35\r",
+ "5 10 36\r",
+ "5 10 37\r",
+ "5 10 38\r",
+ "5 10 39\r",
+ "5 10 40\r",
+ "5 10 41\r",
+ "5 10 42\r",
+ "5 10 43\r",
+ "5 10 44\r",
+ "5 10 45\r",
+ "5 10 46\r",
+ "5 10 47\r",
+ "5 10 48\r",
+ "5 10 49\r",
+ "5 10 50\r",
+ "5 10 51\r",
+ "5 10 52\r",
+ "5 10 53\r",
+ "5 10 54\r",
+ "5 10 55\r",
+ "5 10 56\r",
+ "5 10 57\r",
+ "5 10 58\r",
+ "5 11 1\r",
+ "5 11 2\r",
+ "5 11 3\r",
+ "5 11 4\r",
+ "5 11 5\r",
+ "5 11 6\r",
+ "5 11 7\r",
+ "5 11 8\r",
+ "5 11 9\r",
+ "5 11 10\r",
+ "5 11 11\r",
+ "5 11 12\r",
+ "5 11 13\r",
+ "5 11 14\r",
+ "5 11 15\r",
+ "5 11 16\r",
+ "5 11 17\r",
+ "5 11 18\r",
+ "5 11 19\r",
+ "5 11 20\r",
+ "5 11 21\r",
+ "5 11 22\r",
+ "5 11 23\r",
+ "5 11 24\r",
+ "5 11 25\r",
+ "5 11 26\r",
+ "5 11 27\r",
+ "5 11 28\r",
+ "5 11 29\r",
+ "5 11 30\r",
+ "5 11 31\r",
+ "5 11 32\r",
+ "5 11 33\r",
+ "5 11 34\r",
+ "5 11 35\r",
+ "5 11 36\r",
+ "5 11 37\r",
+ "5 11 38\r",
+ "5 11 39\r",
+ "5 11 40\r",
+ "5 11 41\r",
+ "5 11 42\r",
+ "5 11 43\r",
+ "5 11 44\r",
+ "5 11 45\r",
+ "5 11 46\r",
+ "5 11 47\r",
+ "5 11 48\r",
+ "5 11 49\r",
+ "5 11 50\r",
+ "5 11 51\r",
+ "5 11 52\r",
+ "5 11 53\r",
+ "5 11 54\r",
+ "5 11 55\r",
+ "5 11 56\r",
+ "5 11 57\r",
+ "5 11 58\r",
+ "5 12 1\r",
+ "5 12 2\r",
+ "5 12 3\r",
+ "5 12 4\r",
+ "5 12 5\r",
+ "5 12 6\r",
+ "5 12 7\r",
+ "5 12 8\r",
+ "5 12 9\r",
+ "5 12 10\r",
+ "5 12 11\r",
+ "5 12 12\r",
+ "5 12 13\r",
+ "5 12 14\r",
+ "5 12 15\r",
+ "5 12 16\r",
+ "5 12 17\r",
+ "5 12 18\r",
+ "5 12 19\r",
+ "5 12 20\r",
+ "5 12 21\r",
+ "5 12 22\r",
+ "5 12 23\r",
+ "5 12 24\r",
+ "5 12 25\r",
+ "5 12 26\r",
+ "5 12 27\r",
+ "5 12 28\r",
+ "5 12 29\r",
+ "5 12 30\r",
+ "5 12 31\r",
+ "5 12 32\r",
+ "5 12 33\r",
+ "5 12 34\r",
+ "5 12 35\r",
+ "5 12 36\r",
+ "5 12 37\r",
+ "5 12 38\r",
+ "5 12 39\r",
+ "5 12 40\r",
+ "5 12 41\r",
+ "5 12 42\r",
+ "5 12 43\r",
+ "5 12 44\r",
+ "5 12 45\r",
+ "5 12 46\r",
+ "5 12 47\r",
+ "5 12 48\r",
+ "5 12 49\r",
+ "5 12 50\r",
+ "5 12 51\r",
+ "5 12 52\r",
+ "5 12 53\r",
+ "5 12 54\r",
+ "5 12 55\r",
+ "5 12 56\r",
+ "5 12 57\r",
+ "5 12 58\r",
+ "5 13 1\r",
+ "5 13 2\r",
+ "5 13 3\r",
+ "5 13 4\r",
+ "5 13 5\r",
+ "5 13 6\r",
+ "5 13 7\r",
+ "5 13 8\r",
+ "5 13 9\r",
+ "5 13 10\r",
+ "5 13 11\r",
+ "5 13 12\r",
+ "5 13 13\r",
+ "5 13 14\r",
+ "5 13 15\r",
+ "5 13 16\r",
+ "5 13 17\r",
+ "5 13 18\r",
+ "5 13 19\r",
+ "5 13 20\r",
+ "5 13 21\r",
+ "5 13 22\r",
+ "5 13 23\r",
+ "5 13 24\r",
+ "5 13 25\r",
+ "5 13 26\r",
+ "5 13 27\r",
+ "5 13 28\r",
+ "5 13 29\r",
+ "5 13 30\r",
+ "5 13 31\r",
+ "5 13 32\r",
+ "5 13 33\r",
+ "5 13 34\r",
+ "5 13 35\r",
+ "5 13 36\r",
+ "5 13 37\r",
+ "5 13 38\r",
+ "5 13 39\r",
+ "5 13 40\r",
+ "5 13 41\r",
+ "5 13 42\r",
+ "5 13 43\r",
+ "5 13 44\r",
+ "5 13 45\r",
+ "5 13 46\r",
+ "5 13 47\r",
+ "5 13 48\r",
+ "5 13 49\r",
+ "5 13 50\r",
+ "5 13 51\r",
+ "5 13 52\r",
+ "5 13 53\r",
+ "5 13 54\r",
+ "5 13 55\r",
+ "5 13 56\r",
+ "5 13 57\r",
+ "5 13 58\r",
+ "5 14 1\r",
+ "5 14 2\r",
+ "5 14 3\r",
+ "5 14 4\r",
+ "5 14 5\r",
+ "5 14 6\r",
+ "5 14 7\r",
+ "5 14 8\r",
+ "5 14 9\r",
+ "5 14 10\r",
+ "5 14 11\r",
+ "5 14 12\r",
+ "5 14 13\r",
+ "5 14 14\r",
+ "5 14 15\r",
+ "5 14 16\r",
+ "5 14 17\r",
+ "5 14 18\r",
+ "5 14 19\r",
+ "5 14 20\r",
+ "5 14 21\r",
+ "5 14 22\r",
+ "5 14 23\r",
+ "5 14 24\r",
+ "5 14 25\r",
+ "5 14 26\r",
+ "5 14 27\r",
+ "5 14 28\r",
+ "5 14 29\r",
+ "5 14 30\r",
+ "5 14 31\r",
+ "5 14 32\r",
+ "5 14 33\r",
+ "5 14 34\r",
+ "5 14 35\r",
+ "5 14 36\r",
+ "5 14 37\r",
+ "5 14 38\r",
+ "5 14 39\r",
+ "5 14 40\r",
+ "5 14 41\r",
+ "5 14 42\r",
+ "5 14 43\r",
+ "5 14 44\r",
+ "5 14 45\r",
+ "5 14 46\r",
+ "5 14 47\r",
+ "5 14 48\r",
+ "5 14 49\r",
+ "5 14 50\r",
+ "5 14 51\r",
+ "5 14 52\r",
+ "5 14 53\r",
+ "5 14 54\r",
+ "5 14 55\r",
+ "5 14 56\r",
+ "5 14 57\r",
+ "5 14 58\r",
+ "5 15 1\r",
+ "5 15 2\r",
+ "5 15 3\r",
+ "5 15 4\r",
+ "5 15 5\r",
+ "5 15 6\r",
+ "5 15 7\r",
+ "5 15 8\r",
+ "5 15 9\r",
+ "5 15 10\r",
+ "5 15 11\r",
+ "5 15 12\r",
+ "5 15 13\r",
+ "5 15 14\r",
+ "5 15 15\r",
+ "5 15 16\r",
+ "5 15 17\r",
+ "5 15 18\r",
+ "5 15 19\r",
+ "5 15 20\r",
+ "5 15 21\r",
+ "5 15 22\r",
+ "5 15 23\r",
+ "5 15 24\r",
+ "5 15 25\r",
+ "5 15 26\r",
+ "5 15 27\r",
+ "5 15 28\r",
+ "5 15 29\r",
+ "5 15 30\r",
+ "5 15 31\r",
+ "5 15 32\r",
+ "5 15 33\r",
+ "5 15 34\r",
+ "5 15 35\r",
+ "5 15 36\r",
+ "5 15 37\r",
+ "5 15 38\r",
+ "5 15 39\r",
+ "5 15 40\r",
+ "5 15 41\r",
+ "5 15 42\r",
+ "5 15 43\r",
+ "5 15 44\r",
+ "5 15 45\r",
+ "5 15 46\r",
+ "5 15 47\r",
+ "5 15 48\r",
+ "5 15 49\r",
+ "5 15 50\r",
+ "5 15 51\r",
+ "5 15 52\r",
+ "5 15 53\r",
+ "5 15 54\r",
+ "5 15 55\r",
+ "5 15 56\r",
+ "5 15 57\r",
+ "5 15 58\r",
+ "5 16 1\r",
+ "5 16 2\r",
+ "5 16 3\r",
+ "5 16 4\r",
+ "5 16 5\r",
+ "5 16 6\r",
+ "5 16 7\r",
+ "5 16 8\r",
+ "5 16 9\r",
+ "5 16 10\r",
+ "5 16 11\r",
+ "5 16 12\r",
+ "5 16 13\r",
+ "5 16 14\r",
+ "5 16 15\r",
+ "5 16 16\r",
+ "5 16 17\r",
+ "5 16 18\r",
+ "5 16 19\r",
+ "5 16 20\r",
+ "5 16 21\r",
+ "5 16 22\r",
+ "5 16 23\r",
+ "5 16 24\r",
+ "5 16 25\r",
+ "5 16 26\r",
+ "5 16 27\r",
+ "5 16 28\r",
+ "5 16 29\r",
+ "5 16 30\r",
+ "5 16 31\r",
+ "5 16 32\r",
+ "5 16 33\r",
+ "5 16 34\r",
+ "5 16 35\r",
+ "5 16 36\r",
+ "5 16 37\r",
+ "5 16 38\r",
+ "5 16 39\r",
+ "5 16 40\r",
+ "5 16 41\r",
+ "5 16 42\r",
+ "5 16 43\r",
+ "5 16 44\r",
+ "5 16 45\r",
+ "5 16 46\r",
+ "5 16 47\r",
+ "5 16 48\r",
+ "5 16 49\r",
+ "5 16 50\r",
+ "5 16 51\r",
+ "5 16 52\r",
+ "5 16 53\r",
+ "5 16 54\r",
+ "5 16 55\r",
+ "5 16 56\r",
+ "5 16 57\r",
+ "5 16 58\r",
+ "5 17 1\r",
+ "5 17 2\r",
+ "5 17 3\r",
+ "5 17 4\r",
+ "5 17 5\r",
+ "5 17 6\r",
+ "5 17 7\r",
+ "5 17 8\r",
+ "5 17 9\r",
+ "5 17 10\r",
+ "5 17 11\r",
+ "5 17 12\r",
+ "5 17 13\r",
+ "5 17 14\r",
+ "5 17 15\r",
+ "5 17 16\r",
+ "5 17 17\r",
+ "5 17 18\r",
+ "5 17 19\r",
+ "5 17 20\r",
+ "5 17 21\r",
+ "5 17 22\r",
+ "5 17 23\r",
+ "5 17 24\r",
+ "5 17 25\r",
+ "5 17 26\r",
+ "5 17 27\r",
+ "5 17 28\r",
+ "5 17 29\r",
+ "5 17 30\r",
+ "5 17 31\r",
+ "5 17 32\r",
+ "5 17 33\r",
+ "5 17 34\r",
+ "5 17 35\r",
+ "5 17 36\r",
+ "5 17 37\r",
+ "5 17 38\r",
+ "5 17 39\r",
+ "5 17 40\r",
+ "5 17 41\r",
+ "5 17 42\r",
+ "5 17 43\r",
+ "5 17 44\r",
+ "5 17 45\r",
+ "5 17 46\r",
+ "5 17 47\r",
+ "5 17 48\r",
+ "5 17 49\r",
+ "5 17 50\r",
+ "5 17 51\r",
+ "5 17 52\r",
+ "5 17 53\r",
+ "5 17 54\r",
+ "5 17 55\r",
+ "5 17 56\r",
+ "5 17 57\r",
+ "5 17 58\r",
+ "5 18 1\r",
+ "5 18 2\r",
+ "5 18 3\r",
+ "5 18 4\r",
+ "5 18 5\r",
+ "5 18 6\r",
+ "5 18 7\r",
+ "5 18 8\r",
+ "5 18 9\r",
+ "5 18 10\r",
+ "5 18 11\r",
+ "5 18 12\r",
+ "5 18 13\r",
+ "5 18 14\r",
+ "5 18 15\r",
+ "5 18 16\r",
+ "5 18 17\r",
+ "5 18 18\r",
+ "5 18 19\r",
+ "5 18 20\r",
+ "5 18 21\r",
+ "5 18 22\r",
+ "5 18 23\r",
+ "5 18 24\r",
+ "5 18 25\r",
+ "5 18 26\r",
+ "5 18 27\r",
+ "5 18 28\r",
+ "5 18 29\r",
+ "5 18 30\r",
+ "5 18 31\r",
+ "5 18 32\r",
+ "5 18 33\r",
+ "5 18 34\r",
+ "5 18 35\r",
+ "5 18 36\r",
+ "5 18 37\r",
+ "5 18 38\r",
+ "5 18 39\r",
+ "5 18 40\r",
+ "5 18 41\r",
+ "5 18 42\r",
+ "5 18 43\r",
+ "5 18 44\r",
+ "5 18 45\r",
+ "5 18 46\r",
+ "5 18 47\r",
+ "5 18 48\r",
+ "5 18 49\r",
+ "5 18 50\r",
+ "5 18 51\r",
+ "5 18 52\r",
+ "5 18 53\r",
+ "5 18 54\r",
+ "5 18 55\r",
+ "5 18 56\r",
+ "5 18 57\r",
+ "5 18 58\r",
+ "5 19 1\r",
+ "5 19 2\r",
+ "5 19 3\r",
+ "5 19 4\r",
+ "5 19 5\r",
+ "5 19 6\r",
+ "5 19 7\r",
+ "5 19 8\r",
+ "5 19 9\r",
+ "5 19 10\r",
+ "5 19 11\r",
+ "5 19 12\r",
+ "5 19 13\r",
+ "5 19 14\r",
+ "5 19 15\r",
+ "5 19 16\r",
+ "5 19 17\r",
+ "5 19 18\r",
+ "5 19 19\r",
+ "5 19 20\r",
+ "5 19 21\r",
+ "5 19 22\r",
+ "5 19 23\r",
+ "5 19 24\r",
+ "5 19 25\r",
+ "5 19 26\r",
+ "5 19 27\r",
+ "5 19 28\r",
+ "5 19 29\r",
+ "5 19 30\r",
+ "5 19 31\r",
+ "5 19 32\r",
+ "5 19 33\r",
+ "5 19 34\r",
+ "5 19 35\r",
+ "5 19 36\r",
+ "5 19 37\r",
+ "5 19 38\r",
+ "5 19 39\r",
+ "5 19 40\r",
+ "5 19 41\r",
+ "5 19 42\r",
+ "5 19 43\r",
+ "5 19 44\r",
+ "5 19 45\r",
+ "5 19 46\r",
+ "5 19 47\r",
+ "5 19 48\r",
+ "5 19 49\r",
+ "5 19 50\r",
+ "5 19 51\r",
+ "5 19 52\r",
+ "5 19 53\r",
+ "5 19 54\r",
+ "5 19 55\r",
+ "5 19 56\r",
+ "5 19 57\r",
+ "5 19 58\r",
+ "5 20 1\r",
+ "5 20 2\r",
+ "5 20 3\r",
+ "5 20 4\r",
+ "5 20 5\r",
+ "5 20 6\r",
+ "5 20 7\r",
+ "5 20 8\r",
+ "5 20 9\r",
+ "5 20 10\r",
+ "5 20 11\r",
+ "5 20 12\r",
+ "5 20 13\r",
+ "5 20 14\r",
+ "5 20 15\r",
+ "5 20 16\r",
+ "5 20 17\r",
+ "5 20 18\r",
+ "5 20 19\r",
+ "5 20 20\r",
+ "5 20 21\r",
+ "5 20 22\r",
+ "5 20 23\r",
+ "5 20 24\r",
+ "5 20 25\r",
+ "5 20 26\r",
+ "5 20 27\r",
+ "5 20 28\r",
+ "5 20 29\r",
+ "5 20 30\r",
+ "5 20 31\r",
+ "5 20 32\r",
+ "5 20 33\r",
+ "5 20 34\r",
+ "5 20 35\r",
+ "5 20 36\r",
+ "5 20 37\r",
+ "5 20 38\r",
+ "5 20 39\r",
+ "5 20 40\r",
+ "5 20 41\r",
+ "5 20 42\r",
+ "5 20 43\r",
+ "5 20 44\r",
+ "5 20 45\r",
+ "5 20 46\r",
+ "5 20 47\r",
+ "5 20 48\r",
+ "5 20 49\r",
+ "5 20 50\r",
+ "5 20 51\r",
+ "5 20 52\r",
+ "5 20 53\r",
+ "5 20 54\r",
+ "5 20 55\r",
+ "5 20 56\r",
+ "5 20 57\r",
+ "5 20 58\r",
+ "5 21 1\r",
+ "5 21 2\r",
+ "5 21 3\r",
+ "5 21 4\r",
+ "5 21 5\r",
+ "5 21 6\r",
+ "5 21 7\r",
+ "5 21 8\r",
+ "5 21 9\r",
+ "5 21 10\r",
+ "5 21 11\r",
+ "5 21 12\r",
+ "5 21 13\r",
+ "5 21 14\r",
+ "5 21 15\r",
+ "5 21 16\r",
+ "5 21 17\r",
+ "5 21 18\r",
+ "5 21 19\r",
+ "5 21 20\r",
+ "5 21 21\r",
+ "5 21 22\r",
+ "5 21 23\r",
+ "5 21 24\r",
+ "5 21 25\r",
+ "5 21 26\r",
+ "5 21 27\r",
+ "5 21 28\r",
+ "5 21 29\r",
+ "5 21 30\r",
+ "5 21 31\r",
+ "5 21 32\r",
+ "5 21 33\r",
+ "5 21 34\r",
+ "5 21 35\r",
+ "5 21 36\r",
+ "5 21 37\r",
+ "5 21 38\r",
+ "5 21 39\r",
+ "5 21 40\r",
+ "5 21 41\r",
+ "5 21 42\r",
+ "5 21 43\r",
+ "5 21 44\r",
+ "5 21 45\r",
+ "5 21 46\r",
+ "5 21 47\r",
+ "5 21 48\r",
+ "5 21 49\r",
+ "5 21 50\r",
+ "5 21 51\r",
+ "5 21 52\r",
+ "5 21 53\r",
+ "5 21 54\r",
+ "5 21 55\r",
+ "5 21 56\r",
+ "5 21 57\r",
+ "5 21 58\r",
+ "5 22 1\r",
+ "5 22 2\r",
+ "5 22 3\r",
+ "5 22 4\r",
+ "5 22 5\r",
+ "5 22 6\r",
+ "5 22 7\r",
+ "5 22 8\r",
+ "5 22 9\r",
+ "5 22 10\r",
+ "5 22 11\r",
+ "5 22 12\r",
+ "5 22 13\r",
+ "5 22 14\r",
+ "5 22 15\r",
+ "5 22 16\r",
+ "5 22 17\r",
+ "5 22 18\r",
+ "5 22 19\r",
+ "5 22 20\r",
+ "5 22 21\r",
+ "5 22 22\r",
+ "5 22 23\r",
+ "5 22 24\r",
+ "5 22 25\r",
+ "5 22 26\r",
+ "5 22 27\r",
+ "5 22 28\r",
+ "5 22 29\r",
+ "5 22 30\r",
+ "5 22 31\r",
+ "5 22 32\r",
+ "5 22 33\r",
+ "5 22 34\r",
+ "5 22 35\r",
+ "5 22 36\r",
+ "5 22 37\r",
+ "5 22 38\r",
+ "5 22 39\r",
+ "5 22 40\r",
+ "5 22 41\r",
+ "5 22 42\r",
+ "5 22 43\r",
+ "5 22 44\r",
+ "5 22 45\r",
+ "5 22 46\r",
+ "5 22 47\r",
+ "5 22 48\r",
+ "5 22 49\r",
+ "5 22 50\r",
+ "5 22 51\r",
+ "5 22 52\r",
+ "5 22 53\r",
+ "5 22 54\r",
+ "5 22 55\r",
+ "5 22 56\r",
+ "5 22 57\r",
+ "5 22 58\r",
+ "5 23 1\r",
+ "5 23 2\r",
+ "5 23 3\r",
+ "5 23 4\r",
+ "5 23 5\r",
+ "5 23 6\r",
+ "5 23 7\r",
+ "5 23 8\r",
+ "5 23 9\r",
+ "5 23 10\r",
+ "5 23 11\r",
+ "5 23 12\r",
+ "5 23 13\r",
+ "5 23 14\r",
+ "5 23 15\r",
+ "5 23 16\r",
+ "5 23 17\r",
+ "5 23 18\r",
+ "5 23 19\r",
+ "5 23 20\r",
+ "5 23 21\r",
+ "5 23 22\r",
+ "5 23 23\r",
+ "5 23 24\r",
+ "5 23 25\r",
+ "5 23 26\r",
+ "5 23 27\r",
+ "5 23 28\r",
+ "5 23 29\r",
+ "5 23 30\r",
+ "5 23 31\r",
+ "5 23 32\r",
+ "5 23 33\r",
+ "5 23 34\r",
+ "5 23 35\r",
+ "5 23 36\r",
+ "5 23 37\r",
+ "5 23 38\r",
+ "5 23 39\r",
+ "5 23 40\r",
+ "5 23 41\r",
+ "5 23 42\r",
+ "5 23 43\r",
+ "5 23 44\r",
+ "5 23 45\r",
+ "5 23 46\r",
+ "5 23 47\r",
+ "5 23 48\r",
+ "5 23 49\r",
+ "5 23 50\r",
+ "5 23 51\r",
+ "5 23 52\r",
+ "5 23 53\r",
+ "5 23 54\r",
+ "5 23 55\r",
+ "5 23 56\r",
+ "5 23 57\r",
+ "5 23 58\r",
+ "5 24 1\r",
+ "5 24 2\r",
+ "5 24 3\r",
+ "5 24 4\r",
+ "5 24 5\r",
+ "5 24 6\r",
+ "5 24 7\r",
+ "5 24 8\r",
+ "5 24 9\r",
+ "5 24 10\r",
+ "5 24 11\r",
+ "5 24 12\r",
+ "5 24 13\r",
+ "5 24 14\r",
+ "5 24 15\r",
+ "5 24 16\r",
+ "5 24 17\r",
+ "5 24 18\r",
+ "5 24 19\r",
+ "5 24 20\r",
+ "5 24 21\r",
+ "5 24 22\r",
+ "5 24 23\r",
+ "5 24 24\r",
+ "5 24 25\r",
+ "5 24 26\r",
+ "5 24 27\r",
+ "5 24 28\r",
+ "5 24 29\r",
+ "5 24 30\r",
+ "5 24 31\r",
+ "5 24 32\r",
+ "5 24 33\r",
+ "5 24 34\r",
+ "5 24 35\r",
+ "5 24 36\r",
+ "5 24 37\r",
+ "5 24 38\r",
+ "5 24 39\r",
+ "5 24 40\r",
+ "5 24 41\r",
+ "5 24 42\r",
+ "5 24 43\r",
+ "5 24 44\r",
+ "5 24 45\r",
+ "5 24 46\r",
+ "5 24 47\r",
+ "5 24 48\r",
+ "5 24 49\r",
+ "5 24 50\r",
+ "5 24 51\r",
+ "5 24 52\r",
+ "5 24 53\r",
+ "5 24 54\r",
+ "5 24 55\r",
+ "5 24 56\r",
+ "5 24 57\r",
+ "5 24 58\r",
+ "5 25 1\r",
+ "5 25 2\r",
+ "5 25 3\r",
+ "5 25 4\r",
+ "5 25 5\r",
+ "5 25 6\r",
+ "5 25 7\r",
+ "5 25 8\r",
+ "5 25 9\r",
+ "5 25 10\r",
+ "5 25 11\r",
+ "5 25 12\r",
+ "5 25 13\r",
+ "5 25 14\r",
+ "5 25 15\r",
+ "5 25 16\r",
+ "5 25 17\r",
+ "5 25 18\r",
+ "5 25 19\r",
+ "5 25 20\r",
+ "5 25 21\r",
+ "5 25 22\r",
+ "5 25 23\r",
+ "5 25 24\r",
+ "5 25 25\r",
+ "5 25 26\r",
+ "5 25 27\r",
+ "5 25 28\r",
+ "5 25 29\r",
+ "5 25 30\r",
+ "5 25 31\r",
+ "5 25 32\r",
+ "5 25 33\r",
+ "5 25 34\r",
+ "5 25 35\r",
+ "5 25 36\r",
+ "5 25 37\r",
+ "5 25 38\r",
+ "5 25 39\r",
+ "5 25 40\r",
+ "5 25 41\r",
+ "5 25 42\r",
+ "5 25 43\r",
+ "5 25 44\r",
+ "5 25 45\r",
+ "5 25 46\r",
+ "5 25 47\r",
+ "5 25 48\r",
+ "5 25 49\r",
+ "5 25 50\r",
+ "5 25 51\r",
+ "5 25 52\r",
+ "5 25 53\r",
+ "5 25 54\r",
+ "5 25 55\r",
+ "5 25 56\r",
+ "5 25 57\r",
+ "5 25 58\r",
+ "5 26 1\r",
+ "5 26 2\r",
+ "5 26 3\r",
+ "5 26 4\r",
+ "5 26 5\r",
+ "5 26 6\r",
+ "5 26 7\r",
+ "5 26 8\r",
+ "5 26 9\r",
+ "5 26 10\r",
+ "5 26 11\r",
+ "5 26 12\r",
+ "5 26 13\r",
+ "5 26 14\r",
+ "5 26 15\r",
+ "5 26 16\r",
+ "5 26 17\r",
+ "5 26 18\r",
+ "5 26 19\r",
+ "5 26 20\r",
+ "5 26 21\r",
+ "5 26 22\r",
+ "5 26 23\r",
+ "5 26 24\r",
+ "5 26 25\r",
+ "5 26 26\r",
+ "5 26 27\r",
+ "5 26 28\r",
+ "5 26 29\r",
+ "5 26 30\r",
+ "5 26 31\r",
+ "5 26 32\r",
+ "5 26 33\r",
+ "5 26 34\r",
+ "5 26 35\r",
+ "5 26 36\r",
+ "5 26 37\r",
+ "5 26 38\r",
+ "5 26 39\r",
+ "5 26 40\r",
+ "5 26 41\r",
+ "5 26 42\r",
+ "5 26 43\r",
+ "5 26 44\r",
+ "5 26 45\r",
+ "5 26 46\r",
+ "5 26 47\r",
+ "5 26 48\r",
+ "5 26 49\r",
+ "5 26 50\r",
+ "5 26 51\r",
+ "5 26 52\r",
+ "5 26 53\r",
+ "5 26 54\r",
+ "5 26 55\r",
+ "5 26 56\r",
+ "5 26 57\r",
+ "5 26 58\r",
+ "5 27 1\r",
+ "5 27 2\r",
+ "5 27 3\r",
+ "5 27 4\r",
+ "5 27 5\r",
+ "5 27 6\r",
+ "5 27 7\r",
+ "5 27 8\r",
+ "5 27 9\r",
+ "5 27 10\r",
+ "5 27 11\r",
+ "5 27 12\r",
+ "5 27 13\r",
+ "5 27 14\r",
+ "5 27 15\r",
+ "5 27 16\r",
+ "5 27 17\r",
+ "5 27 18\r",
+ "5 27 19\r",
+ "5 27 20\r",
+ "5 27 21\r",
+ "5 27 22\r",
+ "5 27 23\r",
+ "5 27 24\r",
+ "5 27 25\r",
+ "5 27 26\r",
+ "5 27 27\r",
+ "5 27 28\r",
+ "5 27 29\r",
+ "5 27 30\r",
+ "5 27 31\r",
+ "5 27 32\r",
+ "5 27 33\r",
+ "5 27 34\r",
+ "5 27 35\r",
+ "5 27 36\r",
+ "5 27 37\r",
+ "5 27 38\r",
+ "5 27 39\r",
+ "5 27 40\r",
+ "5 27 41\r",
+ "5 27 42\r",
+ "5 27 43\r",
+ "5 27 44\r",
+ "5 27 45\r",
+ "5 27 46\r",
+ "5 27 47\r",
+ "5 27 48\r",
+ "5 27 49\r",
+ "5 27 50\r",
+ "5 27 51\r",
+ "5 27 52\r",
+ "5 27 53\r",
+ "5 27 54\r",
+ "5 27 55\r",
+ "5 27 56\r",
+ "5 27 57\r",
+ "5 27 58\r",
+ "5 28 1\r",
+ "5 28 2\r",
+ "5 28 3\r",
+ "5 28 4\r",
+ "5 28 5\r",
+ "5 28 6\r",
+ "5 28 7\r",
+ "5 28 8\r",
+ "5 28 9\r",
+ "5 28 10\r",
+ "5 28 11\r",
+ "5 28 12\r",
+ "5 28 13\r",
+ "5 28 14\r",
+ "5 28 15\r",
+ "5 28 16\r",
+ "5 28 17\r",
+ "5 28 18\r",
+ "5 28 19\r",
+ "5 28 20\r",
+ "5 28 21\r",
+ "5 28 22\r",
+ "5 28 23\r",
+ "5 28 24\r",
+ "5 28 25\r",
+ "5 28 26\r",
+ "5 28 27\r",
+ "5 28 28\r",
+ "5 28 29\r",
+ "5 28 30\r",
+ "5 28 31\r",
+ "5 28 32\r",
+ "5 28 33\r",
+ "5 28 34\r",
+ "5 28 35\r",
+ "5 28 36\r",
+ "5 28 37\r",
+ "5 28 38\r",
+ "5 28 39\r",
+ "5 28 40\r",
+ "5 28 41\r",
+ "5 28 42\r",
+ "5 28 43\r",
+ "5 28 44\r",
+ "5 28 45\r",
+ "5 28 46\r",
+ "5 28 47\r",
+ "5 28 48\r",
+ "5 28 49\r",
+ "5 28 50\r",
+ "5 28 51\r",
+ "5 28 52\r",
+ "5 28 53\r",
+ "5 28 54\r",
+ "5 28 55\r",
+ "5 28 56\r",
+ "5 28 57\r",
+ "5 28 58\r",
+ "5 29 1\r",
+ "5 29 2\r",
+ "5 29 3\r",
+ "5 29 4\r",
+ "5 29 5\r",
+ "5 29 6\r",
+ "5 29 7\r",
+ "5 29 8\r",
+ "5 29 9\r",
+ "5 29 10\r",
+ "5 29 11\r",
+ "5 29 12\r",
+ "5 29 13\r",
+ "5 29 14\r",
+ "5 29 15\r",
+ "5 29 16\r",
+ "5 29 17\r",
+ "5 29 18\r",
+ "5 29 19\r",
+ "5 29 20\r",
+ "5 29 21\r",
+ "5 29 22\r",
+ "5 29 23\r",
+ "5 29 24\r",
+ "5 29 25\r",
+ "5 29 26\r",
+ "5 29 27\r",
+ "5 29 28\r",
+ "5 29 29\r",
+ "5 29 30\r",
+ "5 29 31\r",
+ "5 29 32\r",
+ "5 29 33\r",
+ "5 29 34\r",
+ "5 29 35\r",
+ "5 29 36\r",
+ "5 29 37\r",
+ "5 29 38\r",
+ "5 29 39\r",
+ "5 29 40\r",
+ "5 29 41\r",
+ "5 29 42\r",
+ "5 29 43\r",
+ "5 29 44\r",
+ "5 29 45\r",
+ "5 29 46\r",
+ "5 29 47\r",
+ "5 29 48\r",
+ "5 29 49\r",
+ "5 29 50\r",
+ "5 29 51\r",
+ "5 29 52\r",
+ "5 29 53\r",
+ "5 29 54\r",
+ "5 29 55\r",
+ "5 29 56\r",
+ "5 29 57\r",
+ "5 29 58\r",
+ "5 30 1\r",
+ "5 30 2\r",
+ "5 30 3\r",
+ "5 30 4\r",
+ "5 30 5\r",
+ "5 30 6\r",
+ "5 30 7\r",
+ "5 30 8\r",
+ "5 30 9\r",
+ "5 30 10\r",
+ "5 30 11\r",
+ "5 30 12\r",
+ "5 30 13\r",
+ "5 30 14\r",
+ "5 30 15\r",
+ "5 30 16\r",
+ "5 30 17\r",
+ "5 30 18\r",
+ "5 30 19\r",
+ "5 30 20\r",
+ "5 30 21\r",
+ "5 30 22\r",
+ "5 30 23\r",
+ "5 30 24\r",
+ "5 30 25\r",
+ "5 30 26\r",
+ "5 30 27\r",
+ "5 30 28\r",
+ "5 30 29\r",
+ "5 30 30\r",
+ "5 30 31\r",
+ "5 30 32\r",
+ "5 30 33\r",
+ "5 30 34\r",
+ "5 30 35\r",
+ "5 30 36\r",
+ "5 30 37\r",
+ "5 30 38\r",
+ "5 30 39\r",
+ "5 30 40\r",
+ "5 30 41\r",
+ "5 30 42\r",
+ "5 30 43\r",
+ "5 30 44\r",
+ "5 30 45\r",
+ "5 30 46\r",
+ "5 30 47\r",
+ "5 30 48\r",
+ "5 30 49\r",
+ "5 30 50\r",
+ "5 30 51\r",
+ "5 30 52\r",
+ "5 30 53\r",
+ "5 30 54\r",
+ "5 30 55\r",
+ "5 30 56\r",
+ "5 30 57\r",
+ "5 30 58\r",
+ "5 31 1\r",
+ "5 31 2\r",
+ "5 31 3\r",
+ "5 31 4\r",
+ "5 31 5\r",
+ "5 31 6\r",
+ "5 31 7\r",
+ "5 31 8\r",
+ "5 31 9\r",
+ "5 31 10\r",
+ "5 31 11\r",
+ "5 31 12\r",
+ "5 31 13\r",
+ "5 31 14\r",
+ "5 31 15\r",
+ "5 31 16\r",
+ "5 31 17\r",
+ "5 31 18\r",
+ "5 31 19\r",
+ "5 31 20\r",
+ "5 31 21\r",
+ "5 31 22\r",
+ "5 31 23\r",
+ "5 31 24\r",
+ "5 31 25\r",
+ "5 31 26\r",
+ "5 31 27\r",
+ "5 31 28\r",
+ "5 31 29\r",
+ "5 31 30\r",
+ "5 31 31\r",
+ "5 31 32\r",
+ "5 31 33\r",
+ "5 31 34\r",
+ "5 31 35\r",
+ "5 31 36\r",
+ "5 31 37\r",
+ "5 31 38\r",
+ "5 31 39\r",
+ "5 31 40\r",
+ "5 31 41\r",
+ "5 31 42\r",
+ "5 31 43\r",
+ "5 31 44\r",
+ "5 31 45\r",
+ "5 31 46\r",
+ "5 31 47\r",
+ "5 31 48\r",
+ "5 31 49\r",
+ "5 31 50\r",
+ "5 31 51\r",
+ "5 31 52\r",
+ "5 31 53\r",
+ "5 31 54\r",
+ "5 31 55\r",
+ "5 31 56\r",
+ "5 31 57\r",
+ "5 31 58\r",
+ "5 32 1\r",
+ "5 32 2\r",
+ "5 32 3\r",
+ "5 32 4\r",
+ "5 32 5\r",
+ "5 32 6\r",
+ "5 32 7\r",
+ "5 32 8\r",
+ "5 32 9\r",
+ "5 32 10\r",
+ "5 32 11\r",
+ "5 32 12\r",
+ "5 32 13\r",
+ "5 32 14\r",
+ "5 32 15\r",
+ "5 32 16\r",
+ "5 32 17\r",
+ "5 32 18\r",
+ "5 32 19\r",
+ "5 32 20\r",
+ "5 32 21\r",
+ "5 32 22\r",
+ "5 32 23\r",
+ "5 32 24\r",
+ "5 32 25\r",
+ "5 32 26\r",
+ "5 32 27\r",
+ "5 32 28\r",
+ "5 32 29\r",
+ "5 32 30\r",
+ "5 32 31\r",
+ "5 32 32\r",
+ "5 32 33\r",
+ "5 32 34\r",
+ "5 32 35\r",
+ "5 32 36\r",
+ "5 32 37\r",
+ "5 32 38\r",
+ "5 32 39\r",
+ "5 32 40\r",
+ "5 32 41\r",
+ "5 32 42\r",
+ "5 32 43\r",
+ "5 32 44\r",
+ "5 32 45\r",
+ "5 32 46\r",
+ "5 32 47\r",
+ "5 32 48\r",
+ "5 32 49\r",
+ "5 32 50\r",
+ "5 32 51\r",
+ "5 32 52\r",
+ "5 32 53\r",
+ "5 32 54\r",
+ "5 32 55\r",
+ "5 32 56\r",
+ "5 32 57\r",
+ "5 32 58\r",
+ "5 33 1\r",
+ "5 33 2\r",
+ "5 33 3\r",
+ "5 33 4\r",
+ "5 33 5\r",
+ "5 33 6\r",
+ "5 33 7\r",
+ "5 33 8\r",
+ "5 33 9\r",
+ "5 33 10\r",
+ "5 33 11\r",
+ "5 33 12\r",
+ "5 33 13\r",
+ "5 33 14\r",
+ "5 33 15\r",
+ "5 33 16\r",
+ "5 33 17\r",
+ "5 33 18\r",
+ "5 33 19\r",
+ "5 33 20\r",
+ "5 33 21\r",
+ "5 33 22\r",
+ "5 33 23\r",
+ "5 33 24\r",
+ "5 33 25\r",
+ "5 33 26\r",
+ "5 33 27\r",
+ "5 33 28\r",
+ "5 33 29\r",
+ "5 33 30\r",
+ "5 33 31\r",
+ "5 33 32\r",
+ "5 33 33\r",
+ "5 33 34\r",
+ "5 33 35\r",
+ "5 33 36\r",
+ "5 33 37\r",
+ "5 33 38\r",
+ "5 33 39\r",
+ "5 33 40\r",
+ "5 33 41\r",
+ "5 33 42\r",
+ "5 33 43\r",
+ "5 33 44\r",
+ "5 33 45\r",
+ "5 33 46\r",
+ "5 33 47\r",
+ "5 33 48\r",
+ "5 33 49\r",
+ "5 33 50\r",
+ "5 33 51\r",
+ "5 33 52\r",
+ "5 33 53\r",
+ "5 33 54\r",
+ "5 33 55\r",
+ "5 33 56\r",
+ "5 33 57\r",
+ "5 33 58\r",
+ "5 34 1\r",
+ "5 34 2\r",
+ "5 34 3\r",
+ "5 34 4\r",
+ "5 34 5\r",
+ "5 34 6\r",
+ "5 34 7\r",
+ "5 34 8\r",
+ "5 34 9\r",
+ "5 34 10\r",
+ "5 34 11\r",
+ "5 34 12\r",
+ "5 34 13\r",
+ "5 34 14\r",
+ "5 34 15\r",
+ "5 34 16\r",
+ "5 34 17\r",
+ "5 34 18\r",
+ "5 34 19\r",
+ "5 34 20\r",
+ "5 34 21\r",
+ "5 34 22\r",
+ "5 34 23\r",
+ "5 34 24\r",
+ "5 34 25\r",
+ "5 34 26\r",
+ "5 34 27\r",
+ "5 34 28\r",
+ "5 34 29\r",
+ "5 34 30\r",
+ "5 34 31\r",
+ "5 34 32\r",
+ "5 34 33\r",
+ "5 34 34\r",
+ "5 34 35\r",
+ "5 34 36\r",
+ "5 34 37\r",
+ "5 34 38\r",
+ "5 34 39\r",
+ "5 34 40\r",
+ "5 34 41\r",
+ "5 34 42\r",
+ "5 34 43\r",
+ "5 34 44\r",
+ "5 34 45\r",
+ "5 34 46\r",
+ "5 34 47\r",
+ "5 34 48\r",
+ "5 34 49\r",
+ "5 34 50\r",
+ "5 34 51\r",
+ "5 34 52\r",
+ "5 34 53\r",
+ "5 34 54\r",
+ "5 34 55\r",
+ "5 34 56\r",
+ "5 34 57\r",
+ "5 34 58\r",
+ "5 35 1\r",
+ "5 35 2\r",
+ "5 35 3\r",
+ "5 35 4\r",
+ "5 35 5\r",
+ "5 35 6\r",
+ "5 35 7\r",
+ "5 35 8\r",
+ "5 35 9\r",
+ "5 35 10\r",
+ "5 35 11\r",
+ "5 35 12\r",
+ "5 35 13\r",
+ "5 35 14\r",
+ "5 35 15\r",
+ "5 35 16\r",
+ "5 35 17\r",
+ "5 35 18\r",
+ "5 35 19\r",
+ "5 35 20\r",
+ "5 35 21\r",
+ "5 35 22\r",
+ "5 35 23\r",
+ "5 35 24\r",
+ "5 35 25\r",
+ "5 35 26\r",
+ "5 35 27\r",
+ "5 35 28\r",
+ "5 35 29\r",
+ "5 35 30\r",
+ "5 35 31\r",
+ "5 35 32\r",
+ "5 35 33\r",
+ "5 35 34\r",
+ "5 35 35\r",
+ "5 35 36\r",
+ "5 35 37\r",
+ "5 35 38\r",
+ "5 35 39\r",
+ "5 35 40\r",
+ "5 35 41\r",
+ "5 35 42\r",
+ "5 35 43\r",
+ "5 35 44\r",
+ "5 35 45\r",
+ "5 35 46\r",
+ "5 35 47\r",
+ "5 35 48\r",
+ "5 35 49\r",
+ "5 35 50\r",
+ "5 35 51\r",
+ "5 35 52\r",
+ "5 35 53\r",
+ "5 35 54\r",
+ "5 35 55\r",
+ "5 35 56\r",
+ "5 35 57\r",
+ "5 35 58\r",
+ "5 36 1\r",
+ "5 36 2\r",
+ "5 36 3\r",
+ "5 36 4\r",
+ "5 36 5\r",
+ "5 36 6\r",
+ "5 36 7\r",
+ "5 36 8\r",
+ "5 36 9\r",
+ "5 36 10\r",
+ "5 36 11\r",
+ "5 36 12\r",
+ "5 36 13\r",
+ "5 36 14\r",
+ "5 36 15\r",
+ "5 36 16\r",
+ "5 36 17\r",
+ "5 36 18\r",
+ "5 36 19\r",
+ "5 36 20\r",
+ "5 36 21\r",
+ "5 36 22\r",
+ "5 36 23\r",
+ "5 36 24\r",
+ "5 36 25\r",
+ "5 36 26\r",
+ "5 36 27\r",
+ "5 36 28\r",
+ "5 36 29\r",
+ "5 36 30\r",
+ "5 36 31\r",
+ "5 36 32\r",
+ "5 36 33\r",
+ "5 36 34\r",
+ "5 36 35\r",
+ "5 36 36\r",
+ "5 36 37\r",
+ "5 36 38\r",
+ "5 36 39\r",
+ "5 36 40\r",
+ "5 36 41\r",
+ "5 36 42\r",
+ "5 36 43\r",
+ "5 36 44\r",
+ "5 36 45\r",
+ "5 36 46\r",
+ "5 36 47\r",
+ "5 36 48\r",
+ "5 36 49\r",
+ "5 36 50\r",
+ "5 36 51\r",
+ "5 36 52\r",
+ "5 36 53\r",
+ "5 36 54\r",
+ "5 36 55\r",
+ "5 36 56\r",
+ "5 36 57\r",
+ "5 36 58\r",
+ "5 37 1\r",
+ "5 37 2\r",
+ "5 37 3\r",
+ "5 37 4\r",
+ "5 37 5\r",
+ "5 37 6\r",
+ "5 37 7\r",
+ "5 37 8\r",
+ "5 37 9\r",
+ "5 37 10\r",
+ "5 37 11\r",
+ "5 37 12\r",
+ "5 37 13\r",
+ "5 37 14\r",
+ "5 37 15\r",
+ "5 37 16\r",
+ "5 37 17\r",
+ "5 37 18\r",
+ "5 37 19\r",
+ "5 37 20\r",
+ "5 37 21\r",
+ "5 37 22\r",
+ "5 37 23\r",
+ "5 37 24\r",
+ "5 37 25\r",
+ "5 37 26\r",
+ "5 37 27\r",
+ "5 37 28\r",
+ "5 37 29\r",
+ "5 37 30\r",
+ "5 37 31\r",
+ "5 37 32\r",
+ "5 37 33\r",
+ "5 37 34\r",
+ "5 37 35\r",
+ "5 37 36\r",
+ "5 37 37\r",
+ "5 37 38\r",
+ "5 37 39\r",
+ "5 37 40\r",
+ "5 37 41\r",
+ "5 37 42\r",
+ "5 37 43\r",
+ "5 37 44\r",
+ "5 37 45\r",
+ "5 37 46\r",
+ "5 37 47\r",
+ "5 37 48\r",
+ "5 37 49\r",
+ "5 37 50\r",
+ "5 37 51\r",
+ "5 37 52\r",
+ "5 37 53\r",
+ "5 37 54\r",
+ "5 37 55\r",
+ "5 37 56\r",
+ "5 37 57\r",
+ "5 37 58\r",
+ "5 38 1\r",
+ "5 38 2\r",
+ "5 38 3\r",
+ "5 38 4\r",
+ "5 38 5\r",
+ "5 38 6\r",
+ "5 38 7\r",
+ "5 38 8\r",
+ "5 38 9\r",
+ "5 38 10\r",
+ "5 38 11\r",
+ "5 38 12\r",
+ "5 38 13\r",
+ "5 38 14\r",
+ "5 38 15\r",
+ "5 38 16\r",
+ "5 38 17\r",
+ "5 38 18\r",
+ "5 38 19\r",
+ "5 38 20\r",
+ "5 38 21\r",
+ "5 38 22\r",
+ "5 38 23\r",
+ "5 38 24\r",
+ "5 38 25\r",
+ "5 38 26\r",
+ "5 38 27\r",
+ "5 38 28\r",
+ "5 38 29\r",
+ "5 38 30\r",
+ "5 38 31\r",
+ "5 38 32\r",
+ "5 38 33\r",
+ "5 38 34\r",
+ "5 38 35\r",
+ "5 38 36\r",
+ "5 38 37\r",
+ "5 38 38\r",
+ "5 38 39\r",
+ "5 38 40\r",
+ "5 38 41\r",
+ "5 38 42\r",
+ "5 38 43\r",
+ "5 38 44\r",
+ "5 38 45\r",
+ "5 38 46\r",
+ "5 38 47\r",
+ "5 38 48\r",
+ "5 38 49\r",
+ "5 38 50\r",
+ "5 38 51\r",
+ "5 38 52\r",
+ "5 38 53\r",
+ "5 38 54\r",
+ "5 38 55\r",
+ "5 38 56\r",
+ "5 38 57\r",
+ "5 38 58\r",
+ "5 39 1\r",
+ "5 39 2\r",
+ "5 39 3\r",
+ "5 39 4\r",
+ "5 39 5\r",
+ "5 39 6\r",
+ "5 39 7\r",
+ "5 39 8\r",
+ "5 39 9\r",
+ "5 39 10\r",
+ "5 39 11\r",
+ "5 39 12\r",
+ "5 39 13\r",
+ "5 39 14\r",
+ "5 39 15\r",
+ "5 39 16\r",
+ "5 39 17\r",
+ "5 39 18\r",
+ "5 39 19\r",
+ "5 39 20\r",
+ "5 39 21\r",
+ "5 39 22\r",
+ "5 39 23\r",
+ "5 39 24\r",
+ "5 39 25\r",
+ "5 39 26\r",
+ "5 39 27\r",
+ "5 39 28\r",
+ "5 39 29\r",
+ "5 39 30\r",
+ "5 39 31\r",
+ "5 39 32\r",
+ "5 39 33\r",
+ "5 39 34\r",
+ "5 39 35\r",
+ "5 39 36\r",
+ "5 39 37\r",
+ "5 39 38\r",
+ "5 39 39\r",
+ "5 39 40\r",
+ "5 39 41\r",
+ "5 39 42\r",
+ "5 39 43\r",
+ "5 39 44\r",
+ "5 39 45\r",
+ "5 39 46\r",
+ "5 39 47\r",
+ "5 39 48\r",
+ "5 39 49\r",
+ "5 39 50\r",
+ "5 39 51\r",
+ "5 39 52\r",
+ "5 39 53\r",
+ "5 39 54\r",
+ "5 39 55\r",
+ "5 39 56\r",
+ "5 39 57\r",
+ "5 39 58\r",
+ "5 40 1\r",
+ "5 40 2\r",
+ "5 40 3\r",
+ "5 40 4\r",
+ "5 40 5\r",
+ "5 40 6\r",
+ "5 40 7\r",
+ "5 40 8\r",
+ "5 40 9\r",
+ "5 40 10\r",
+ "5 40 11\r",
+ "5 40 12\r",
+ "5 40 13\r",
+ "5 40 14\r",
+ "5 40 15\r",
+ "5 40 16\r",
+ "5 40 17\r",
+ "5 40 18\r",
+ "5 40 19\r",
+ "5 40 20\r",
+ "5 40 21\r",
+ "5 40 22\r",
+ "5 40 23\r",
+ "5 40 24\r",
+ "5 40 25\r",
+ "5 40 26\r",
+ "5 40 27\r",
+ "5 40 28\r",
+ "5 40 29\r",
+ "5 40 30\r",
+ "5 40 31\r",
+ "5 40 32\r",
+ "5 40 33\r",
+ "5 40 34\r",
+ "5 40 35\r",
+ "5 40 36\r",
+ "5 40 37\r",
+ "5 40 38\r",
+ "5 40 39\r",
+ "5 40 40\r",
+ "5 40 41\r",
+ "5 40 42\r",
+ "5 40 43\r",
+ "5 40 44\r",
+ "5 40 45\r",
+ "5 40 46\r",
+ "5 40 47\r",
+ "5 40 48\r",
+ "5 40 49\r",
+ "5 40 50\r",
+ "5 40 51\r",
+ "5 40 52\r",
+ "5 40 53\r",
+ "5 40 54\r",
+ "5 40 55\r",
+ "5 40 56\r",
+ "5 40 57\r",
+ "5 40 58\r",
+ "5 41 1\r",
+ "5 41 2\r",
+ "5 41 3\r",
+ "5 41 4\r",
+ "5 41 5\r",
+ "5 41 6\r",
+ "5 41 7\r",
+ "5 41 8\r",
+ "5 41 9\r",
+ "5 41 10\r",
+ "5 41 11\r",
+ "5 41 12\r",
+ "5 41 13\r",
+ "5 41 14\r",
+ "5 41 15\r",
+ "5 41 16\r",
+ "5 41 17\r",
+ "5 41 18\r",
+ "5 41 19\r",
+ "5 41 20\r",
+ "5 41 21\r",
+ "5 41 22\r",
+ "5 41 23\r",
+ "5 41 24\r",
+ "5 41 25\r",
+ "5 41 26\r",
+ "5 41 27\r",
+ "5 41 28\r",
+ "5 41 29\r",
+ "5 41 30\r",
+ "5 41 31\r",
+ "5 41 32\r",
+ "5 41 33\r",
+ "5 41 34\r",
+ "5 41 35\r",
+ "5 41 36\r",
+ "5 41 37\r",
+ "5 41 38\r",
+ "5 41 39\r",
+ "5 41 40\r",
+ "5 41 41\r",
+ "5 41 42\r",
+ "5 41 43\r",
+ "5 41 44\r",
+ "5 41 45\r",
+ "5 41 46\r",
+ "5 41 47\r",
+ "5 41 48\r",
+ "5 41 49\r",
+ "5 41 50\r",
+ "5 41 51\r",
+ "5 41 52\r",
+ "5 41 53\r",
+ "5 41 54\r",
+ "5 41 55\r",
+ "5 41 56\r",
+ "5 41 57\r",
+ "5 41 58\r",
+ "5 42 1\r",
+ "5 42 2\r",
+ "5 42 3\r",
+ "5 42 4\r",
+ "5 42 5\r",
+ "5 42 6\r",
+ "5 42 7\r",
+ "5 42 8\r",
+ "5 42 9\r",
+ "5 42 10\r",
+ "5 42 11\r",
+ "5 42 12\r",
+ "5 42 13\r",
+ "5 42 14\r",
+ "5 42 15\r",
+ "5 42 16\r",
+ "5 42 17\r",
+ "5 42 18\r",
+ "5 42 19\r",
+ "5 42 20\r",
+ "5 42 21\r",
+ "5 42 22\r",
+ "5 42 23\r",
+ "5 42 24\r",
+ "5 42 25\r",
+ "5 42 26\r",
+ "5 42 27\r",
+ "5 42 28\r",
+ "5 42 29\r",
+ "5 42 30\r",
+ "5 42 31\r",
+ "5 42 32\r",
+ "5 42 33\r",
+ "5 42 34\r",
+ "5 42 35\r",
+ "5 42 36\r",
+ "5 42 37\r",
+ "5 42 38\r",
+ "5 42 39\r",
+ "5 42 40\r",
+ "5 42 41\r",
+ "5 42 42\r",
+ "5 42 43\r",
+ "5 42 44\r",
+ "5 42 45\r",
+ "5 42 46\r",
+ "5 42 47\r",
+ "5 42 48\r",
+ "5 42 49\r",
+ "5 42 50\r",
+ "5 42 51\r",
+ "5 42 52\r",
+ "5 42 53\r",
+ "5 42 54\r",
+ "5 42 55\r",
+ "5 42 56\r",
+ "5 42 57\r",
+ "5 42 58\r",
+ "5 43 1\r",
+ "5 43 2\r",
+ "5 43 3\r",
+ "5 43 4\r",
+ "5 43 5\r",
+ "5 43 6\r",
+ "5 43 7\r",
+ "5 43 8\r",
+ "5 43 9\r",
+ "5 43 10\r",
+ "5 43 11\r",
+ "5 43 12\r",
+ "5 43 13\r",
+ "5 43 14\r",
+ "5 43 15\r",
+ "5 43 16\r",
+ "5 43 17\r",
+ "5 43 18\r",
+ "5 43 19\r",
+ "5 43 20\r",
+ "5 43 21\r",
+ "5 43 22\r",
+ "5 43 23\r",
+ "5 43 24\r",
+ "5 43 25\r",
+ "5 43 26\r",
+ "5 43 27\r",
+ "5 43 28\r",
+ "5 43 29\r",
+ "5 43 30\r",
+ "5 43 31\r",
+ "5 43 32\r",
+ "5 43 33\r",
+ "5 43 34\r",
+ "5 43 35\r",
+ "5 43 36\r",
+ "5 43 37\r",
+ "5 43 38\r",
+ "5 43 39\r",
+ "5 43 40\r",
+ "5 43 41\r",
+ "5 43 42\r",
+ "5 43 43\r",
+ "5 43 44\r",
+ "5 43 45\r",
+ "5 43 46\r",
+ "5 43 47\r",
+ "5 43 48\r",
+ "5 43 49\r",
+ "5 43 50\r",
+ "5 43 51\r",
+ "5 43 52\r",
+ "5 43 53\r",
+ "5 43 54\r",
+ "5 43 55\r",
+ "5 43 56\r",
+ "5 43 57\r",
+ "5 43 58\r",
+ "5 44 1\r",
+ "5 44 2\r",
+ "5 44 3\r",
+ "5 44 4\r",
+ "5 44 5\r",
+ "5 44 6\r",
+ "5 44 7\r",
+ "5 44 8\r",
+ "5 44 9\r",
+ "5 44 10\r",
+ "5 44 11\r",
+ "5 44 12\r",
+ "5 44 13\r",
+ "5 44 14\r",
+ "5 44 15\r",
+ "5 44 16\r",
+ "5 44 17\r",
+ "5 44 18\r",
+ "5 44 19\r",
+ "5 44 20\r",
+ "5 44 21\r",
+ "5 44 22\r",
+ "5 44 23\r",
+ "5 44 24\r",
+ "5 44 25\r",
+ "5 44 26\r",
+ "5 44 27\r",
+ "5 44 28\r",
+ "5 44 29\r",
+ "5 44 30\r",
+ "5 44 31\r",
+ "5 44 32\r",
+ "5 44 33\r",
+ "5 44 34\r",
+ "5 44 35\r",
+ "5 44 36\r",
+ "5 44 37\r",
+ "5 44 38\r",
+ "5 44 39\r",
+ "5 44 40\r",
+ "5 44 41\r",
+ "5 44 42\r",
+ "5 44 43\r",
+ "5 44 44\r",
+ "5 44 45\r",
+ "5 44 46\r",
+ "5 44 47\r",
+ "5 44 48\r",
+ "5 44 49\r",
+ "5 44 50\r",
+ "5 44 51\r",
+ "5 44 52\r",
+ "5 44 53\r",
+ "5 44 54\r",
+ "5 44 55\r",
+ "5 44 56\r",
+ "5 44 57\r",
+ "5 44 58\r",
+ "5 45 1\r",
+ "5 45 2\r",
+ "5 45 3\r",
+ "5 45 4\r",
+ "5 45 5\r",
+ "5 45 6\r",
+ "5 45 7\r",
+ "5 45 8\r",
+ "5 45 9\r",
+ "5 45 10\r",
+ "5 45 11\r",
+ "5 45 12\r",
+ "5 45 13\r",
+ "5 45 14\r",
+ "5 45 15\r",
+ "5 45 16\r",
+ "5 45 17\r",
+ "5 45 18\r",
+ "5 45 19\r",
+ "5 45 20\r",
+ "5 45 21\r",
+ "5 45 22\r",
+ "5 45 23\r",
+ "5 45 24\r",
+ "5 45 25\r",
+ "5 45 26\r",
+ "5 45 27\r",
+ "5 45 28\r",
+ "5 45 29\r",
+ "5 45 30\r",
+ "5 45 31\r",
+ "5 45 32\r",
+ "5 45 33\r",
+ "5 45 34\r",
+ "5 45 35\r",
+ "5 45 36\r",
+ "5 45 37\r",
+ "5 45 38\r",
+ "5 45 39\r",
+ "5 45 40\r",
+ "5 45 41\r",
+ "5 45 42\r",
+ "5 45 43\r",
+ "5 45 44\r",
+ "5 45 45\r",
+ "5 45 46\r",
+ "5 45 47\r",
+ "5 45 48\r",
+ "5 45 49\r",
+ "5 45 50\r",
+ "5 45 51\r",
+ "5 45 52\r",
+ "5 45 53\r",
+ "5 45 54\r",
+ "5 45 55\r",
+ "5 45 56\r",
+ "5 45 57\r",
+ "5 45 58\r",
+ "5 46 1\r",
+ "5 46 2\r",
+ "5 46 3\r",
+ "5 46 4\r",
+ "5 46 5\r",
+ "5 46 6\r",
+ "5 46 7\r",
+ "5 46 8\r",
+ "5 46 9\r",
+ "5 46 10\r",
+ "5 46 11\r",
+ "5 46 12\r",
+ "5 46 13\r",
+ "5 46 14\r",
+ "5 46 15\r",
+ "5 46 16\r",
+ "5 46 17\r",
+ "5 46 18\r",
+ "5 46 19\r",
+ "5 46 20\r",
+ "5 46 21\r",
+ "5 46 22\r",
+ "5 46 23\r",
+ "5 46 24\r",
+ "5 46 25\r",
+ "5 46 26\r",
+ "5 46 27\r",
+ "5 46 28\r",
+ "5 46 29\r",
+ "5 46 30\r",
+ "5 46 31\r",
+ "5 46 32\r",
+ "5 46 33\r",
+ "5 46 34\r",
+ "5 46 35\r",
+ "5 46 36\r",
+ "5 46 37\r",
+ "5 46 38\r",
+ "5 46 39\r",
+ "5 46 40\r",
+ "5 46 41\r",
+ "5 46 42\r",
+ "5 46 43\r",
+ "5 46 44\r",
+ "5 46 45\r",
+ "5 46 46\r",
+ "5 46 47\r",
+ "5 46 48\r",
+ "5 46 49\r",
+ "5 46 50\r",
+ "5 46 51\r",
+ "5 46 52\r",
+ "5 46 53\r",
+ "5 46 54\r",
+ "5 46 55\r",
+ "5 46 56\r",
+ "5 46 57\r",
+ "5 46 58\r",
+ "5 47 1\r",
+ "5 47 2\r",
+ "5 47 3\r",
+ "5 47 4\r",
+ "5 47 5\r",
+ "5 47 6\r",
+ "5 47 7\r",
+ "5 47 8\r",
+ "5 47 9\r",
+ "5 47 10\r",
+ "5 47 11\r",
+ "5 47 12\r",
+ "5 47 13\r",
+ "5 47 14\r",
+ "5 47 15\r",
+ "5 47 16\r",
+ "5 47 17\r",
+ "5 47 18\r",
+ "5 47 19\r",
+ "5 47 20\r",
+ "5 47 21\r",
+ "5 47 22\r",
+ "5 47 23\r",
+ "5 47 24\r",
+ "5 47 25\r",
+ "5 47 26\r",
+ "5 47 27\r",
+ "5 47 28\r",
+ "5 47 29\r",
+ "5 47 30\r",
+ "5 47 31\r",
+ "5 47 32\r",
+ "5 47 33\r",
+ "5 47 34\r",
+ "5 47 35\r",
+ "5 47 36\r",
+ "5 47 37\r",
+ "5 47 38\r",
+ "5 47 39\r",
+ "5 47 40\r",
+ "5 47 41\r",
+ "5 47 42\r",
+ "5 47 43\r",
+ "5 47 44\r",
+ "5 47 45\r",
+ "5 47 46\r",
+ "5 47 47\r",
+ "5 47 48\r",
+ "5 47 49\r",
+ "5 47 50\r",
+ "5 47 51\r",
+ "5 47 52\r",
+ "5 47 53\r",
+ "5 47 54\r",
+ "5 47 55\r",
+ "5 47 56\r",
+ "5 47 57\r",
+ "5 47 58\r",
+ "5 48 1\r",
+ "5 48 2\r",
+ "5 48 3\r",
+ "5 48 4\r",
+ "5 48 5\r",
+ "5 48 6\r",
+ "5 48 7\r",
+ "5 48 8\r",
+ "5 48 9\r",
+ "5 48 10\r",
+ "5 48 11\r",
+ "5 48 12\r",
+ "5 48 13\r",
+ "5 48 14\r",
+ "5 48 15\r",
+ "5 48 16\r",
+ "5 48 17\r",
+ "5 48 18\r",
+ "5 48 19\r",
+ "5 48 20\r",
+ "5 48 21\r",
+ "5 48 22\r",
+ "5 48 23\r",
+ "5 48 24\r",
+ "5 48 25\r",
+ "5 48 26\r",
+ "5 48 27\r",
+ "5 48 28\r",
+ "5 48 29\r",
+ "5 48 30\r",
+ "5 48 31\r",
+ "5 48 32\r",
+ "5 48 33\r",
+ "5 48 34\r",
+ "5 48 35\r",
+ "5 48 36\r",
+ "5 48 37\r",
+ "5 48 38\r",
+ "5 48 39\r",
+ "5 48 40\r",
+ "5 48 41\r",
+ "5 48 42\r",
+ "5 48 43\r",
+ "5 48 44\r",
+ "5 48 45\r",
+ "5 48 46\r",
+ "5 48 47\r",
+ "5 48 48\r",
+ "5 48 49\r",
+ "5 48 50\r",
+ "5 48 51\r",
+ "5 48 52\r",
+ "5 48 53\r",
+ "5 48 54\r",
+ "5 48 55\r",
+ "5 48 56\r",
+ "5 48 57\r",
+ "5 48 58\r",
+ "5 49 1\r",
+ "5 49 2\r",
+ "5 49 3\r",
+ "5 49 4\r",
+ "5 49 5\r",
+ "5 49 6\r",
+ "5 49 7\r",
+ "5 49 8\r",
+ "5 49 9\r",
+ "5 49 10\r",
+ "5 49 11\r",
+ "5 49 12\r",
+ "5 49 13\r",
+ "5 49 14\r",
+ "5 49 15\r",
+ "5 49 16\r",
+ "5 49 17\r",
+ "5 49 18\r",
+ "5 49 19\r",
+ "5 49 20\r",
+ "5 49 21\r",
+ "5 49 22\r",
+ "5 49 23\r",
+ "5 49 24\r",
+ "5 49 25\r",
+ "5 49 26\r",
+ "5 49 27\r",
+ "5 49 28\r",
+ "5 49 29\r",
+ "5 49 30\r",
+ "5 49 31\r",
+ "5 49 32\r",
+ "5 49 33\r",
+ "5 49 34\r",
+ "5 49 35\r",
+ "5 49 36\r",
+ "5 49 37\r",
+ "5 49 38\r",
+ "5 49 39\r",
+ "5 49 40\r",
+ "5 49 41\r",
+ "5 49 42\r",
+ "5 49 43\r",
+ "5 49 44\r",
+ "5 49 45\r",
+ "5 49 46\r",
+ "5 49 47\r",
+ "5 49 48\r",
+ "5 49 49\r",
+ "5 49 50\r",
+ "5 49 51\r",
+ "5 49 52\r",
+ "5 49 53\r",
+ "5 49 54\r",
+ "5 49 55\r",
+ "5 49 56\r",
+ "5 49 57\r",
+ "5 49 58\r",
+ "5 50 1\r",
+ "5 50 2\r",
+ "5 50 3\r",
+ "5 50 4\r",
+ "5 50 5\r",
+ "5 50 6\r",
+ "5 50 7\r",
+ "5 50 8\r",
+ "5 50 9\r",
+ "5 50 10\r",
+ "5 50 11\r",
+ "5 50 12\r",
+ "5 50 13\r",
+ "5 50 14\r",
+ "5 50 15\r",
+ "5 50 16\r",
+ "5 50 17\r",
+ "5 50 18\r",
+ "5 50 19"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\r",
+ "5 50 20\r",
+ "5 50 21\r",
+ "5 50 22\r",
+ "5 50 23\r",
+ "5 50 24\r",
+ "5 50 25\r",
+ "5 50 26\r",
+ "5 50 27\r",
+ "5 50 28\r",
+ "5 50 29\r",
+ "5 50 30\r",
+ "5 50 31\r",
+ "5 50 32\r",
+ "5 50 33\r",
+ "5 50 34\r",
+ "5 50 35\r",
+ "5 50 36\r",
+ "5 50 37\r",
+ "5 50 38\r",
+ "5 50 39\r",
+ "5 50 40\r",
+ "5 50 41\r",
+ "5 50 42\r",
+ "5 50 43\r",
+ "5 50 44\r",
+ "5 50 45\r",
+ "5 50 46\r",
+ "5 50 47\r",
+ "5 50 48\r",
+ "5 50 49\r",
+ "5 50 50\r",
+ "5 50 51\r",
+ "5 50 52\r",
+ "5 50 53\r",
+ "5 50 54\r",
+ "5 50 55\r",
+ "5 50 56\r",
+ "5 50 57\r",
+ "5 50 58\r",
+ "5 51 1\r",
+ "5 51 2\r",
+ "5 51 3\r",
+ "5 51 4\r",
+ "5 51 5\r",
+ "5 51 6\r",
+ "5 51 7\r",
+ "5 51 8\r",
+ "5 51 9\r",
+ "5 51 10\r",
+ "5 51 11\r",
+ "5 51 12\r",
+ "5 51 13\r",
+ "5 51 14\r",
+ "5 51 15\r",
+ "5 51 16\r",
+ "5 51 17\r",
+ "5 51 18\r",
+ "5 51 19\r",
+ "5 51 20\r",
+ "5 51 21\r",
+ "5 51 22\r",
+ "5 51 23\r",
+ "5 51 24\r",
+ "5 51 25\r",
+ "5 51 26\r",
+ "5 51 27\r",
+ "5 51 28\r",
+ "5 51 29\r",
+ "5 51 30\r",
+ "5 51 31\r",
+ "5 51 32\r",
+ "5 51 33\r",
+ "5 51 34\r",
+ "5 51 35\r",
+ "5 51 36\r",
+ "5 51 37\r",
+ "5 51 38\r",
+ "5 51 39\r",
+ "5 51 40\r",
+ "5 51 41\r",
+ "5 51 42\r",
+ "5 51 43\r",
+ "5 51 44\r",
+ "5 51 45\r",
+ "5 51 46\r",
+ "5 51 47\r",
+ "5 51 48\r",
+ "5 51 49\r",
+ "5 51 50\r",
+ "5 51 51\r",
+ "5 51 52\r",
+ "5 51 53\r",
+ "5 51 54\r",
+ "5 51 55\r",
+ "5 51 56\r",
+ "5 51 57\r",
+ "5 51 58\r",
+ "5 52 1\r",
+ "5 52 2\r",
+ "5 52 3\r",
+ "5 52 4\r",
+ "5 52 5\r",
+ "5 52 6\r",
+ "5 52 7\r",
+ "5 52 8\r",
+ "5 52 9\r",
+ "5 52 10\r",
+ "5 52 11\r",
+ "5 52 12\r",
+ "5 52 13\r",
+ "5 52 14\r",
+ "5 52 15\r",
+ "5 52 16\r",
+ "5 52 17\r",
+ "5 52 18\r",
+ "5 52 19\r",
+ "5 52 20\r",
+ "5 52 21\r",
+ "5 52 22\r",
+ "5 52 23\r",
+ "5 52 24\r",
+ "5 52 25\r",
+ "5 52 26\r",
+ "5 52 27\r",
+ "5 52 28\r",
+ "5 52 29\r",
+ "5 52 30\r",
+ "5 52 31\r",
+ "5 52 32\r",
+ "5 52 33\r",
+ "5 52 34\r",
+ "5 52 35\r",
+ "5 52 36\r",
+ "5 52 37\r",
+ "5 52 38\r",
+ "5 52 39\r",
+ "5 52 40\r",
+ "5 52 41\r",
+ "5 52 42\r",
+ "5 52 43\r",
+ "5 52 44\r",
+ "5 52 45\r",
+ "5 52 46\r",
+ "5 52 47\r",
+ "5 52 48\r",
+ "5 52 49\r",
+ "5 52 50\r",
+ "5 52 51\r",
+ "5 52 52\r",
+ "5 52 53\r",
+ "5 52 54\r",
+ "5 52 55\r",
+ "5 52 56\r",
+ "5 52 57\r",
+ "5 52 58\r",
+ "5 53 1\r",
+ "5 53 2\r",
+ "5 53 3\r",
+ "5 53 4\r",
+ "5 53 5\r",
+ "5 53 6\r",
+ "5 53 7\r",
+ "5 53 8\r",
+ "5 53 9\r",
+ "5 53 10\r",
+ "5 53 11\r",
+ "5 53 12\r",
+ "5 53 13\r",
+ "5 53 14\r",
+ "5 53 15\r",
+ "5 53 16\r",
+ "5 53 17\r",
+ "5 53 18\r",
+ "5 53 19\r",
+ "5 53 20\r",
+ "5 53 21\r",
+ "5 53 22\r",
+ "5 53 23\r",
+ "5 53 24\r",
+ "5 53 25\r",
+ "5 53 26\r",
+ "5 53 27\r",
+ "5 53 28\r",
+ "5 53 29\r",
+ "5 53 30\r",
+ "5 53 31\r",
+ "5 53 32\r",
+ "5 53 33\r",
+ "5 53 34\r",
+ "5 53 35\r",
+ "5 53 36\r",
+ "5 53 37\r",
+ "5 53 38\r",
+ "5 53 39\r",
+ "5 53 40\r",
+ "5 53 41\r",
+ "5 53 42\r",
+ "5 53 43\r",
+ "5 53 44\r",
+ "5 53 45\r",
+ "5 53 46\r",
+ "5 53 47\r",
+ "5 53 48\r",
+ "5 53 49\r",
+ "5 53 50\r",
+ "5 53 51\r",
+ "5 53 52\r",
+ "5 53 53\r",
+ "5 53 54\r",
+ "5 53 55\r",
+ "5 53 56\r",
+ "5 53 57\r",
+ "5 53 58\r",
+ "5 54 1\r",
+ "5 54 2\r",
+ "5 54 3\r",
+ "5 54 4\r",
+ "5 54 5\r",
+ "5 54 6\r",
+ "5 54 7\r",
+ "5 54 8\r",
+ "5 54 9\r",
+ "5 54 10\r",
+ "5 54 11\r",
+ "5 54 12\r",
+ "5 54 13\r",
+ "5 54 14\r",
+ "5 54 15\r",
+ "5 54 16\r",
+ "5 54 17\r",
+ "5 54 18\r",
+ "5 54 19\r",
+ "5 54 20\r",
+ "5 54 21\r",
+ "5 54 22\r",
+ "5 54 23\r",
+ "5 54 24\r",
+ "5 54 25\r",
+ "5 54 26\r",
+ "5 54 27\r",
+ "5 54 28\r",
+ "5 54 29\r",
+ "5 54 30\r",
+ "5 54 31\r",
+ "5 54 32\r",
+ "5 54 33\r",
+ "5 54 34\r",
+ "5 54 35\r",
+ "5 54 36\r",
+ "5 54 37\r",
+ "5 54 38\r",
+ "5 54 39\r",
+ "5 54 40\r",
+ "5 54 41\r",
+ "5 54 42\r",
+ "5 54 43\r",
+ "5 54 44\r",
+ "5 54 45\r",
+ "5 54 46\r",
+ "5 54 47\r",
+ "5 54 48\r",
+ "5 54 49\r",
+ "5 54 50\r",
+ "5 54 51\r",
+ "5 54 52\r",
+ "5 54 53\r",
+ "5 54 54\r",
+ "5 54 55\r",
+ "5 54 56\r",
+ "5 54 57\r",
+ "5 54 58\r",
+ "5 55 1\r",
+ "5 55 2\r",
+ "5 55 3\r",
+ "5 55 4\r",
+ "5 55 5\r",
+ "5 55 6\r",
+ "5 55 7\r",
+ "5 55 8\r",
+ "5 55 9\r",
+ "5 55 10\r",
+ "5 55 11\r",
+ "5 55 12\r",
+ "5 55 13\r",
+ "5 55 14\r",
+ "5 55 15\r",
+ "5 55 16\r",
+ "5 55 17\r",
+ "5 55 18\r",
+ "5 55 19\r",
+ "5 55 20\r",
+ "5 55 21\r",
+ "5 55 22\r",
+ "5 55 23\r",
+ "5 55 24\r",
+ "5 55 25\r",
+ "5 55 26\r",
+ "5 55 27\r",
+ "5 55 28\r",
+ "5 55 29\r",
+ "5 55 30\r",
+ "5 55 31\r",
+ "5 55 32\r",
+ "5 55 33\r",
+ "5 55 34\r",
+ "5 55 35\r",
+ "5 55 36\r",
+ "5 55 37\r",
+ "5 55 38\r",
+ "5 55 39\r",
+ "5 55 40\r",
+ "5 55 41\r",
+ "5 55 42\r",
+ "5 55 43\r",
+ "5 55 44\r",
+ "5 55 45\r",
+ "5 55 46\r",
+ "5 55 47\r",
+ "5 55 48\r",
+ "5 55 49\r",
+ "5 55 50\r",
+ "5 55 51\r",
+ "5 55 52\r",
+ "5 55 53\r",
+ "5 55 54\r",
+ "5 55 55\r",
+ "5 55 56\r",
+ "5 55 57\r",
+ "5 55 58\r",
+ "5 56 1\r",
+ "5 56 2\r",
+ "5 56 3\r",
+ "5 56 4\r",
+ "5 56 5\r",
+ "5 56 6\r",
+ "5 56 7\r",
+ "5 56 8\r",
+ "5 56 9\r",
+ "5 56 10\r",
+ "5 56 11\r",
+ "5 56 12\r",
+ "5 56 13\r",
+ "5 56 14\r",
+ "5 56 15\r",
+ "5 56 16\r",
+ "5 56 17\r",
+ "5 56 18\r",
+ "5 56 19\r",
+ "5 56 20\r",
+ "5 56 21\r",
+ "5 56 22\r",
+ "5 56 23\r",
+ "5 56 24\r",
+ "5 56 25\r",
+ "5 56 26\r",
+ "5 56 27\r",
+ "5 56 28\r",
+ "5 56 29\r",
+ "5 56 30\r",
+ "5 56 31\r",
+ "5 56 32\r",
+ "5 56 33\r",
+ "5 56 34\r",
+ "5 56 35\r",
+ "5 56 36\r",
+ "5 56 37\r",
+ "5 56 38\r",
+ "5 56 39\r",
+ "5 56 40\r",
+ "5 56 41\r",
+ "5 56 42\r",
+ "5 56 43\r",
+ "5 56 44\r",
+ "5 56 45\r",
+ "5 56 46\r",
+ "5 56 47\r",
+ "5 56 48\r",
+ "5 56 49\r",
+ "5 56 50\r",
+ "5 56 51\r",
+ "5 56 52\r",
+ "5 56 53\r",
+ "5 56 54\r",
+ "5 56 55\r",
+ "5 56 56\r",
+ "5 56 57\r",
+ "5 56 58\r",
+ "5 57 1\r",
+ "5 57 2\r",
+ "5 57 3\r",
+ "5 57 4\r",
+ "5 57 5\r",
+ "5 57 6\r",
+ "5 57 7\r",
+ "5 57 8\r",
+ "5 57 9\r",
+ "5 57 10\r",
+ "5 57 11\r",
+ "5 57 12\r",
+ "5 57 13\r",
+ "5 57 14\r",
+ "5 57 15\r",
+ "5 57 16\r",
+ "5 57 17\r",
+ "5 57 18\r",
+ "5 57 19\r",
+ "5 57 20\r",
+ "5 57 21\r",
+ "5 57 22\r",
+ "5 57 23\r",
+ "5 57 24\r",
+ "5 57 25\r",
+ "5 57 26\r",
+ "5 57 27\r",
+ "5 57 28\r",
+ "5 57 29\r",
+ "5 57 30\r",
+ "5 57 31\r",
+ "5 57 32\r",
+ "5 57 33\r",
+ "5 57 34\r",
+ "5 57 35\r",
+ "5 57 36\r",
+ "5 57 37\r",
+ "5 57 38\r",
+ "5 57 39\r",
+ "5 57 40\r",
+ "5 57 41\r",
+ "5 57 42\r",
+ "5 57 43\r",
+ "5 57 44\r",
+ "5 57 45\r",
+ "5 57 46\r",
+ "5 57 47\r",
+ "5 57 48\r",
+ "5 57 49\r",
+ "5 57 50\r",
+ "5 57 51\r",
+ "5 57 52\r",
+ "5 57 53\r",
+ "5 57 54\r",
+ "5 57 55\r",
+ "5 57 56\r",
+ "5 57 57\r",
+ "5 57 58\r",
+ "5 58 1\r",
+ "5 58 2\r",
+ "5 58 3\r",
+ "5 58 4\r",
+ "5 58 5\r",
+ "5 58 6\r",
+ "5 58 7\r",
+ "5 58 8\r",
+ "5 58 9\r",
+ "5 58 10\r",
+ "5 58 11\r",
+ "5 58 12\r",
+ "5 58 13\r",
+ "5 58 14\r",
+ "5 58 15\r",
+ "5 58 16\r",
+ "5 58 17\r",
+ "5 58 18\r",
+ "5 58 19\r",
+ "5 58 20\r",
+ "5 58 21\r",
+ "5 58 22\r",
+ "5 58 23\r",
+ "5 58 24\r",
+ "5 58 25\r",
+ "5 58 26\r",
+ "5 58 27\r",
+ "5 58 28\r",
+ "5 58 29\r",
+ "5 58 30\r",
+ "5 58 31\r",
+ "5 58 32\r",
+ "5 58 33\r",
+ "5 58 34\r",
+ "5 58 35\r",
+ "5 58 36\r",
+ "5 58 37\r",
+ "5 58 38\r",
+ "5 58 39\r",
+ "5 58 40\r",
+ "5 58 41\r",
+ "5 58 42\r",
+ "5 58 43\r",
+ "5 58 44\r",
+ "5 58 45\r",
+ "5 58 46\r",
+ "5 58 47\r",
+ "5 58 48\r",
+ "5 58 49\r",
+ "5 58 50\r",
+ "5 58 51\r",
+ "5 58 52\r",
+ "5 58 53\r",
+ "5 58 54\r",
+ "5 58 55\r",
+ "5 58 56\r",
+ "5 58 57\r",
+ "5 58 58\r",
+ "6 1 1\r",
+ "6 1 2\r",
+ "6 1 3\r",
+ "6 1 4\r",
+ "6 1 5\r",
+ "6 1 6\r",
+ "6 1 7\r",
+ "6 1 8\r",
+ "6 1 9\r",
+ "6 1 10\r",
+ "6 1 11\r",
+ "6 1 12\r",
+ "6 1 13\r",
+ "6 1 14\r",
+ "6 1 15\r",
+ "6 1 16\r",
+ "6 1 17\r",
+ "6 1 18\r",
+ "6 1 19\r",
+ "6 1 20\r",
+ "6 1 21\r",
+ "6 1 22\r",
+ "6 1 23\r",
+ "6 1 24\r",
+ "6 1 25\r",
+ "6 1 26\r",
+ "6 1 27\r",
+ "6 1 28\r",
+ "6 1 29\r",
+ "6 1 30\r",
+ "6 1 31\r",
+ "6 1 32\r",
+ "6 1 33\r",
+ "6 1 34\r",
+ "6 1 35\r",
+ "6 1 36\r",
+ "6 1 37\r",
+ "6 1 38\r",
+ "6 1 39\r",
+ "6 1 40\r",
+ "6 1 41\r",
+ "6 1 42\r",
+ "6 1 43\r",
+ "6 1 44\r",
+ "6 1 45\r",
+ "6 1 46\r",
+ "6 1 47\r",
+ "6 1 48\r",
+ "6 1 49\r",
+ "6 1 50\r",
+ "6 1 51\r",
+ "6 1 52\r",
+ "6 1 53\r",
+ "6 1 54\r",
+ "6 1 55\r",
+ "6 1 56\r",
+ "6 1 57\r",
+ "6 1 58\r",
+ "6 2 1\r",
+ "6 2 2\r",
+ "6 2 3\r",
+ "6 2 4\r",
+ "6 2 5\r",
+ "6 2 6\r",
+ "6 2 7\r",
+ "6 2 8\r",
+ "6 2 9\r",
+ "6 2 10\r",
+ "6 2 11\r",
+ "6 2 12\r",
+ "6 2 13\r",
+ "6 2 14\r",
+ "6 2 15\r",
+ "6 2 16\r",
+ "6 2 17\r",
+ "6 2 18\r",
+ "6 2 19\r",
+ "6 2 20\r",
+ "6 2 21\r",
+ "6 2 22\r",
+ "6 2 23\r",
+ "6 2 24\r",
+ "6 2 25\r",
+ "6 2 26\r",
+ "6 2 27\r",
+ "6 2 28\r",
+ "6 2 29\r",
+ "6 2 30\r",
+ "6 2 31\r",
+ "6 2 32\r",
+ "6 2 33\r",
+ "6 2 34\r",
+ "6 2 35\r",
+ "6 2 36\r",
+ "6 2 37\r",
+ "6 2 38\r",
+ "6 2 39\r",
+ "6 2 40\r",
+ "6 2 41\r",
+ "6 2 42\r",
+ "6 2 43\r",
+ "6 2 44\r",
+ "6 2 45\r",
+ "6 2 46\r",
+ "6 2 47\r",
+ "6 2 48\r",
+ "6 2 49\r",
+ "6 2 50\r",
+ "6 2 51\r",
+ "6 2 52\r",
+ "6 2 53\r",
+ "6 2 54\r",
+ "6 2 55\r",
+ "6 2 56\r",
+ "6 2 57\r",
+ "6 2 58\r",
+ "6 3 1\r",
+ "6 3 2\r",
+ "6 3 3\r",
+ "6 3 4\r",
+ "6 3 5\r",
+ "6 3 6\r",
+ "6 3 7\r",
+ "6 3 8\r",
+ "6 3 9\r",
+ "6 3 10\r",
+ "6 3 11\r",
+ "6 3 12\r",
+ "6 3 13\r",
+ "6 3 14\r",
+ "6 3 15\r",
+ "6 3 16\r",
+ "6 3 17\r",
+ "6 3 18\r",
+ "6 3 19\r",
+ "6 3 20\r",
+ "6 3 21\r",
+ "6 3 22\r",
+ "6 3 23\r",
+ "6 3 24\r",
+ "6 3 25\r",
+ "6 3 26\r",
+ "6 3 27\r",
+ "6 3 28\r",
+ "6 3 29\r",
+ "6 3 30\r",
+ "6 3 31\r",
+ "6 3 32\r",
+ "6 3 33\r",
+ "6 3 34\r",
+ "6 3 35\r",
+ "6 3 36\r",
+ "6 3 37\r",
+ "6 3 38\r",
+ "6 3 39\r",
+ "6 3 40\r",
+ "6 3 41\r",
+ "6 3 42\r",
+ "6 3 43\r",
+ "6 3 44\r",
+ "6 3 45\r",
+ "6 3 46\r",
+ "6 3 47\r",
+ "6 3 48\r",
+ "6 3 49\r",
+ "6 3 50\r",
+ "6 3 51\r",
+ "6 3 52\r",
+ "6 3 53\r",
+ "6 3 54\r",
+ "6 3 55\r",
+ "6 3 56\r",
+ "6 3 57\r",
+ "6 3 58\r",
+ "6 4 1\r",
+ "6 4 2\r",
+ "6 4 3\r",
+ "6 4 4\r",
+ "6 4 5\r",
+ "6 4 6\r",
+ "6 4 7\r",
+ "6 4 8\r",
+ "6 4 9\r",
+ "6 4 10\r",
+ "6 4 11\r",
+ "6 4 12\r",
+ "6 4 13\r",
+ "6 4 14\r",
+ "6 4 15\r",
+ "6 4 16\r",
+ "6 4 17\r",
+ "6 4 18\r",
+ "6 4 19\r",
+ "6 4 20\r",
+ "6 4 21\r",
+ "6 4 22\r",
+ "6 4 23\r",
+ "6 4 24\r",
+ "6 4 25\r",
+ "6 4 26\r",
+ "6 4 27\r",
+ "6 4 28\r",
+ "6 4 29\r",
+ "6 4 30\r",
+ "6 4 31\r",
+ "6 4 32\r",
+ "6 4 33\r",
+ "6 4 34\r",
+ "6 4 35\r",
+ "6 4 36\r",
+ "6 4 37\r",
+ "6 4 38\r",
+ "6 4 39\r",
+ "6 4 40\r",
+ "6 4 41\r",
+ "6 4 42\r",
+ "6 4 43\r",
+ "6 4 44\r",
+ "6 4 45\r",
+ "6 4 46\r",
+ "6 4 47\r",
+ "6 4 48\r",
+ "6 4 49\r",
+ "6 4 50\r",
+ "6 4 51\r",
+ "6 4 52\r",
+ "6 4 53\r",
+ "6 4 54\r",
+ "6 4 55\r",
+ "6 4 56\r",
+ "6 4 57\r",
+ "6 4 58\r",
+ "6 5 1\r",
+ "6 5 2\r",
+ "6 5 3\r",
+ "6 5 4\r",
+ "6 5 5\r",
+ "6 5 6\r",
+ "6 5 7\r",
+ "6 5 8\r",
+ "6 5 9\r",
+ "6 5 10\r",
+ "6 5 11\r",
+ "6 5 12\r",
+ "6 5 13\r",
+ "6 5 14\r",
+ "6 5 15\r",
+ "6 5 16\r",
+ "6 5 17\r",
+ "6 5 18\r",
+ "6 5 19\r",
+ "6 5 20\r",
+ "6 5 21\r",
+ "6 5 22\r",
+ "6 5 23\r",
+ "6 5 24\r",
+ "6 5 25\r",
+ "6 5 26\r",
+ "6 5 27\r",
+ "6 5 28\r",
+ "6 5 29\r",
+ "6 5 30\r",
+ "6 5 31\r",
+ "6 5 32\r",
+ "6 5 33\r",
+ "6 5 34\r",
+ "6 5 35\r",
+ "6 5 36\r",
+ "6 5 37\r",
+ "6 5 38\r",
+ "6 5 39\r",
+ "6 5 40\r",
+ "6 5 41\r",
+ "6 5 42\r",
+ "6 5 43\r",
+ "6 5 44\r",
+ "6 5 45\r",
+ "6 5 46\r",
+ "6 5 47\r",
+ "6 5 48\r",
+ "6 5 49\r",
+ "6 5 50\r",
+ "6 5 51\r",
+ "6 5 52\r",
+ "6 5 53\r",
+ "6 5 54\r",
+ "6 5 55\r",
+ "6 5 56\r",
+ "6 5 57\r",
+ "6 5 58\r",
+ "6 6 1\r",
+ "6 6 2\r",
+ "6 6 3\r",
+ "6 6 4\r",
+ "6 6 5\r",
+ "6 6 6\r",
+ "6 6 7\r",
+ "6 6 8\r",
+ "6 6 9\r",
+ "6 6 10\r",
+ "6 6 11\r",
+ "6 6 12\r",
+ "6 6 13\r",
+ "6 6 14\r",
+ "6 6 15\r",
+ "6 6 16\r",
+ "6 6 17\r",
+ "6 6 18\r",
+ "6 6 19\r",
+ "6 6 20\r",
+ "6 6 21\r",
+ "6 6 22\r",
+ "6 6 23\r",
+ "6 6 24\r",
+ "6 6 25\r",
+ "6 6 26\r",
+ "6 6 27\r",
+ "6 6 28\r",
+ "6 6 29\r",
+ "6 6 30\r",
+ "6 6 31\r",
+ "6 6 32\r",
+ "6 6 33\r",
+ "6 6 34\r",
+ "6 6 35\r",
+ "6 6 36\r",
+ "6 6 37\r",
+ "6 6 38\r",
+ "6 6 39\r",
+ "6 6 40\r",
+ "6 6 41\r",
+ "6 6 42\r",
+ "6 6 43\r",
+ "6 6 44\r",
+ "6 6 45\r",
+ "6 6 46\r",
+ "6 6 47\r",
+ "6 6 48\r",
+ "6 6 49\r",
+ "6 6 50\r",
+ "6 6 51\r",
+ "6 6 52\r",
+ "6 6 53\r",
+ "6 6 54\r",
+ "6 6 55\r",
+ "6 6 56\r",
+ "6 6 57\r",
+ "6 6 58\r",
+ "6 7 1\r",
+ "6 7 2\r",
+ "6 7 3\r",
+ "6 7 4\r",
+ "6 7 5\r",
+ "6 7 6\r",
+ "6 7 7\r",
+ "6 7 8\r",
+ "6 7 9\r",
+ "6 7 10\r",
+ "6 7 11\r",
+ "6 7 12\r",
+ "6 7 13\r",
+ "6 7 14\r",
+ "6 7 15\r",
+ "6 7 16\r",
+ "6 7 17\r",
+ "6 7 18\r",
+ "6 7 19\r",
+ "6 7 20\r",
+ "6 7 21\r",
+ "6 7 22\r",
+ "6 7 23\r",
+ "6 7 24\r",
+ "6 7 25\r",
+ "6 7 26\r",
+ "6 7 27\r",
+ "6 7 28\r",
+ "6 7 29\r",
+ "6 7 30\r",
+ "6 7 31\r",
+ "6 7 32\r",
+ "6 7 33\r",
+ "6 7 34\r",
+ "6 7 35\r",
+ "6 7 36\r",
+ "6 7 37\r",
+ "6 7 38\r",
+ "6 7 39\r",
+ "6 7 40\r",
+ "6 7 41\r",
+ "6 7 42\r",
+ "6 7 43\r",
+ "6 7 44\r",
+ "6 7 45\r",
+ "6 7 46\r",
+ "6 7 47\r",
+ "6 7 48\r",
+ "6 7 49\r",
+ "6 7 50\r",
+ "6 7 51\r",
+ "6 7 52\r",
+ "6 7 53\r",
+ "6 7 54\r",
+ "6 7 55\r",
+ "6 7 56\r",
+ "6 7 57\r",
+ "6 7 58\r",
+ "6 8 1\r",
+ "6 8 2\r",
+ "6 8 3\r",
+ "6 8 4\r",
+ "6 8 5\r",
+ "6 8 6\r",
+ "6 8 7\r",
+ "6 8 8\r",
+ "6 8 9\r",
+ "6 8 10\r",
+ "6 8 11\r",
+ "6 8 12\r",
+ "6 8 13\r",
+ "6 8 14\r",
+ "6 8 15\r",
+ "6 8 16\r",
+ "6 8 17\r",
+ "6 8 18\r",
+ "6 8 19\r",
+ "6 8 20\r",
+ "6 8 21\r",
+ "6 8 22\r",
+ "6 8 23\r",
+ "6 8 24\r",
+ "6 8 25\r",
+ "6 8 26\r",
+ "6 8 27\r",
+ "6 8 28\r",
+ "6 8 29\r",
+ "6 8 30\r",
+ "6 8 31\r",
+ "6 8 32\r",
+ "6 8 33\r",
+ "6 8 34\r",
+ "6 8 35\r",
+ "6 8 36\r",
+ "6 8 37\r",
+ "6 8 38\r",
+ "6 8 39\r",
+ "6 8 40\r",
+ "6 8 41\r",
+ "6 8 42\r",
+ "6 8 43\r",
+ "6 8 44\r",
+ "6 8 45\r",
+ "6 8 46\r",
+ "6 8 47\r",
+ "6 8 48\r",
+ "6 8 49\r",
+ "6 8 50\r",
+ "6 8 51\r",
+ "6 8 52\r",
+ "6 8 53\r",
+ "6 8 54\r",
+ "6 8 55\r",
+ "6 8 56\r",
+ "6 8 57\r",
+ "6 8 58\r",
+ "6 9 1\r",
+ "6 9 2\r",
+ "6 9 3\r",
+ "6 9 4\r",
+ "6 9 5\r",
+ "6 9 6\r",
+ "6 9 7\r",
+ "6 9 8\r",
+ "6 9 9\r",
+ "6 9 10\r",
+ "6 9 11\r",
+ "6 9 12\r",
+ "6 9 13\r",
+ "6 9 14\r",
+ "6 9 15\r",
+ "6 9 16\r",
+ "6 9 17\r",
+ "6 9 18\r",
+ "6 9 19\r",
+ "6 9 20\r",
+ "6 9 21\r",
+ "6 9 22\r",
+ "6 9 23\r",
+ "6 9 24\r",
+ "6 9 25\r",
+ "6 9 26\r",
+ "6 9 27\r",
+ "6 9 28\r",
+ "6 9 29\r",
+ "6 9 30\r",
+ "6 9 31\r",
+ "6 9 32\r",
+ "6 9 33\r",
+ "6 9 34\r",
+ "6 9 35\r",
+ "6 9 36\r",
+ "6 9 37\r",
+ "6 9 38\r",
+ "6 9 39\r",
+ "6 9 40\r",
+ "6 9 41\r",
+ "6 9 42\r",
+ "6 9 43\r",
+ "6 9 44\r",
+ "6 9 45\r",
+ "6 9 46\r",
+ "6 9 47\r",
+ "6 9 48\r",
+ "6 9 49\r",
+ "6 9 50\r",
+ "6 9 51\r",
+ "6 9 52\r",
+ "6 9 53\r",
+ "6 9 54\r",
+ "6 9 55\r",
+ "6 9 56\r",
+ "6 9 57\r",
+ "6 9 58\r",
+ "6 10 1\r",
+ "6 10 2\r",
+ "6 10 3\r",
+ "6 10 4\r",
+ "6 10 5\r",
+ "6 10 6\r",
+ "6 10 7\r",
+ "6 10 8\r",
+ "6 10 9\r",
+ "6 10 10\r",
+ "6 10 11\r",
+ "6 10 12\r",
+ "6 10 13\r",
+ "6 10 14\r",
+ "6 10 15\r",
+ "6 10 16\r",
+ "6 10 17\r",
+ "6 10 18\r",
+ "6 10 19\r",
+ "6 10 20\r",
+ "6 10 21\r",
+ "6 10 22\r",
+ "6 10 23\r",
+ "6 10 24\r",
+ "6 10 25\r",
+ "6 10 26\r",
+ "6 10 27\r",
+ "6 10 28\r",
+ "6 10 29\r",
+ "6 10 30\r",
+ "6 10 31\r",
+ "6 10 32\r",
+ "6 10 33\r",
+ "6 10 34\r",
+ "6 10 35\r",
+ "6 10 36\r",
+ "6 10 37\r",
+ "6 10 38\r",
+ "6 10 39\r",
+ "6 10 40\r",
+ "6 10 41\r",
+ "6 10 42\r",
+ "6 10 43\r",
+ "6 10 44\r",
+ "6 10 45\r",
+ "6 10 46\r",
+ "6 10 47\r",
+ "6 10 48\r",
+ "6 10 49\r",
+ "6 10 50\r",
+ "6 10 51\r",
+ "6 10 52\r",
+ "6 10 53\r",
+ "6 10 54\r",
+ "6 10 55\r",
+ "6 10 56\r",
+ "6 10 57\r",
+ "6 10 58\r",
+ "6 11 1\r",
+ "6 11 2\r",
+ "6 11 3\r",
+ "6 11 4\r",
+ "6 11 5\r",
+ "6 11 6\r",
+ "6 11 7\r",
+ "6 11 8\r",
+ "6 11 9\r",
+ "6 11 10\r",
+ "6 11 11\r",
+ "6 11 12\r",
+ "6 11 13\r",
+ "6 11 14\r",
+ "6 11 15\r",
+ "6 11 16\r",
+ "6 11 17\r",
+ "6 11 18\r",
+ "6 11 19\r",
+ "6 11 20\r",
+ "6 11 21\r",
+ "6 11 22\r",
+ "6 11 23\r",
+ "6 11 24\r",
+ "6 11 25\r",
+ "6 11 26\r",
+ "6 11 27\r",
+ "6 11 28\r",
+ "6 11 29\r",
+ "6 11 30\r",
+ "6 11 31\r",
+ "6 11 32\r",
+ "6 11 33\r",
+ "6 11 34\r",
+ "6 11 35\r",
+ "6 11 36\r",
+ "6 11 37\r",
+ "6 11 38\r",
+ "6 11 39\r",
+ "6 11 40\r",
+ "6 11 41\r",
+ "6 11 42\r",
+ "6 11 43\r",
+ "6 11 44\r",
+ "6 11 45\r",
+ "6 11 46\r",
+ "6 11 47\r",
+ "6 11 48\r",
+ "6 11 49\r",
+ "6 11 50\r",
+ "6 11 51\r",
+ "6 11 52\r",
+ "6 11 53\r",
+ "6 11 54\r",
+ "6 11 55\r",
+ "6 11 56\r",
+ "6 11 57\r",
+ "6 11 58\r",
+ "6 12 1\r",
+ "6 12 2\r",
+ "6 12 3\r",
+ "6 12 4\r",
+ "6 12 5\r",
+ "6 12 6\r",
+ "6 12 7\r",
+ "6 12 8\r",
+ "6 12 9\r",
+ "6 12 10\r",
+ "6 12 11\r",
+ "6 12 12\r",
+ "6 12 13\r",
+ "6 12 14\r",
+ "6 12 15\r",
+ "6 12 16\r",
+ "6 12 17\r",
+ "6 12 18\r",
+ "6 12 19\r",
+ "6 12 20\r",
+ "6 12 21\r",
+ "6 12 22\r",
+ "6 12 23\r",
+ "6 12 24\r",
+ "6 12 25\r",
+ "6 12 26\r",
+ "6 12 27\r",
+ "6 12 28\r",
+ "6 12 29\r",
+ "6 12 30\r",
+ "6 12 31\r",
+ "6 12 32\r",
+ "6 12 33\r",
+ "6 12 34\r",
+ "6 12 35\r",
+ "6 12 36\r",
+ "6 12 37\r",
+ "6 12 38\r",
+ "6 12 39\r",
+ "6 12 40\r",
+ "6 12 41\r",
+ "6 12 42\r",
+ "6 12 43\r",
+ "6 12 44\r",
+ "6 12 45\r",
+ "6 12 46\r",
+ "6 12 47\r",
+ "6 12 48\r",
+ "6 12 49\r",
+ "6 12 50\r",
+ "6 12 51\r",
+ "6 12 52\r",
+ "6 12 53\r",
+ "6 12 54\r",
+ "6 12 55\r",
+ "6 12 56\r",
+ "6 12 57\r",
+ "6 12 58\r",
+ "6 13 1\r",
+ "6 13 2\r",
+ "6 13 3\r",
+ "6 13 4\r",
+ "6 13 5\r",
+ "6 13 6\r",
+ "6 13 7\r",
+ "6 13 8\r",
+ "6 13 9\r",
+ "6 13 10\r",
+ "6 13 11\r",
+ "6 13 12\r",
+ "6 13 13\r",
+ "6 13 14\r",
+ "6 13 15\r",
+ "6 13 16\r",
+ "6 13 17\r",
+ "6 13 18\r",
+ "6 13 19\r",
+ "6 13 20\r",
+ "6 13 21\r",
+ "6 13 22\r",
+ "6 13 23\r",
+ "6 13 24\r",
+ "6 13 25\r",
+ "6 13 26\r",
+ "6 13 27\r",
+ "6 13 28\r",
+ "6 13 29\r",
+ "6 13 30\r",
+ "6 13 31\r",
+ "6 13 32\r",
+ "6 13 33\r",
+ "6 13 34\r",
+ "6 13 35\r",
+ "6 13 36\r",
+ "6 13 37\r",
+ "6 13 38\r",
+ "6 13 39\r",
+ "6 13 40\r",
+ "6 13 41\r",
+ "6 13 42\r",
+ "6 13 43\r",
+ "6 13 44\r",
+ "6 13 45\r",
+ "6 13 46\r",
+ "6 13 47\r",
+ "6 13 48\r",
+ "6 13 49\r",
+ "6 13 50\r",
+ "6 13 51\r",
+ "6 13 52\r",
+ "6 13 53\r",
+ "6 13 54\r",
+ "6 13 55\r",
+ "6 13 56\r",
+ "6 13 57\r",
+ "6 13 58\r",
+ "6 14 1\r",
+ "6 14 2\r",
+ "6 14 3\r",
+ "6 14 4\r",
+ "6 14 5\r",
+ "6 14 6\r",
+ "6 14 7\r",
+ "6 14 8\r",
+ "6 14 9\r",
+ "6 14 10\r",
+ "6 14 11\r",
+ "6 14 12\r",
+ "6 14 13\r",
+ "6 14 14\r",
+ "6 14 15\r",
+ "6 14 16\r",
+ "6 14 17\r",
+ "6 14 18\r",
+ "6 14 19\r",
+ "6 14 20\r",
+ "6 14 21\r",
+ "6 14 22\r",
+ "6 14 23\r",
+ "6 14 24\r",
+ "6 14 25\r",
+ "6 14 26\r",
+ "6 14 27\r",
+ "6 14 28\r",
+ "6 14 29\r",
+ "6 14 30\r",
+ "6 14 31\r",
+ "6 14 32\r",
+ "6 14 33\r",
+ "6 14 34\r",
+ "6 14 35\r",
+ "6 14 36\r",
+ "6 14 37\r",
+ "6 14 38\r",
+ "6 14 39\r",
+ "6 14 40\r",
+ "6 14 41\r",
+ "6 14 42\r",
+ "6 14 43\r",
+ "6 14 44\r",
+ "6 14 45\r",
+ "6 14 46\r",
+ "6 14 47\r",
+ "6 14 48\r",
+ "6 14 49\r",
+ "6 14 50\r",
+ "6 14 51\r",
+ "6 14 52\r",
+ "6 14 53\r",
+ "6 14 54\r",
+ "6 14 55\r",
+ "6 14 56\r",
+ "6 14 57\r",
+ "6 14 58\r",
+ "6 15 1\r",
+ "6 15 2\r",
+ "6 15 3\r",
+ "6 15 4\r",
+ "6 15 5\r",
+ "6 15 6\r",
+ "6 15 7\r",
+ "6 15 8\r",
+ "6 15 9\r",
+ "6 15 10\r",
+ "6 15 11\r",
+ "6 15 12\r",
+ "6 15 13\r",
+ "6 15 14\r",
+ "6 15 15\r",
+ "6 15 16\r",
+ "6 15 17\r",
+ "6 15 18\r",
+ "6 15 19\r",
+ "6 15 20\r",
+ "6 15 21\r",
+ "6 15 22\r",
+ "6 15 23\r",
+ "6 15 24\r",
+ "6 15 25\r",
+ "6 15 26\r",
+ "6 15 27\r",
+ "6 15 28\r",
+ "6 15 29\r",
+ "6 15 30\r",
+ "6 15 31\r",
+ "6 15 32\r",
+ "6 15 33\r",
+ "6 15 34\r",
+ "6 15 35\r",
+ "6 15 36\r",
+ "6 15 37\r",
+ "6 15 38\r",
+ "6 15 39\r",
+ "6 15 40\r",
+ "6 15 41\r",
+ "6 15 42\r",
+ "6 15 43\r",
+ "6 15 44\r",
+ "6 15 45\r",
+ "6 15 46\r",
+ "6 15 47\r",
+ "6 15 48\r",
+ "6 15 49\r",
+ "6 15 50\r",
+ "6 15 51\r",
+ "6 15 52\r",
+ "6 15 53\r",
+ "6 15 54\r",
+ "6 15 55\r",
+ "6 15 56\r",
+ "6 15 57\r",
+ "6 15 58\r",
+ "6 16 1\r",
+ "6 16 2\r",
+ "6 16 3\r",
+ "6 16 4\r",
+ "6 16 5\r",
+ "6 16 6\r",
+ "6 16 7\r",
+ "6 16 8\r",
+ "6 16 9\r",
+ "6 16 10\r",
+ "6 16 11\r",
+ "6 16 12\r",
+ "6 16 13\r",
+ "6 16 14\r",
+ "6 16 15\r",
+ "6 16 16\r",
+ "6 16 17\r",
+ "6 16 18\r",
+ "6 16 19\r",
+ "6 16 20\r",
+ "6 16 21\r",
+ "6 16 22\r",
+ "6 16 23\r",
+ "6 16 24\r",
+ "6 16 25\r",
+ "6 16 26\r",
+ "6 16 27\r",
+ "6 16 28\r",
+ "6 16 29\r",
+ "6 16 30\r",
+ "6 16 31\r",
+ "6 16 32\r",
+ "6 16 33\r",
+ "6 16 34\r",
+ "6 16 35\r",
+ "6 16 36\r",
+ "6 16 37\r",
+ "6 16 38\r",
+ "6 16 39\r",
+ "6 16 40\r",
+ "6 16 41\r",
+ "6 16 42\r",
+ "6 16 43\r",
+ "6 16 44\r",
+ "6 16 45\r",
+ "6 16 46\r",
+ "6 16 47\r",
+ "6 16 48\r",
+ "6 16 49\r",
+ "6 16 50\r",
+ "6 16 51\r",
+ "6 16 52\r",
+ "6 16 53\r",
+ "6 16 54\r",
+ "6 16 55\r",
+ "6 16 56\r",
+ "6 16 57\r",
+ "6 16 58\r",
+ "6 17 1\r",
+ "6 17 2\r",
+ "6 17 3\r",
+ "6 17 4\r",
+ "6 17 5\r",
+ "6 17 6\r",
+ "6 17 7\r",
+ "6 17 8\r",
+ "6 17 9\r",
+ "6 17 10\r",
+ "6 17 11\r",
+ "6 17 12\r",
+ "6 17 13\r",
+ "6 17 14\r",
+ "6 17 15\r",
+ "6 17 16\r",
+ "6 17 17\r",
+ "6 17 18\r",
+ "6 17 19\r",
+ "6 17 20\r",
+ "6 17 21\r",
+ "6 17 22\r",
+ "6 17 23\r",
+ "6 17 24\r",
+ "6 17 25\r",
+ "6 17 26\r",
+ "6 17 27\r",
+ "6 17 28\r",
+ "6 17 29\r",
+ "6 17 30\r",
+ "6 17 31\r",
+ "6 17 32\r",
+ "6 17 33\r",
+ "6 17 34\r",
+ "6 17 35\r",
+ "6 17 36\r",
+ "6 17 37\r",
+ "6 17 38\r",
+ "6 17 39\r",
+ "6 17 40\r",
+ "6 17 41\r",
+ "6 17 42\r",
+ "6 17 43\r",
+ "6 17 44\r",
+ "6 17 45\r",
+ "6 17 46\r",
+ "6 17 47\r",
+ "6 17 48\r",
+ "6 17 49\r",
+ "6 17 50\r",
+ "6 17 51\r",
+ "6 17 52\r",
+ "6 17 53\r",
+ "6 17 54\r",
+ "6 17 55\r",
+ "6 17 56\r",
+ "6 17 57\r",
+ "6 17 58\r",
+ "6 18 1\r",
+ "6 18 2\r",
+ "6 18 3\r",
+ "6 18 4\r",
+ "6 18 5\r",
+ "6 18 6\r",
+ "6 18 7\r",
+ "6 18 8\r",
+ "6 18 9\r",
+ "6 18 10\r",
+ "6 18 11\r",
+ "6 18 12\r",
+ "6 18 13\r",
+ "6 18 14\r",
+ "6 18 15\r",
+ "6 18 16\r",
+ "6 18 17\r",
+ "6 18 18\r",
+ "6 18 19\r",
+ "6 18 20\r",
+ "6 18 21\r",
+ "6 18 22\r",
+ "6 18 23\r",
+ "6 18 24\r",
+ "6 18 25\r",
+ "6 18 26\r",
+ "6 18 27\r",
+ "6 18 28\r",
+ "6 18 29\r",
+ "6 18 30\r",
+ "6 18 31\r",
+ "6 18 32\r",
+ "6 18 33\r",
+ "6 18 34\r",
+ "6 18 35\r",
+ "6 18 36\r",
+ "6 18 37\r",
+ "6 18 38\r",
+ "6 18 39\r",
+ "6 18 40\r",
+ "6 18 41\r",
+ "6 18 42\r",
+ "6 18 43\r",
+ "6 18 44\r",
+ "6 18 45\r",
+ "6 18 46\r",
+ "6 18 47\r",
+ "6 18 48\r",
+ "6 18 49\r",
+ "6 18 50\r",
+ "6 18 51\r",
+ "6 18 52\r",
+ "6 18 53\r",
+ "6 18 54\r",
+ "6 18 55\r",
+ "6 18 56\r",
+ "6 18 57\r",
+ "6 18 58\r",
+ "6 19 1\r",
+ "6 19 2\r",
+ "6 19 3\r",
+ "6 19 4\r",
+ "6 19 5\r",
+ "6 19 6\r",
+ "6 19 7\r",
+ "6 19 8\r",
+ "6 19 9\r",
+ "6 19 10\r",
+ "6 19 11\r",
+ "6 19 12\r",
+ "6 19 13\r",
+ "6 19 14\r",
+ "6 19 15\r",
+ "6 19 16\r",
+ "6 19 17\r",
+ "6 19 18\r",
+ "6 19 19\r",
+ "6 19 20\r",
+ "6 19 21\r",
+ "6 19 22\r",
+ "6 19 23\r",
+ "6 19 24\r",
+ "6 19 25\r",
+ "6 19 26\r",
+ "6 19 27\r",
+ "6 19 28\r",
+ "6 19 29\r",
+ "6 19 30\r",
+ "6 19 31\r",
+ "6 19 32\r",
+ "6 19 33\r",
+ "6 19 34\r",
+ "6 19 35\r",
+ "6 19 36\r",
+ "6 19 37\r",
+ "6 19 38\r",
+ "6 19 39\r",
+ "6 19 40\r",
+ "6 19 41\r",
+ "6 19 42\r",
+ "6 19 43\r",
+ "6 19 44\r",
+ "6 19 45\r",
+ "6 19 46\r",
+ "6 19 47\r",
+ "6 19 48\r",
+ "6 19 49\r",
+ "6 19 50\r",
+ "6 19 51\r",
+ "6 19 52\r",
+ "6 19 53\r",
+ "6 19 54\r",
+ "6 19 55\r",
+ "6 19 56\r",
+ "6 19 57\r",
+ "6 19 58\r",
+ "6 20 1\r",
+ "6 20 2\r",
+ "6 20 3\r",
+ "6 20 4\r",
+ "6 20 5\r",
+ "6 20 6\r",
+ "6 20 7\r",
+ "6 20 8\r",
+ "6 20 9\r",
+ "6 20 10\r",
+ "6 20 11\r",
+ "6 20 12\r",
+ "6 20 13\r",
+ "6 20 14\r",
+ "6 20 15\r",
+ "6 20 16\r",
+ "6 20 17\r",
+ "6 20 18\r",
+ "6 20 19\r",
+ "6 20 20\r",
+ "6 20 21\r",
+ "6 20 22\r",
+ "6 20 23\r",
+ "6 20 24\r",
+ "6 20 25\r",
+ "6 20 26\r",
+ "6 20 27\r",
+ "6 20 28\r",
+ "6 20 29\r",
+ "6 20 30\r",
+ "6 20 31\r",
+ "6 20 32\r",
+ "6 20 33\r",
+ "6 20 34\r",
+ "6 20 35\r",
+ "6 20 36\r",
+ "6 20 37\r",
+ "6 20 38\r",
+ "6 20 39\r",
+ "6 20 40\r",
+ "6 20 41\r",
+ "6 20 42\r",
+ "6 20 43\r",
+ "6 20 44\r",
+ "6 20 45\r",
+ "6 20 46\r",
+ "6 20 47\r",
+ "6 20 48\r",
+ "6 20 49\r",
+ "6 20 50\r",
+ "6 20 51\r",
+ "6 20 52\r",
+ "6 20 53\r",
+ "6 20 54\r",
+ "6 20 55\r",
+ "6 20 56\r",
+ "6 20 57\r",
+ "6 20 58\r",
+ "6 21 1\r",
+ "6 21 2\r",
+ "6 21 3\r",
+ "6 21 4\r",
+ "6 21 5\r",
+ "6 21 6\r",
+ "6 21 7\r",
+ "6 21 8\r",
+ "6 21 9\r",
+ "6 21 10\r",
+ "6 21 11\r",
+ "6 21 12\r",
+ "6 21 13\r",
+ "6 21 14\r",
+ "6 21 15\r",
+ "6 21 16\r",
+ "6 21 17\r",
+ "6 21 18\r",
+ "6 21 19\r",
+ "6 21 20\r",
+ "6 21 21\r",
+ "6 21 22\r",
+ "6 21 23\r",
+ "6 21 24\r",
+ "6 21 25\r",
+ "6 21 26\r",
+ "6 21 27\r",
+ "6 21 28\r",
+ "6 21 29\r",
+ "6 21 30\r",
+ "6 21 31\r",
+ "6 21 32\r",
+ "6 21 33\r",
+ "6 21 34\r",
+ "6 21 35\r",
+ "6 21 36\r",
+ "6 21 37\r",
+ "6 21 38\r",
+ "6 21 39\r",
+ "6 21 40\r",
+ "6 21 41\r",
+ "6 21 42\r",
+ "6 21 43\r",
+ "6 21 44\r",
+ "6 21 45\r",
+ "6 21 46\r",
+ "6 21 47\r",
+ "6 21 48\r",
+ "6 21 49\r",
+ "6 21 50\r",
+ "6 21 51\r",
+ "6 21 52\r",
+ "6 21 53\r",
+ "6 21 54\r",
+ "6 21 55\r",
+ "6 21 56\r",
+ "6 21 57\r",
+ "6 21 58\r",
+ "6 22 1\r",
+ "6 22 2\r",
+ "6 22 3\r",
+ "6 22 4\r",
+ "6 22 5\r",
+ "6 22 6\r",
+ "6 22 7\r",
+ "6 22 8\r",
+ "6 22 9\r",
+ "6 22 10\r",
+ "6 22 11\r",
+ "6 22 12\r",
+ "6 22 13\r",
+ "6 22 14\r",
+ "6 22 15\r",
+ "6 22 16\r",
+ "6 22 17\r",
+ "6 22 18\r",
+ "6 22 19\r",
+ "6 22 20\r",
+ "6 22 21\r",
+ "6 22 22\r",
+ "6 22 23\r",
+ "6 22 24\r",
+ "6 22 25\r",
+ "6 22 26\r",
+ "6 22 27\r",
+ "6 22 28\r",
+ "6 22 29\r",
+ "6 22 30\r",
+ "6 22 31\r",
+ "6 22 32\r",
+ "6 22 33\r",
+ "6 22 34\r",
+ "6 22 35\r",
+ "6 22 36\r",
+ "6 22 37\r",
+ "6 22 38\r",
+ "6 22 39\r",
+ "6 22 40\r",
+ "6 22 41\r",
+ "6 22 42\r",
+ "6 22 43\r",
+ "6 22 44\r",
+ "6 22 45\r",
+ "6 22 46\r",
+ "6 22 47\r",
+ "6 22 48\r",
+ "6 22 49\r",
+ "6 22 50\r",
+ "6 22 51\r",
+ "6 22 52\r",
+ "6 22 53\r",
+ "6 22 54\r",
+ "6 22 55\r",
+ "6 22 56\r",
+ "6 22 57\r",
+ "6 22 58\r",
+ "6 23 1\r",
+ "6 23 2\r",
+ "6 23 3\r",
+ "6 23 4\r",
+ "6 23 5\r",
+ "6 23 6\r",
+ "6 23 7\r",
+ "6 23 8\r",
+ "6 23 9\r",
+ "6 23 10\r",
+ "6 23 11\r",
+ "6 23 12\r",
+ "6 23 13\r",
+ "6 23 14\r",
+ "6 23 15\r",
+ "6 23 16\r",
+ "6 23 17\r",
+ "6 23 18\r",
+ "6 23 19\r",
+ "6 23 20\r",
+ "6 23 21\r",
+ "6 23 22\r",
+ "6 23 23\r",
+ "6 23 24\r",
+ "6 23 25\r",
+ "6 23 26\r",
+ "6 23 27\r",
+ "6 23 28\r",
+ "6 23 29\r",
+ "6 23 30\r",
+ "6 23 31\r",
+ "6 23 32\r",
+ "6 23 33\r",
+ "6 23 34\r",
+ "6 23 35\r",
+ "6 23 36\r",
+ "6 23 37\r",
+ "6 23 38\r",
+ "6 23 39\r",
+ "6 23 40\r",
+ "6 23 41\r",
+ "6 23 42\r",
+ "6 23 43\r",
+ "6 23 44\r",
+ "6 23 45\r",
+ "6 23 46\r",
+ "6 23 47\r",
+ "6 23 48\r",
+ "6 23 49\r",
+ "6 23 50\r",
+ "6 23 51\r",
+ "6 23 52\r",
+ "6 23 53\r",
+ "6 23 54\r",
+ "6 23 55\r",
+ "6 23 56\r",
+ "6 23 57\r",
+ "6 23 58\r",
+ "6 24 1\r",
+ "6 24 2\r",
+ "6 24 3\r",
+ "6 24 4\r",
+ "6 24 5\r",
+ "6 24 6\r",
+ "6 24 7\r",
+ "6 24 8\r",
+ "6 24 9\r",
+ "6 24 10\r",
+ "6 24 11\r",
+ "6 24 12\r",
+ "6 24 13\r",
+ "6 24 14\r",
+ "6 24 15\r",
+ "6 24 16\r",
+ "6 24 17\r",
+ "6 24 18\r",
+ "6 24 19\r",
+ "6 24 20\r",
+ "6 24 21\r",
+ "6 24 22\r",
+ "6 24 23\r",
+ "6 24 24\r",
+ "6 24 25\r",
+ "6 24 26\r",
+ "6 24 27\r",
+ "6 24 28\r",
+ "6 24 29\r",
+ "6 24 30\r",
+ "6 24 31\r",
+ "6 24 32\r",
+ "6 24 33\r",
+ "6 24 34\r",
+ "6 24 35\r",
+ "6 24 36\r",
+ "6 24 37\r",
+ "6 24 38\r",
+ "6 24 39\r",
+ "6 24 40\r",
+ "6 24 41\r",
+ "6 24 42\r",
+ "6 24 43\r",
+ "6 24 44\r",
+ "6 24 45\r",
+ "6 24 46\r",
+ "6 24 47\r",
+ "6 24 48\r",
+ "6 24 49\r",
+ "6 24 50\r",
+ "6 24 51\r",
+ "6 24 52\r",
+ "6 24 53\r",
+ "6 24 54\r",
+ "6 24 55\r",
+ "6 24 56\r",
+ "6 24 57\r",
+ "6 24 58\r",
+ "6 25 1\r",
+ "6 25 2\r",
+ "6 25 3\r",
+ "6 25 4\r",
+ "6 25 5\r",
+ "6 25 6\r",
+ "6 25 7\r",
+ "6 25 8\r",
+ "6 25 9\r",
+ "6 25 10\r",
+ "6 25 11\r",
+ "6 25 12\r",
+ "6 25 13\r",
+ "6 25 14\r",
+ "6 25 15\r",
+ "6 25 16\r",
+ "6 25 17\r",
+ "6 25 18\r",
+ "6 25 19\r",
+ "6 25 20\r",
+ "6 25 21\r",
+ "6 25 22\r",
+ "6 25 23\r",
+ "6 25 24\r",
+ "6 25 25\r",
+ "6 25 26\r",
+ "6 25 27\r",
+ "6 25 28\r",
+ "6 25 29\r",
+ "6 25 30\r",
+ "6 25 31\r",
+ "6 25 32\r",
+ "6 25 33\r",
+ "6 25 34\r",
+ "6 25 35\r",
+ "6 25 36\r",
+ "6 25 37\r",
+ "6 25 38\r",
+ "6 25 39\r",
+ "6 25 40\r",
+ "6 25 41\r",
+ "6 25 42\r",
+ "6 25 43\r",
+ "6 25 44\r",
+ "6 25 45\r",
+ "6 25 46\r",
+ "6 25 47\r",
+ "6 25 48\r",
+ "6 25 49\r",
+ "6 25 50\r",
+ "6 25 51\r",
+ "6 25 52\r",
+ "6 25 53\r",
+ "6 25 54\r",
+ "6 25 55\r",
+ "6 25 56\r",
+ "6 25 57\r",
+ "6 25 58\r",
+ "6 26 1\r",
+ "6 26 2\r",
+ "6 26 3\r",
+ "6 26 4\r",
+ "6 26 5\r",
+ "6 26 6\r",
+ "6 26 7\r",
+ "6 26 8\r",
+ "6 26 9\r",
+ "6 26 10\r",
+ "6 26 11\r",
+ "6 26 12\r",
+ "6 26 13\r",
+ "6 26 14\r",
+ "6 26 15\r",
+ "6 26 16\r",
+ "6 26 17\r",
+ "6 26 18\r",
+ "6 26 19\r",
+ "6 26 20\r",
+ "6 26 21\r",
+ "6 26 22\r",
+ "6 26 23\r",
+ "6 26 24\r",
+ "6 26 25\r",
+ "6 26 26\r",
+ "6 26 27\r",
+ "6 26 28\r",
+ "6 26 29\r",
+ "6 26 30\r",
+ "6 26 31\r",
+ "6 26 32\r",
+ "6 26 33\r",
+ "6 26 34\r",
+ "6 26 35\r",
+ "6 26 36\r",
+ "6 26 37\r",
+ "6 26 38\r",
+ "6 26 39\r",
+ "6 26 40\r",
+ "6 26 41\r",
+ "6 26 42\r",
+ "6 26 43\r",
+ "6 26 44\r",
+ "6 26 45\r",
+ "6 26 46\r",
+ "6 26 47\r",
+ "6 26 48\r",
+ "6 26 49\r",
+ "6 26 50\r",
+ "6 26 51\r",
+ "6 26 52\r",
+ "6 26 53\r",
+ "6 26 54\r",
+ "6 26 55\r",
+ "6 26 56\r",
+ "6 26 57\r",
+ "6 26 58\r",
+ "6 27 1\r",
+ "6 27 2\r",
+ "6 27 3\r",
+ "6 27 4\r",
+ "6 27 5\r",
+ "6 27 6\r",
+ "6 27 7\r",
+ "6 27 8\r",
+ "6 27 9\r",
+ "6 27 10\r",
+ "6 27 11\r",
+ "6 27 12\r",
+ "6 27 13\r",
+ "6 27 14\r",
+ "6 27 15\r",
+ "6 27 16\r",
+ "6 27 17\r",
+ "6 27 18\r",
+ "6 27 19\r",
+ "6 27 20\r",
+ "6 27 21\r",
+ "6 27 22\r",
+ "6 27 23\r",
+ "6 27 24\r",
+ "6 27 25\r",
+ "6 27 26\r",
+ "6 27 27\r",
+ "6 27 28\r",
+ "6 27 29\r",
+ "6 27 30\r",
+ "6 27 31\r",
+ "6 27 32\r",
+ "6 27 33\r",
+ "6 27 34\r",
+ "6 27 35\r",
+ "6 27 36\r",
+ "6 27 37\r",
+ "6 27 38\r",
+ "6 27 39\r",
+ "6 27 40\r",
+ "6 27 41\r",
+ "6 27 42\r",
+ "6 27 43\r",
+ "6 27 44\r",
+ "6 27 45\r",
+ "6 27 46\r",
+ "6 27 47\r",
+ "6 27 48\r",
+ "6 27 49\r",
+ "6 27 50\r",
+ "6 27 51\r",
+ "6 27 52\r",
+ "6 27 53\r",
+ "6 27 54\r",
+ "6 27 55\r",
+ "6 27 56\r",
+ "6 27 57\r",
+ "6 27 58\r",
+ "6 28 1\r",
+ "6 28 2\r",
+ "6 28 3\r",
+ "6 28 4\r",
+ "6 28 5\r",
+ "6 28 6\r",
+ "6 28 7\r",
+ "6 28 8\r",
+ "6 28 9\r",
+ "6 28 10\r",
+ "6 28 11\r",
+ "6 28 12\r",
+ "6 28 13\r",
+ "6 28 14\r",
+ "6 28 15\r",
+ "6 28 16\r",
+ "6 28 17\r",
+ "6 28 18\r",
+ "6 28 19\r",
+ "6 28 20\r",
+ "6 28 21\r",
+ "6 28 22\r",
+ "6 28 23\r",
+ "6 28 24\r",
+ "6 28 25\r",
+ "6 28 26\r",
+ "6 28 27\r",
+ "6 28 28\r",
+ "6 28 29\r",
+ "6 28 30\r",
+ "6 28 31\r",
+ "6 28 32\r",
+ "6 28 33\r",
+ "6 28 34\r",
+ "6 28 35\r",
+ "6 28 36\r",
+ "6 28 37\r",
+ "6 28 38\r",
+ "6 28 39\r",
+ "6 28 40\r",
+ "6 28 41\r",
+ "6 28 42\r",
+ "6 28 43\r",
+ "6 28 44\r",
+ "6 28 45\r",
+ "6 28 46\r",
+ "6 28 47\r",
+ "6 28 48\r",
+ "6 28 49\r",
+ "6 28 50\r",
+ "6 28 51\r",
+ "6 28 52\r",
+ "6 28 53\r",
+ "6 28 54\r",
+ "6 28 55\r",
+ "6 28 56\r",
+ "6 28 57\r",
+ "6 28 58\r",
+ "6 29 1\r",
+ "6 29 2\r",
+ "6 29 3\r",
+ "6 29 4\r",
+ "6 29 5\r",
+ "6 29 6\r",
+ "6 29 7\r",
+ "6 29 8\r",
+ "6 29 9\r",
+ "6 29 10\r",
+ "6 29 11\r",
+ "6 29 12"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\r",
+ "6 29 13\r",
+ "6 29 14\r",
+ "6 29 15\r",
+ "6 29 16\r",
+ "6 29 17\r",
+ "6 29 18\r",
+ "6 29 19\r",
+ "6 29 20\r",
+ "6 29 21\r",
+ "6 29 22\r",
+ "6 29 23\r",
+ "6 29 24\r",
+ "6 29 25\r",
+ "6 29 26\r",
+ "6 29 27\r",
+ "6 29 28\r",
+ "6 29 29\r",
+ "6 29 30\r",
+ "6 29 31\r",
+ "6 29 32\r",
+ "6 29 33\r",
+ "6 29 34\r",
+ "6 29 35\r",
+ "6 29 36\r",
+ "6 29 37\r",
+ "6 29 38\r",
+ "6 29 39\r",
+ "6 29 40\r",
+ "6 29 41\r",
+ "6 29 42\r",
+ "6 29 43\r",
+ "6 29 44\r",
+ "6 29 45\r",
+ "6 29 46\r",
+ "6 29 47\r",
+ "6 29 48\r",
+ "6 29 49\r",
+ "6 29 50\r",
+ "6 29 51\r",
+ "6 29 52\r",
+ "6 29 53\r",
+ "6 29 54\r",
+ "6 29 55\r",
+ "6 29 56\r",
+ "6 29 57\r",
+ "6 29 58\r",
+ "6 30 1\r",
+ "6 30 2\r",
+ "6 30 3\r",
+ "6 30 4\r",
+ "6 30 5\r",
+ "6 30 6\r",
+ "6 30 7\r",
+ "6 30 8\r",
+ "6 30 9\r",
+ "6 30 10\r",
+ "6 30 11\r",
+ "6 30 12\r",
+ "6 30 13\r",
+ "6 30 14\r",
+ "6 30 15\r",
+ "6 30 16\r",
+ "6 30 17\r",
+ "6 30 18\r",
+ "6 30 19\r",
+ "6 30 20\r",
+ "6 30 21\r",
+ "6 30 22\r",
+ "6 30 23\r",
+ "6 30 24\r",
+ "6 30 25\r",
+ "6 30 26\r",
+ "6 30 27\r",
+ "6 30 28\r",
+ "6 30 29\r",
+ "6 30 30\r",
+ "6 30 31\r",
+ "6 30 32\r",
+ "6 30 33\r",
+ "6 30 34\r",
+ "6 30 35\r",
+ "6 30 36\r",
+ "6 30 37\r",
+ "6 30 38\r",
+ "6 30 39\r",
+ "6 30 40\r",
+ "6 30 41\r",
+ "6 30 42\r",
+ "6 30 43\r",
+ "6 30 44\r",
+ "6 30 45\r",
+ "6 30 46\r",
+ "6 30 47\r",
+ "6 30 48\r",
+ "6 30 49\r",
+ "6 30 50\r",
+ "6 30 51\r",
+ "6 30 52\r",
+ "6 30 53\r",
+ "6 30 54\r",
+ "6 30 55\r",
+ "6 30 56\r",
+ "6 30 57\r",
+ "6 30 58\r",
+ "6 31 1\r",
+ "6 31 2\r",
+ "6 31 3\r",
+ "6 31 4\r",
+ "6 31 5\r",
+ "6 31 6\r",
+ "6 31 7\r",
+ "6 31 8\r",
+ "6 31 9\r",
+ "6 31 10\r",
+ "6 31 11\r",
+ "6 31 12\r",
+ "6 31 13\r",
+ "6 31 14\r",
+ "6 31 15\r",
+ "6 31 16\r",
+ "6 31 17\r",
+ "6 31 18\r",
+ "6 31 19\r",
+ "6 31 20\r",
+ "6 31 21\r",
+ "6 31 22\r",
+ "6 31 23\r",
+ "6 31 24\r",
+ "6 31 25\r",
+ "6 31 26\r",
+ "6 31 27\r",
+ "6 31 28\r",
+ "6 31 29\r",
+ "6 31 30\r",
+ "6 31 31\r",
+ "6 31 32\r",
+ "6 31 33\r",
+ "6 31 34\r",
+ "6 31 35\r",
+ "6 31 36\r",
+ "6 31 37\r",
+ "6 31 38\r",
+ "6 31 39\r",
+ "6 31 40\r",
+ "6 31 41\r",
+ "6 31 42\r",
+ "6 31 43\r",
+ "6 31 44\r",
+ "6 31 45\r",
+ "6 31 46\r",
+ "6 31 47\r",
+ "6 31 48\r",
+ "6 31 49\r",
+ "6 31 50\r",
+ "6 31 51\r",
+ "6 31 52\r",
+ "6 31 53\r",
+ "6 31 54\r",
+ "6 31 55\r",
+ "6 31 56\r",
+ "6 31 57\r",
+ "6 31 58\r",
+ "6 32 1\r",
+ "6 32 2\r",
+ "6 32 3\r",
+ "6 32 4\r",
+ "6 32 5\r",
+ "6 32 6\r",
+ "6 32 7\r",
+ "6 32 8\r",
+ "6 32 9\r",
+ "6 32 10\r",
+ "6 32 11\r",
+ "6 32 12\r",
+ "6 32 13\r",
+ "6 32 14\r",
+ "6 32 15\r",
+ "6 32 16\r",
+ "6 32 17\r",
+ "6 32 18\r",
+ "6 32 19\r",
+ "6 32 20\r",
+ "6 32 21\r",
+ "6 32 22\r",
+ "6 32 23\r",
+ "6 32 24\r",
+ "6 32 25\r",
+ "6 32 26\r",
+ "6 32 27\r",
+ "6 32 28\r",
+ "6 32 29\r",
+ "6 32 30\r",
+ "6 32 31\r",
+ "6 32 32\r",
+ "6 32 33\r",
+ "6 32 34\r",
+ "6 32 35\r",
+ "6 32 36\r",
+ "6 32 37\r",
+ "6 32 38\r",
+ "6 32 39\r",
+ "6 32 40\r",
+ "6 32 41\r",
+ "6 32 42\r",
+ "6 32 43\r",
+ "6 32 44\r",
+ "6 32 45\r",
+ "6 32 46\r",
+ "6 32 47\r",
+ "6 32 48\r",
+ "6 32 49\r",
+ "6 32 50\r",
+ "6 32 51\r",
+ "6 32 52\r",
+ "6 32 53\r",
+ "6 32 54\r",
+ "6 32 55\r",
+ "6 32 56\r",
+ "6 32 57\r",
+ "6 32 58\r",
+ "6 33 1\r",
+ "6 33 2\r",
+ "6 33 3\r",
+ "6 33 4\r",
+ "6 33 5\r",
+ "6 33 6\r",
+ "6 33 7\r",
+ "6 33 8\r",
+ "6 33 9\r",
+ "6 33 10\r",
+ "6 33 11\r",
+ "6 33 12\r",
+ "6 33 13\r",
+ "6 33 14\r",
+ "6 33 15\r",
+ "6 33 16\r",
+ "6 33 17\r",
+ "6 33 18\r",
+ "6 33 19\r",
+ "6 33 20\r",
+ "6 33 21\r",
+ "6 33 22\r",
+ "6 33 23\r",
+ "6 33 24\r",
+ "6 33 25\r",
+ "6 33 26\r",
+ "6 33 27\r",
+ "6 33 28\r",
+ "6 33 29\r",
+ "6 33 30\r",
+ "6 33 31\r",
+ "6 33 32\r",
+ "6 33 33\r",
+ "6 33 34\r",
+ "6 33 35\r",
+ "6 33 36\r",
+ "6 33 37\r",
+ "6 33 38\r",
+ "6 33 39\r",
+ "6 33 40\r",
+ "6 33 41\r",
+ "6 33 42\r",
+ "6 33 43\r",
+ "6 33 44\r",
+ "6 33 45\r",
+ "6 33 46\r",
+ "6 33 47\r",
+ "6 33 48\r",
+ "6 33 49\r",
+ "6 33 50\r",
+ "6 33 51\r",
+ "6 33 52\r",
+ "6 33 53\r",
+ "6 33 54\r",
+ "6 33 55\r",
+ "6 33 56\r",
+ "6 33 57\r",
+ "6 33 58\r",
+ "6 34 1\r",
+ "6 34 2\r",
+ "6 34 3\r",
+ "6 34 4\r",
+ "6 34 5\r",
+ "6 34 6\r",
+ "6 34 7\r",
+ "6 34 8\r",
+ "6 34 9\r",
+ "6 34 10\r",
+ "6 34 11\r",
+ "6 34 12\r",
+ "6 34 13\r",
+ "6 34 14\r",
+ "6 34 15\r",
+ "6 34 16\r",
+ "6 34 17\r",
+ "6 34 18\r",
+ "6 34 19\r",
+ "6 34 20\r",
+ "6 34 21\r",
+ "6 34 22\r",
+ "6 34 23\r",
+ "6 34 24\r",
+ "6 34 25\r",
+ "6 34 26\r",
+ "6 34 27\r",
+ "6 34 28\r",
+ "6 34 29\r",
+ "6 34 30\r",
+ "6 34 31\r",
+ "6 34 32\r",
+ "6 34 33\r",
+ "6 34 34\r",
+ "6 34 35\r",
+ "6 34 36\r",
+ "6 34 37\r",
+ "6 34 38\r",
+ "6 34 39\r",
+ "6 34 40\r",
+ "6 34 41\r",
+ "6 34 42\r",
+ "6 34 43\r",
+ "6 34 44\r",
+ "6 34 45\r",
+ "6 34 46\r",
+ "6 34 47\r",
+ "6 34 48\r",
+ "6 34 49\r",
+ "6 34 50\r",
+ "6 34 51\r",
+ "6 34 52\r",
+ "6 34 53\r",
+ "6 34 54\r",
+ "6 34 55\r",
+ "6 34 56\r",
+ "6 34 57\r",
+ "6 34 58\r",
+ "6 35 1\r",
+ "6 35 2\r",
+ "6 35 3\r",
+ "6 35 4\r",
+ "6 35 5\r",
+ "6 35 6\r",
+ "6 35 7\r",
+ "6 35 8\r",
+ "6 35 9\r",
+ "6 35 10\r",
+ "6 35 11\r",
+ "6 35 12\r",
+ "6 35 13\r",
+ "6 35 14\r",
+ "6 35 15\r",
+ "6 35 16\r",
+ "6 35 17\r",
+ "6 35 18\r",
+ "6 35 19\r",
+ "6 35 20\r",
+ "6 35 21\r",
+ "6 35 22\r",
+ "6 35 23\r",
+ "6 35 24\r",
+ "6 35 25\r",
+ "6 35 26\r",
+ "6 35 27\r",
+ "6 35 28\r",
+ "6 35 29\r",
+ "6 35 30\r",
+ "6 35 31\r",
+ "6 35 32\r",
+ "6 35 33\r",
+ "6 35 34\r",
+ "6 35 35\r",
+ "6 35 36\r",
+ "6 35 37\r",
+ "6 35 38\r",
+ "6 35 39\r",
+ "6 35 40\r",
+ "6 35 41\r",
+ "6 35 42\r",
+ "6 35 43\r",
+ "6 35 44\r",
+ "6 35 45\r",
+ "6 35 46\r",
+ "6 35 47\r",
+ "6 35 48\r",
+ "6 35 49\r",
+ "6 35 50\r",
+ "6 35 51\r",
+ "6 35 52\r",
+ "6 35 53\r",
+ "6 35 54\r",
+ "6 35 55\r",
+ "6 35 56\r",
+ "6 35 57\r",
+ "6 35 58\r",
+ "6 36 1\r",
+ "6 36 2\r",
+ "6 36 3\r",
+ "6 36 4\r",
+ "6 36 5\r",
+ "6 36 6\r",
+ "6 36 7\r",
+ "6 36 8\r",
+ "6 36 9\r",
+ "6 36 10\r",
+ "6 36 11\r",
+ "6 36 12\r",
+ "6 36 13\r",
+ "6 36 14\r",
+ "6 36 15\r",
+ "6 36 16\r",
+ "6 36 17\r",
+ "6 36 18\r",
+ "6 36 19\r",
+ "6 36 20\r",
+ "6 36 21\r",
+ "6 36 22\r",
+ "6 36 23\r",
+ "6 36 24\r",
+ "6 36 25\r",
+ "6 36 26\r",
+ "6 36 27\r",
+ "6 36 28\r",
+ "6 36 29\r",
+ "6 36 30\r",
+ "6 36 31\r",
+ "6 36 32\r",
+ "6 36 33\r",
+ "6 36 34\r",
+ "6 36 35\r",
+ "6 36 36\r",
+ "6 36 37\r",
+ "6 36 38\r",
+ "6 36 39\r",
+ "6 36 40\r",
+ "6 36 41\r",
+ "6 36 42\r",
+ "6 36 43\r",
+ "6 36 44\r",
+ "6 36 45\r",
+ "6 36 46\r",
+ "6 36 47\r",
+ "6 36 48\r",
+ "6 36 49\r",
+ "6 36 50\r",
+ "6 36 51\r",
+ "6 36 52\r",
+ "6 36 53\r",
+ "6 36 54\r",
+ "6 36 55\r",
+ "6 36 56\r",
+ "6 36 57\r",
+ "6 36 58\r",
+ "6 37 1\r",
+ "6 37 2\r",
+ "6 37 3\r",
+ "6 37 4\r",
+ "6 37 5\r",
+ "6 37 6\r",
+ "6 37 7\r",
+ "6 37 8\r",
+ "6 37 9\r",
+ "6 37 10\r",
+ "6 37 11\r",
+ "6 37 12\r",
+ "6 37 13\r",
+ "6 37 14\r",
+ "6 37 15\r",
+ "6 37 16\r",
+ "6 37 17\r",
+ "6 37 18\r",
+ "6 37 19\r",
+ "6 37 20\r",
+ "6 37 21\r",
+ "6 37 22\r",
+ "6 37 23\r",
+ "6 37 24\r",
+ "6 37 25\r",
+ "6 37 26\r",
+ "6 37 27\r",
+ "6 37 28\r",
+ "6 37 29\r",
+ "6 37 30\r",
+ "6 37 31\r",
+ "6 37 32\r",
+ "6 37 33\r",
+ "6 37 34\r",
+ "6 37 35\r",
+ "6 37 36\r",
+ "6 37 37\r",
+ "6 37 38\r",
+ "6 37 39\r",
+ "6 37 40\r",
+ "6 37 41\r",
+ "6 37 42\r",
+ "6 37 43\r",
+ "6 37 44\r",
+ "6 37 45\r",
+ "6 37 46\r",
+ "6 37 47\r",
+ "6 37 48\r",
+ "6 37 49\r",
+ "6 37 50\r",
+ "6 37 51\r",
+ "6 37 52\r",
+ "6 37 53\r",
+ "6 37 54\r",
+ "6 37 55\r",
+ "6 37 56\r",
+ "6 37 57\r",
+ "6 37 58\r",
+ "6 38 1\r",
+ "6 38 2\r",
+ "6 38 3\r",
+ "6 38 4\r",
+ "6 38 5\r",
+ "6 38 6\r",
+ "6 38 7\r",
+ "6 38 8\r",
+ "6 38 9\r",
+ "6 38 10\r",
+ "6 38 11\r",
+ "6 38 12\r",
+ "6 38 13\r",
+ "6 38 14\r",
+ "6 38 15\r",
+ "6 38 16\r",
+ "6 38 17\r",
+ "6 38 18\r",
+ "6 38 19\r",
+ "6 38 20\r",
+ "6 38 21\r",
+ "6 38 22\r",
+ "6 38 23\r",
+ "6 38 24\r",
+ "6 38 25\r",
+ "6 38 26\r",
+ "6 38 27\r",
+ "6 38 28\r",
+ "6 38 29\r",
+ "6 38 30\r",
+ "6 38 31\r",
+ "6 38 32\r",
+ "6 38 33\r",
+ "6 38 34\r",
+ "6 38 35\r",
+ "6 38 36\r",
+ "6 38 37\r",
+ "6 38 38\r",
+ "6 38 39\r",
+ "6 38 40\r",
+ "6 38 41\r",
+ "6 38 42\r",
+ "6 38 43\r",
+ "6 38 44\r",
+ "6 38 45\r",
+ "6 38 46\r",
+ "6 38 47\r",
+ "6 38 48\r",
+ "6 38 49\r",
+ "6 38 50\r",
+ "6 38 51\r",
+ "6 38 52\r",
+ "6 38 53\r",
+ "6 38 54\r",
+ "6 38 55\r",
+ "6 38 56\r",
+ "6 38 57\r",
+ "6 38 58\r",
+ "6 39 1\r",
+ "6 39 2\r",
+ "6 39 3\r",
+ "6 39 4\r",
+ "6 39 5\r",
+ "6 39 6\r",
+ "6 39 7\r",
+ "6 39 8\r",
+ "6 39 9\r",
+ "6 39 10\r",
+ "6 39 11\r",
+ "6 39 12\r",
+ "6 39 13\r",
+ "6 39 14\r",
+ "6 39 15\r",
+ "6 39 16\r",
+ "6 39 17\r",
+ "6 39 18\r",
+ "6 39 19\r",
+ "6 39 20\r",
+ "6 39 21\r",
+ "6 39 22\r",
+ "6 39 23\r",
+ "6 39 24\r",
+ "6 39 25\r",
+ "6 39 26\r",
+ "6 39 27\r",
+ "6 39 28\r",
+ "6 39 29\r",
+ "6 39 30\r",
+ "6 39 31\r",
+ "6 39 32\r",
+ "6 39 33\r",
+ "6 39 34\r",
+ "6 39 35\r",
+ "6 39 36\r",
+ "6 39 37\r",
+ "6 39 38\r",
+ "6 39 39\r",
+ "6 39 40\r",
+ "6 39 41\r",
+ "6 39 42\r",
+ "6 39 43\r",
+ "6 39 44\r",
+ "6 39 45\r",
+ "6 39 46\r",
+ "6 39 47\r",
+ "6 39 48\r",
+ "6 39 49\r",
+ "6 39 50\r",
+ "6 39 51\r",
+ "6 39 52\r",
+ "6 39 53\r",
+ "6 39 54\r",
+ "6 39 55\r",
+ "6 39 56\r",
+ "6 39 57\r",
+ "6 39 58\r",
+ "6 40 1\r",
+ "6 40 2\r",
+ "6 40 3\r",
+ "6 40 4\r",
+ "6 40 5\r",
+ "6 40 6\r",
+ "6 40 7\r",
+ "6 40 8\r",
+ "6 40 9\r",
+ "6 40 10\r",
+ "6 40 11\r",
+ "6 40 12\r",
+ "6 40 13\r",
+ "6 40 14\r",
+ "6 40 15\r",
+ "6 40 16\r",
+ "6 40 17\r",
+ "6 40 18\r",
+ "6 40 19\r",
+ "6 40 20\r",
+ "6 40 21\r",
+ "6 40 22\r",
+ "6 40 23\r",
+ "6 40 24\r",
+ "6 40 25\r",
+ "6 40 26\r",
+ "6 40 27\r",
+ "6 40 28\r",
+ "6 40 29\r",
+ "6 40 30\r",
+ "6 40 31\r",
+ "6 40 32\r",
+ "6 40 33\r",
+ "6 40 34\r",
+ "6 40 35\r",
+ "6 40 36\r",
+ "6 40 37\r",
+ "6 40 38\r",
+ "6 40 39\r",
+ "6 40 40\r",
+ "6 40 41\r",
+ "6 40 42\r",
+ "6 40 43\r",
+ "6 40 44\r",
+ "6 40 45\r",
+ "6 40 46\r",
+ "6 40 47\r",
+ "6 40 48\r",
+ "6 40 49\r",
+ "6 40 50\r",
+ "6 40 51\r",
+ "6 40 52\r",
+ "6 40 53\r",
+ "6 40 54\r",
+ "6 40 55\r",
+ "6 40 56\r",
+ "6 40 57\r",
+ "6 40 58\r",
+ "6 41 1\r",
+ "6 41 2\r",
+ "6 41 3\r",
+ "6 41 4\r",
+ "6 41 5\r",
+ "6 41 6\r",
+ "6 41 7\r",
+ "6 41 8\r",
+ "6 41 9\r",
+ "6 41 10\r",
+ "6 41 11\r",
+ "6 41 12\r",
+ "6 41 13\r",
+ "6 41 14\r",
+ "6 41 15\r",
+ "6 41 16\r",
+ "6 41 17\r",
+ "6 41 18\r",
+ "6 41 19\r",
+ "6 41 20\r",
+ "6 41 21\r",
+ "6 41 22\r",
+ "6 41 23\r",
+ "6 41 24\r",
+ "6 41 25\r",
+ "6 41 26\r",
+ "6 41 27\r",
+ "6 41 28\r",
+ "6 41 29\r",
+ "6 41 30\r",
+ "6 41 31\r",
+ "6 41 32\r",
+ "6 41 33\r",
+ "6 41 34\r",
+ "6 41 35\r",
+ "6 41 36\r",
+ "6 41 37\r",
+ "6 41 38\r",
+ "6 41 39\r",
+ "6 41 40\r",
+ "6 41 41\r",
+ "6 41 42\r",
+ "6 41 43\r",
+ "6 41 44\r",
+ "6 41 45\r",
+ "6 41 46\r",
+ "6 41 47\r",
+ "6 41 48\r",
+ "6 41 49\r",
+ "6 41 50\r",
+ "6 41 51\r",
+ "6 41 52\r",
+ "6 41 53\r",
+ "6 41 54\r",
+ "6 41 55\r",
+ "6 41 56\r",
+ "6 41 57\r",
+ "6 41 58\r",
+ "6 42 1\r",
+ "6 42 2\r",
+ "6 42 3\r",
+ "6 42 4\r",
+ "6 42 5\r",
+ "6 42 6\r",
+ "6 42 7\r",
+ "6 42 8\r",
+ "6 42 9\r",
+ "6 42 10\r",
+ "6 42 11\r",
+ "6 42 12\r",
+ "6 42 13\r",
+ "6 42 14\r",
+ "6 42 15\r",
+ "6 42 16\r",
+ "6 42 17\r",
+ "6 42 18\r",
+ "6 42 19\r",
+ "6 42 20\r",
+ "6 42 21\r",
+ "6 42 22\r",
+ "6 42 23\r",
+ "6 42 24\r",
+ "6 42 25\r",
+ "6 42 26\r",
+ "6 42 27\r",
+ "6 42 28\r",
+ "6 42 29\r",
+ "6 42 30\r",
+ "6 42 31\r",
+ "6 42 32\r",
+ "6 42 33\r",
+ "6 42 34\r",
+ "6 42 35\r",
+ "6 42 36\r",
+ "6 42 37\r",
+ "6 42 38\r",
+ "6 42 39\r",
+ "6 42 40\r",
+ "6 42 41\r",
+ "6 42 42\r",
+ "6 42 43\r",
+ "6 42 44\r",
+ "6 42 45\r",
+ "6 42 46\r",
+ "6 42 47\r",
+ "6 42 48\r",
+ "6 42 49\r",
+ "6 42 50\r",
+ "6 42 51\r",
+ "6 42 52\r",
+ "6 42 53\r",
+ "6 42 54\r",
+ "6 42 55\r",
+ "6 42 56\r",
+ "6 42 57\r",
+ "6 42 58\r",
+ "6 43 1\r",
+ "6 43 2\r",
+ "6 43 3\r",
+ "6 43 4\r",
+ "6 43 5\r",
+ "6 43 6\r",
+ "6 43 7\r",
+ "6 43 8\r",
+ "6 43 9\r",
+ "6 43 10\r",
+ "6 43 11\r",
+ "6 43 12\r",
+ "6 43 13\r",
+ "6 43 14\r",
+ "6 43 15\r",
+ "6 43 16\r",
+ "6 43 17\r",
+ "6 43 18\r",
+ "6 43 19\r",
+ "6 43 20\r",
+ "6 43 21\r",
+ "6 43 22\r",
+ "6 43 23\r",
+ "6 43 24\r",
+ "6 43 25\r",
+ "6 43 26\r",
+ "6 43 27\r",
+ "6 43 28\r",
+ "6 43 29\r",
+ "6 43 30\r",
+ "6 43 31\r",
+ "6 43 32\r",
+ "6 43 33\r",
+ "6 43 34\r",
+ "6 43 35\r",
+ "6 43 36\r",
+ "6 43 37\r",
+ "6 43 38\r",
+ "6 43 39\r",
+ "6 43 40\r",
+ "6 43 41\r",
+ "6 43 42\r",
+ "6 43 43\r",
+ "6 43 44\r",
+ "6 43 45\r",
+ "6 43 46\r",
+ "6 43 47\r",
+ "6 43 48\r",
+ "6 43 49\r",
+ "6 43 50\r",
+ "6 43 51\r",
+ "6 43 52\r",
+ "6 43 53\r",
+ "6 43 54\r",
+ "6 43 55\r",
+ "6 43 56\r",
+ "6 43 57\r",
+ "6 43 58\r",
+ "6 44 1\r",
+ "6 44 2\r",
+ "6 44 3\r",
+ "6 44 4\r",
+ "6 44 5\r",
+ "6 44 6\r",
+ "6 44 7\r",
+ "6 44 8\r",
+ "6 44 9\r",
+ "6 44 10\r",
+ "6 44 11\r",
+ "6 44 12\r",
+ "6 44 13\r",
+ "6 44 14\r",
+ "6 44 15\r",
+ "6 44 16\r",
+ "6 44 17\r",
+ "6 44 18\r",
+ "6 44 19\r",
+ "6 44 20\r",
+ "6 44 21\r",
+ "6 44 22\r",
+ "6 44 23\r",
+ "6 44 24\r",
+ "6 44 25\r",
+ "6 44 26\r",
+ "6 44 27\r",
+ "6 44 28\r",
+ "6 44 29\r",
+ "6 44 30\r",
+ "6 44 31\r",
+ "6 44 32\r",
+ "6 44 33\r",
+ "6 44 34\r",
+ "6 44 35\r",
+ "6 44 36\r",
+ "6 44 37\r",
+ "6 44 38\r",
+ "6 44 39\r",
+ "6 44 40\r",
+ "6 44 41\r",
+ "6 44 42\r",
+ "6 44 43\r",
+ "6 44 44\r",
+ "6 44 45\r",
+ "6 44 46\r",
+ "6 44 47\r",
+ "6 44 48\r",
+ "6 44 49\r",
+ "6 44 50\r",
+ "6 44 51\r",
+ "6 44 52\r",
+ "6 44 53\r",
+ "6 44 54\r",
+ "6 44 55\r",
+ "6 44 56\r",
+ "6 44 57\r",
+ "6 44 58\r",
+ "6 45 1\r",
+ "6 45 2\r",
+ "6 45 3\r",
+ "6 45 4\r",
+ "6 45 5\r",
+ "6 45 6\r",
+ "6 45 7\r",
+ "6 45 8\r",
+ "6 45 9\r",
+ "6 45 10\r",
+ "6 45 11\r",
+ "6 45 12\r",
+ "6 45 13\r",
+ "6 45 14\r",
+ "6 45 15\r",
+ "6 45 16\r",
+ "6 45 17\r",
+ "6 45 18\r",
+ "6 45 19\r",
+ "6 45 20\r",
+ "6 45 21\r",
+ "6 45 22\r",
+ "6 45 23\r",
+ "6 45 24\r",
+ "6 45 25\r",
+ "6 45 26\r",
+ "6 45 27\r",
+ "6 45 28\r",
+ "6 45 29\r",
+ "6 45 30\r",
+ "6 45 31\r",
+ "6 45 32\r",
+ "6 45 33\r",
+ "6 45 34\r",
+ "6 45 35\r",
+ "6 45 36\r",
+ "6 45 37\r",
+ "6 45 38\r",
+ "6 45 39\r",
+ "6 45 40\r",
+ "6 45 41\r",
+ "6 45 42\r",
+ "6 45 43\r",
+ "6 45 44\r",
+ "6 45 45\r",
+ "6 45 46\r",
+ "6 45 47\r",
+ "6 45 48\r",
+ "6 45 49\r",
+ "6 45 50\r",
+ "6 45 51\r",
+ "6 45 52\r",
+ "6 45 53\r",
+ "6 45 54\r",
+ "6 45 55\r",
+ "6 45 56\r",
+ "6 45 57\r",
+ "6 45 58\r",
+ "6 46 1\r",
+ "6 46 2\r",
+ "6 46 3\r",
+ "6 46 4\r",
+ "6 46 5\r",
+ "6 46 6\r",
+ "6 46 7\r",
+ "6 46 8\r",
+ "6 46 9\r",
+ "6 46 10\r",
+ "6 46 11\r",
+ "6 46 12\r",
+ "6 46 13\r",
+ "6 46 14\r",
+ "6 46 15\r",
+ "6 46 16\r",
+ "6 46 17\r",
+ "6 46 18\r",
+ "6 46 19\r",
+ "6 46 20\r",
+ "6 46 21\r",
+ "6 46 22\r",
+ "6 46 23\r",
+ "6 46 24\r",
+ "6 46 25\r",
+ "6 46 26\r",
+ "6 46 27\r",
+ "6 46 28\r",
+ "6 46 29\r",
+ "6 46 30\r",
+ "6 46 31\r",
+ "6 46 32\r",
+ "6 46 33\r",
+ "6 46 34\r",
+ "6 46 35\r",
+ "6 46 36\r",
+ "6 46 37\r",
+ "6 46 38\r",
+ "6 46 39\r",
+ "6 46 40\r",
+ "6 46 41\r",
+ "6 46 42\r",
+ "6 46 43\r",
+ "6 46 44\r",
+ "6 46 45\r",
+ "6 46 46\r",
+ "6 46 47\r",
+ "6 46 48\r",
+ "6 46 49\r",
+ "6 46 50\r",
+ "6 46 51\r",
+ "6 46 52\r",
+ "6 46 53\r",
+ "6 46 54\r",
+ "6 46 55\r",
+ "6 46 56\r",
+ "6 46 57\r",
+ "6 46 58\r",
+ "6 47 1\r",
+ "6 47 2\r",
+ "6 47 3\r",
+ "6 47 4\r",
+ "6 47 5\r",
+ "6 47 6\r",
+ "6 47 7\r",
+ "6 47 8\r",
+ "6 47 9\r",
+ "6 47 10\r",
+ "6 47 11\r",
+ "6 47 12\r",
+ "6 47 13\r",
+ "6 47 14\r",
+ "6 47 15\r",
+ "6 47 16\r",
+ "6 47 17\r",
+ "6 47 18\r",
+ "6 47 19\r",
+ "6 47 20\r",
+ "6 47 21\r",
+ "6 47 22\r",
+ "6 47 23\r",
+ "6 47 24\r",
+ "6 47 25\r",
+ "6 47 26\r",
+ "6 47 27\r",
+ "6 47 28\r",
+ "6 47 29\r",
+ "6 47 30\r",
+ "6 47 31\r",
+ "6 47 32\r",
+ "6 47 33\r",
+ "6 47 34\r",
+ "6 47 35\r",
+ "6 47 36\r",
+ "6 47 37\r",
+ "6 47 38\r",
+ "6 47 39\r",
+ "6 47 40\r",
+ "6 47 41\r",
+ "6 47 42\r",
+ "6 47 43\r",
+ "6 47 44\r",
+ "6 47 45\r",
+ "6 47 46\r",
+ "6 47 47\r",
+ "6 47 48\r",
+ "6 47 49\r",
+ "6 47 50\r",
+ "6 47 51\r",
+ "6 47 52\r",
+ "6 47 53\r",
+ "6 47 54\r",
+ "6 47 55\r",
+ "6 47 56\r",
+ "6 47 57\r",
+ "6 47 58\r",
+ "6 48 1\r",
+ "6 48 2\r",
+ "6 48 3\r",
+ "6 48 4\r",
+ "6 48 5\r",
+ "6 48 6\r",
+ "6 48 7\r",
+ "6 48 8\r",
+ "6 48 9\r",
+ "6 48 10\r",
+ "6 48 11\r",
+ "6 48 12\r",
+ "6 48 13\r",
+ "6 48 14\r",
+ "6 48 15\r",
+ "6 48 16\r",
+ "6 48 17\r",
+ "6 48 18\r",
+ "6 48 19\r",
+ "6 48 20\r",
+ "6 48 21\r",
+ "6 48 22\r",
+ "6 48 23\r",
+ "6 48 24\r",
+ "6 48 25\r",
+ "6 48 26\r",
+ "6 48 27\r",
+ "6 48 28\r",
+ "6 48 29\r",
+ "6 48 30\r",
+ "6 48 31\r",
+ "6 48 32\r",
+ "6 48 33\r",
+ "6 48 34\r",
+ "6 48 35\r",
+ "6 48 36\r",
+ "6 48 37\r",
+ "6 48 38\r",
+ "6 48 39\r",
+ "6 48 40\r",
+ "6 48 41\r",
+ "6 48 42\r",
+ "6 48 43\r",
+ "6 48 44\r",
+ "6 48 45\r",
+ "6 48 46\r",
+ "6 48 47\r",
+ "6 48 48\r",
+ "6 48 49\r",
+ "6 48 50\r",
+ "6 48 51\r",
+ "6 48 52\r",
+ "6 48 53\r",
+ "6 48 54\r",
+ "6 48 55\r",
+ "6 48 56\r",
+ "6 48 57\r",
+ "6 48 58\r",
+ "6 49 1\r",
+ "6 49 2\r",
+ "6 49 3\r",
+ "6 49 4\r",
+ "6 49 5\r",
+ "6 49 6\r",
+ "6 49 7\r",
+ "6 49 8\r",
+ "6 49 9\r",
+ "6 49 10\r",
+ "6 49 11\r",
+ "6 49 12\r",
+ "6 49 13\r",
+ "6 49 14\r",
+ "6 49 15\r",
+ "6 49 16\r",
+ "6 49 17\r",
+ "6 49 18\r",
+ "6 49 19\r",
+ "6 49 20\r",
+ "6 49 21\r",
+ "6 49 22\r",
+ "6 49 23\r",
+ "6 49 24\r",
+ "6 49 25\r",
+ "6 49 26\r",
+ "6 49 27\r",
+ "6 49 28\r",
+ "6 49 29\r",
+ "6 49 30\r",
+ "6 49 31\r",
+ "6 49 32\r",
+ "6 49 33\r",
+ "6 49 34\r",
+ "6 49 35\r",
+ "6 49 36\r",
+ "6 49 37\r",
+ "6 49 38\r",
+ "6 49 39\r",
+ "6 49 40\r",
+ "6 49 41\r",
+ "6 49 42\r",
+ "6 49 43\r",
+ "6 49 44\r",
+ "6 49 45\r",
+ "6 49 46\r",
+ "6 49 47\r",
+ "6 49 48\r",
+ "6 49 49\r",
+ "6 49 50\r",
+ "6 49 51\r",
+ "6 49 52\r",
+ "6 49 53\r",
+ "6 49 54\r",
+ "6 49 55\r",
+ "6 49 56\r",
+ "6 49 57\r",
+ "6 49 58\r",
+ "6 50 1\r",
+ "6 50 2\r",
+ "6 50 3\r",
+ "6 50 4\r",
+ "6 50 5\r",
+ "6 50 6\r",
+ "6 50 7\r",
+ "6 50 8\r",
+ "6 50 9\r",
+ "6 50 10\r",
+ "6 50 11\r",
+ "6 50 12\r",
+ "6 50 13\r",
+ "6 50 14\r",
+ "6 50 15\r",
+ "6 50 16\r",
+ "6 50 17\r",
+ "6 50 18\r",
+ "6 50 19\r",
+ "6 50 20\r",
+ "6 50 21\r",
+ "6 50 22\r",
+ "6 50 23\r",
+ "6 50 24\r",
+ "6 50 25\r",
+ "6 50 26\r",
+ "6 50 27\r",
+ "6 50 28\r",
+ "6 50 29\r",
+ "6 50 30\r",
+ "6 50 31\r",
+ "6 50 32\r",
+ "6 50 33\r",
+ "6 50 34\r",
+ "6 50 35\r",
+ "6 50 36\r",
+ "6 50 37\r",
+ "6 50 38\r",
+ "6 50 39\r",
+ "6 50 40\r",
+ "6 50 41\r",
+ "6 50 42\r",
+ "6 50 43\r",
+ "6 50 44\r",
+ "6 50 45\r",
+ "6 50 46\r",
+ "6 50 47\r",
+ "6 50 48\r",
+ "6 50 49\r",
+ "6 50 50\r",
+ "6 50 51\r",
+ "6 50 52\r",
+ "6 50 53\r",
+ "6 50 54\r",
+ "6 50 55\r",
+ "6 50 56\r",
+ "6 50 57\r",
+ "6 50 58\r",
+ "6 51 1\r",
+ "6 51 2\r",
+ "6 51 3\r",
+ "6 51 4\r",
+ "6 51 5\r",
+ "6 51 6\r",
+ "6 51 7\r",
+ "6 51 8\r",
+ "6 51 9\r",
+ "6 51 10\r",
+ "6 51 11\r",
+ "6 51 12\r",
+ "6 51 13\r",
+ "6 51 14\r",
+ "6 51 15\r",
+ "6 51 16\r",
+ "6 51 17\r",
+ "6 51 18\r",
+ "6 51 19\r",
+ "6 51 20\r",
+ "6 51 21\r",
+ "6 51 22\r",
+ "6 51 23\r",
+ "6 51 24\r",
+ "6 51 25\r",
+ "6 51 26\r",
+ "6 51 27\r",
+ "6 51 28\r",
+ "6 51 29\r",
+ "6 51 30\r",
+ "6 51 31\r",
+ "6 51 32\r",
+ "6 51 33\r",
+ "6 51 34\r",
+ "6 51 35\r",
+ "6 51 36\r",
+ "6 51 37\r",
+ "6 51 38\r",
+ "6 51 39\r",
+ "6 51 40\r",
+ "6 51 41\r",
+ "6 51 42\r",
+ "6 51 43\r",
+ "6 51 44\r",
+ "6 51 45\r",
+ "6 51 46\r",
+ "6 51 47\r",
+ "6 51 48\r",
+ "6 51 49\r",
+ "6 51 50\r",
+ "6 51 51\r",
+ "6 51 52\r",
+ "6 51 53\r",
+ "6 51 54\r",
+ "6 51 55\r",
+ "6 51 56\r",
+ "6 51 57\r",
+ "6 51 58\r",
+ "6 52 1\r",
+ "6 52 2\r",
+ "6 52 3\r",
+ "6 52 4\r",
+ "6 52 5\r",
+ "6 52 6\r",
+ "6 52 7\r",
+ "6 52 8\r",
+ "6 52 9\r",
+ "6 52 10\r",
+ "6 52 11\r",
+ "6 52 12\r",
+ "6 52 13\r",
+ "6 52 14\r",
+ "6 52 15\r",
+ "6 52 16\r",
+ "6 52 17\r",
+ "6 52 18\r",
+ "6 52 19\r",
+ "6 52 20\r",
+ "6 52 21\r",
+ "6 52 22\r",
+ "6 52 23\r",
+ "6 52 24\r",
+ "6 52 25\r",
+ "6 52 26\r",
+ "6 52 27\r",
+ "6 52 28\r",
+ "6 52 29\r",
+ "6 52 30\r",
+ "6 52 31\r",
+ "6 52 32\r",
+ "6 52 33\r",
+ "6 52 34\r",
+ "6 52 35\r",
+ "6 52 36\r",
+ "6 52 37\r",
+ "6 52 38\r",
+ "6 52 39\r",
+ "6 52 40\r",
+ "6 52 41\r",
+ "6 52 42\r",
+ "6 52 43\r",
+ "6 52 44\r",
+ "6 52 45\r",
+ "6 52 46\r",
+ "6 52 47\r",
+ "6 52 48\r",
+ "6 52 49\r",
+ "6 52 50\r",
+ "6 52 51\r",
+ "6 52 52\r",
+ "6 52 53\r",
+ "6 52 54\r",
+ "6 52 55\r",
+ "6 52 56\r",
+ "6 52 57\r",
+ "6 52 58\r",
+ "6 53 1\r",
+ "6 53 2\r",
+ "6 53 3\r",
+ "6 53 4\r",
+ "6 53 5\r",
+ "6 53 6\r",
+ "6 53 7\r",
+ "6 53 8\r",
+ "6 53 9\r",
+ "6 53 10\r",
+ "6 53 11\r",
+ "6 53 12\r",
+ "6 53 13\r",
+ "6 53 14\r",
+ "6 53 15\r",
+ "6 53 16\r",
+ "6 53 17\r",
+ "6 53 18\r",
+ "6 53 19\r",
+ "6 53 20\r",
+ "6 53 21\r",
+ "6 53 22\r",
+ "6 53 23\r",
+ "6 53 24\r",
+ "6 53 25\r",
+ "6 53 26\r",
+ "6 53 27\r",
+ "6 53 28\r",
+ "6 53 29\r",
+ "6 53 30\r",
+ "6 53 31\r",
+ "6 53 32\r",
+ "6 53 33\r",
+ "6 53 34\r",
+ "6 53 35\r",
+ "6 53 36\r",
+ "6 53 37\r",
+ "6 53 38\r",
+ "6 53 39\r",
+ "6 53 40\r",
+ "6 53 41\r",
+ "6 53 42\r",
+ "6 53 43\r",
+ "6 53 44\r",
+ "6 53 45\r",
+ "6 53 46\r",
+ "6 53 47\r",
+ "6 53 48\r",
+ "6 53 49\r",
+ "6 53 50\r",
+ "6 53 51\r",
+ "6 53 52\r",
+ "6 53 53\r",
+ "6 53 54\r",
+ "6 53 55\r",
+ "6 53 56\r",
+ "6 53 57\r",
+ "6 53 58\r",
+ "6 54 1\r",
+ "6 54 2\r",
+ "6 54 3\r",
+ "6 54 4\r",
+ "6 54 5\r",
+ "6 54 6\r",
+ "6 54 7\r",
+ "6 54 8\r",
+ "6 54 9\r",
+ "6 54 10\r",
+ "6 54 11\r",
+ "6 54 12\r",
+ "6 54 13\r",
+ "6 54 14\r",
+ "6 54 15\r",
+ "6 54 16\r",
+ "6 54 17\r",
+ "6 54 18\r",
+ "6 54 19\r",
+ "6 54 20\r",
+ "6 54 21\r",
+ "6 54 22\r",
+ "6 54 23\r",
+ "6 54 24\r",
+ "6 54 25\r",
+ "6 54 26\r",
+ "6 54 27\r",
+ "6 54 28\r",
+ "6 54 29\r",
+ "6 54 30\r",
+ "6 54 31\r",
+ "6 54 32\r",
+ "6 54 33\r",
+ "6 54 34\r",
+ "6 54 35\r",
+ "6 54 36\r",
+ "6 54 37\r",
+ "6 54 38\r",
+ "6 54 39\r",
+ "6 54 40\r",
+ "6 54 41\r",
+ "6 54 42\r",
+ "6 54 43\r",
+ "6 54 44\r",
+ "6 54 45\r",
+ "6 54 46\r",
+ "6 54 47\r",
+ "6 54 48\r",
+ "6 54 49\r",
+ "6 54 50\r",
+ "6 54 51\r",
+ "6 54 52\r",
+ "6 54 53\r",
+ "6 54 54\r",
+ "6 54 55\r",
+ "6 54 56\r",
+ "6 54 57\r",
+ "6 54 58\r",
+ "6 55 1\r",
+ "6 55 2\r",
+ "6 55 3\r",
+ "6 55 4\r",
+ "6 55 5\r",
+ "6 55 6\r",
+ "6 55 7\r",
+ "6 55 8\r",
+ "6 55 9\r",
+ "6 55 10\r",
+ "6 55 11\r",
+ "6 55 12\r",
+ "6 55 13\r",
+ "6 55 14\r",
+ "6 55 15\r",
+ "6 55 16\r",
+ "6 55 17\r",
+ "6 55 18\r",
+ "6 55 19\r",
+ "6 55 20\r",
+ "6 55 21\r",
+ "6 55 22\r",
+ "6 55 23\r",
+ "6 55 24\r",
+ "6 55 25\r",
+ "6 55 26\r",
+ "6 55 27\r",
+ "6 55 28\r",
+ "6 55 29\r",
+ "6 55 30\r",
+ "6 55 31\r",
+ "6 55 32\r",
+ "6 55 33\r",
+ "6 55 34\r",
+ "6 55 35\r",
+ "6 55 36\r",
+ "6 55 37\r",
+ "6 55 38\r",
+ "6 55 39\r",
+ "6 55 40\r",
+ "6 55 41\r",
+ "6 55 42\r",
+ "6 55 43\r",
+ "6 55 44\r",
+ "6 55 45\r",
+ "6 55 46\r",
+ "6 55 47\r",
+ "6 55 48\r",
+ "6 55 49\r",
+ "6 55 50\r",
+ "6 55 51\r",
+ "6 55 52\r",
+ "6 55 53\r",
+ "6 55 54\r",
+ "6 55 55\r",
+ "6 55 56\r",
+ "6 55 57\r",
+ "6 55 58\r",
+ "6 56 1\r",
+ "6 56 2\r",
+ "6 56 3\r",
+ "6 56 4\r",
+ "6 56 5\r",
+ "6 56 6\r",
+ "6 56 7\r",
+ "6 56 8\r",
+ "6 56 9\r",
+ "6 56 10\r",
+ "6 56 11\r",
+ "6 56 12\r",
+ "6 56 13\r",
+ "6 56 14\r",
+ "6 56 15\r",
+ "6 56 16\r",
+ "6 56 17\r",
+ "6 56 18\r",
+ "6 56 19\r",
+ "6 56 20\r",
+ "6 56 21\r",
+ "6 56 22\r",
+ "6 56 23\r",
+ "6 56 24\r",
+ "6 56 25\r",
+ "6 56 26\r",
+ "6 56 27\r",
+ "6 56 28\r",
+ "6 56 29\r",
+ "6 56 30\r",
+ "6 56 31\r",
+ "6 56 32\r",
+ "6 56 33\r",
+ "6 56 34\r",
+ "6 56 35\r",
+ "6 56 36\r",
+ "6 56 37\r",
+ "6 56 38\r",
+ "6 56 39\r",
+ "6 56 40\r",
+ "6 56 41\r",
+ "6 56 42\r",
+ "6 56 43\r",
+ "6 56 44\r",
+ "6 56 45\r",
+ "6 56 46\r",
+ "6 56 47\r",
+ "6 56 48\r",
+ "6 56 49\r",
+ "6 56 50\r",
+ "6 56 51\r",
+ "6 56 52\r",
+ "6 56 53\r",
+ "6 56 54\r",
+ "6 56 55\r",
+ "6 56 56\r",
+ "6 56 57\r",
+ "6 56 58\r",
+ "6 57 1\r",
+ "6 57 2\r",
+ "6 57 3\r",
+ "6 57 4\r",
+ "6 57 5\r",
+ "6 57 6\r",
+ "6 57 7\r",
+ "6 57 8\r",
+ "6 57 9\r",
+ "6 57 10\r",
+ "6 57 11\r",
+ "6 57 12\r",
+ "6 57 13\r",
+ "6 57 14\r",
+ "6 57 15\r",
+ "6 57 16\r",
+ "6 57 17\r",
+ "6 57 18\r",
+ "6 57 19\r",
+ "6 57 20\r",
+ "6 57 21\r",
+ "6 57 22\r",
+ "6 57 23\r",
+ "6 57 24\r",
+ "6 57 25\r",
+ "6 57 26\r",
+ "6 57 27\r",
+ "6 57 28\r",
+ "6 57 29\r",
+ "6 57 30\r",
+ "6 57 31\r",
+ "6 57 32\r",
+ "6 57 33\r",
+ "6 57 34\r",
+ "6 57 35\r",
+ "6 57 36\r",
+ "6 57 37\r",
+ "6 57 38\r",
+ "6 57 39\r",
+ "6 57 40\r",
+ "6 57 41\r",
+ "6 57 42\r",
+ "6 57 43\r",
+ "6 57 44\r",
+ "6 57 45\r",
+ "6 57 46\r",
+ "6 57 47\r",
+ "6 57 48\r",
+ "6 57 49\r",
+ "6 57 50\r",
+ "6 57 51\r",
+ "6 57 52\r",
+ "6 57 53\r",
+ "6 57 54\r",
+ "6 57 55\r",
+ "6 57 56\r",
+ "6 57 57\r",
+ "6 57 58\r",
+ "6 58 1\r",
+ "6 58 2\r",
+ "6 58 3\r",
+ "6 58 4\r",
+ "6 58 5\r",
+ "6 58 6\r",
+ "6 58 7\r",
+ "6 58 8\r",
+ "6 58 9\r",
+ "6 58 10\r",
+ "6 58 11\r",
+ "6 58 12\r",
+ "6 58 13\r",
+ "6 58 14\r",
+ "6 58 15\r",
+ "6 58 16\r",
+ "6 58 17\r",
+ "6 58 18\r",
+ "6 58 19\r",
+ "6 58 20\r",
+ "6 58 21\r",
+ "6 58 22\r",
+ "6 58 23\r",
+ "6 58 24\r",
+ "6 58 25\r",
+ "6 58 26\r",
+ "6 58 27\r",
+ "6 58 28\r",
+ "6 58 29\r",
+ "6 58 30\r",
+ "6 58 31\r",
+ "6 58 32\r",
+ "6 58 33\r",
+ "6 58 34\r",
+ "6 58 35\r",
+ "6 58 36\r",
+ "6 58 37\r",
+ "6 58 38\r",
+ "6 58 39\r",
+ "6 58 40\r",
+ "6 58 41\r",
+ "6 58 42\r",
+ "6 58 43\r",
+ "6 58 44\r",
+ "6 58 45\r",
+ "6 58 46\r",
+ "6 58 47\r",
+ "6 58 48\r",
+ "6 58 49\r",
+ "6 58 50\r",
+ "6 58 51\r",
+ "6 58 52\r",
+ "6 58 53\r",
+ "6 58 54\r",
+ "6 58 55\r",
+ "6 58 56\r",
+ "6 58 57\r",
+ "6 58 58\r",
+ "7 1 1\r",
+ "7 1 2\r",
+ "7 1 3\r",
+ "7 1 4\r",
+ "7 1 5\r",
+ "7 1 6\r",
+ "7 1 7\r",
+ "7 1 8\r",
+ "7 1 9\r",
+ "7 1 10\r",
+ "7 1 11\r",
+ "7 1 12\r",
+ "7 1 13\r",
+ "7 1 14\r",
+ "7 1 15\r",
+ "7 1 16\r",
+ "7 1 17\r",
+ "7 1 18\r",
+ "7 1 19\r",
+ "7 1 20\r",
+ "7 1 21\r",
+ "7 1 22\r",
+ "7 1 23\r",
+ "7 1 24\r",
+ "7 1 25\r",
+ "7 1 26\r",
+ "7 1 27\r",
+ "7 1 28\r",
+ "7 1 29\r",
+ "7 1 30\r",
+ "7 1 31\r",
+ "7 1 32\r",
+ "7 1 33\r",
+ "7 1 34\r",
+ "7 1 35\r",
+ "7 1 36\r",
+ "7 1 37\r",
+ "7 1 38\r",
+ "7 1 39\r",
+ "7 1 40\r",
+ "7 1 41\r",
+ "7 1 42\r",
+ "7 1 43\r",
+ "7 1 44\r",
+ "7 1 45\r",
+ "7 1 46\r",
+ "7 1 47\r",
+ "7 1 48\r",
+ "7 1 49\r",
+ "7 1 50\r",
+ "7 1 51\r",
+ "7 1 52\r",
+ "7 1 53\r",
+ "7 1 54\r",
+ "7 1 55\r",
+ "7 1 56\r",
+ "7 1 57\r",
+ "7 1 58\r",
+ "7 2 1\r",
+ "7 2 2\r",
+ "7 2 3\r",
+ "7 2 4\r",
+ "7 2 5\r",
+ "7 2 6\r",
+ "7 2 7\r",
+ "7 2 8\r",
+ "7 2 9\r",
+ "7 2 10\r",
+ "7 2 11\r",
+ "7 2 12\r",
+ "7 2 13\r",
+ "7 2 14\r",
+ "7 2 15\r",
+ "7 2 16\r",
+ "7 2 17\r",
+ "7 2 18\r",
+ "7 2 19\r",
+ "7 2 20\r",
+ "7 2 21\r",
+ "7 2 22\r",
+ "7 2 23\r",
+ "7 2 24\r",
+ "7 2 25\r",
+ "7 2 26\r",
+ "7 2 27\r",
+ "7 2 28\r",
+ "7 2 29\r",
+ "7 2 30\r",
+ "7 2 31\r",
+ "7 2 32\r",
+ "7 2 33\r",
+ "7 2 34\r",
+ "7 2 35\r",
+ "7 2 36\r",
+ "7 2 37\r",
+ "7 2 38\r",
+ "7 2 39\r",
+ "7 2 40\r",
+ "7 2 41\r",
+ "7 2 42\r",
+ "7 2 43\r",
+ "7 2 44\r",
+ "7 2 45\r",
+ "7 2 46\r",
+ "7 2 47\r",
+ "7 2 48\r",
+ "7 2 49\r",
+ "7 2 50\r",
+ "7 2 51\r",
+ "7 2 52\r",
+ "7 2 53\r",
+ "7 2 54\r",
+ "7 2 55\r",
+ "7 2 56\r",
+ "7 2 57\r",
+ "7 2 58\r",
+ "7 3 1\r",
+ "7 3 2\r",
+ "7 3 3\r",
+ "7 3 4\r",
+ "7 3 5\r",
+ "7 3 6\r",
+ "7 3 7\r",
+ "7 3 8\r",
+ "7 3 9\r",
+ "7 3 10\r",
+ "7 3 11\r",
+ "7 3 12\r",
+ "7 3 13\r",
+ "7 3 14\r",
+ "7 3 15\r",
+ "7 3 16\r",
+ "7 3 17\r",
+ "7 3 18\r",
+ "7 3 19\r",
+ "7 3 20\r",
+ "7 3 21\r",
+ "7 3 22\r",
+ "7 3 23\r",
+ "7 3 24\r",
+ "7 3 25\r",
+ "7 3 26\r",
+ "7 3 27\r",
+ "7 3 28\r",
+ "7 3 29\r",
+ "7 3 30\r",
+ "7 3 31\r",
+ "7 3 32\r",
+ "7 3 33\r",
+ "7 3 34\r",
+ "7 3 35\r",
+ "7 3 36\r",
+ "7 3 37\r",
+ "7 3 38\r",
+ "7 3 39\r",
+ "7 3 40\r",
+ "7 3 41\r",
+ "7 3 42\r",
+ "7 3 43\r",
+ "7 3 44\r",
+ "7 3 45\r",
+ "7 3 46\r",
+ "7 3 47\r",
+ "7 3 48\r",
+ "7 3 49\r",
+ "7 3 50\r",
+ "7 3 51\r",
+ "7 3 52\r",
+ "7 3 53\r",
+ "7 3 54\r",
+ "7 3 55\r",
+ "7 3 56\r",
+ "7 3 57\r",
+ "7 3 58\r",
+ "7 4 1\r",
+ "7 4 2\r",
+ "7 4 3\r",
+ "7 4 4\r",
+ "7 4 5\r",
+ "7 4 6\r",
+ "7 4 7\r",
+ "7 4 8\r",
+ "7 4 9\r",
+ "7 4 10\r",
+ "7 4 11\r",
+ "7 4 12\r",
+ "7 4 13\r",
+ "7 4 14\r",
+ "7 4 15\r",
+ "7 4 16\r",
+ "7 4 17\r",
+ "7 4 18\r",
+ "7 4 19\r",
+ "7 4 20\r",
+ "7 4 21\r",
+ "7 4 22\r",
+ "7 4 23\r",
+ "7 4 24\r",
+ "7 4 25\r",
+ "7 4 26\r",
+ "7 4 27\r",
+ "7 4 28\r",
+ "7 4 29\r",
+ "7 4 30\r",
+ "7 4 31\r",
+ "7 4 32\r",
+ "7 4 33\r",
+ "7 4 34\r",
+ "7 4 35\r",
+ "7 4 36\r",
+ "7 4 37\r",
+ "7 4 38\r",
+ "7 4 39\r",
+ "7 4 40\r",
+ "7 4 41\r",
+ "7 4 42\r",
+ "7 4 43\r",
+ "7 4 44\r",
+ "7 4 45\r",
+ "7 4 46\r",
+ "7 4 47\r",
+ "7 4 48\r",
+ "7 4 49\r",
+ "7 4 50\r",
+ "7 4 51\r",
+ "7 4 52\r",
+ "7 4 53\r",
+ "7 4 54\r",
+ "7 4 55\r",
+ "7 4 56\r",
+ "7 4 57\r",
+ "7 4 58\r",
+ "7 5 1\r",
+ "7 5 2\r",
+ "7 5 3\r",
+ "7 5 4\r",
+ "7 5 5\r",
+ "7 5 6\r",
+ "7 5 7\r",
+ "7 5 8\r",
+ "7 5 9\r",
+ "7 5 10\r",
+ "7 5 11\r",
+ "7 5 12\r",
+ "7 5 13\r",
+ "7 5 14\r",
+ "7 5 15\r",
+ "7 5 16\r",
+ "7 5 17\r",
+ "7 5 18\r",
+ "7 5 19\r",
+ "7 5 20\r",
+ "7 5 21\r",
+ "7 5 22\r",
+ "7 5 23\r",
+ "7 5 24\r",
+ "7 5 25\r",
+ "7 5 26\r",
+ "7 5 27\r",
+ "7 5 28\r",
+ "7 5 29\r",
+ "7 5 30\r",
+ "7 5 31\r",
+ "7 5 32\r",
+ "7 5 33\r",
+ "7 5 34\r",
+ "7 5 35\r",
+ "7 5 36\r",
+ "7 5 37\r",
+ "7 5 38\r",
+ "7 5 39\r",
+ "7 5 40\r",
+ "7 5 41\r",
+ "7 5 42\r",
+ "7 5 43\r",
+ "7 5 44\r",
+ "7 5 45\r",
+ "7 5 46\r",
+ "7 5 47\r",
+ "7 5 48\r",
+ "7 5 49\r",
+ "7 5 50\r",
+ "7 5 51\r",
+ "7 5 52\r",
+ "7 5 53\r",
+ "7 5 54\r",
+ "7 5 55\r",
+ "7 5 56\r",
+ "7 5 57\r",
+ "7 5 58\r",
+ "7 6 1\r",
+ "7 6 2\r",
+ "7 6 3\r",
+ "7 6 4\r",
+ "7 6 5\r",
+ "7 6 6\r",
+ "7 6 7\r",
+ "7 6 8\r",
+ "7 6 9\r",
+ "7 6 10\r",
+ "7 6 11\r",
+ "7 6 12\r",
+ "7 6 13\r",
+ "7 6 14\r",
+ "7 6 15\r",
+ "7 6 16\r",
+ "7 6 17\r",
+ "7 6 18\r",
+ "7 6 19\r",
+ "7 6 20\r",
+ "7 6 21\r",
+ "7 6 22\r",
+ "7 6 23\r",
+ "7 6 24\r",
+ "7 6 25\r",
+ "7 6 26\r",
+ "7 6 27\r",
+ "7 6 28\r",
+ "7 6 29\r",
+ "7 6 30\r",
+ "7 6 31\r",
+ "7 6 32\r",
+ "7 6 33\r",
+ "7 6 34\r",
+ "7 6 35\r",
+ "7 6 36\r",
+ "7 6 37\r",
+ "7 6 38\r",
+ "7 6 39\r",
+ "7 6 40\r",
+ "7 6 41\r",
+ "7 6 42\r",
+ "7 6 43\r",
+ "7 6 44\r",
+ "7 6 45\r",
+ "7 6 46\r",
+ "7 6 47\r",
+ "7 6 48\r",
+ "7 6 49\r",
+ "7 6 50\r",
+ "7 6 51\r",
+ "7 6 52\r",
+ "7 6 53\r",
+ "7 6 54\r",
+ "7 6 55\r",
+ "7 6 56\r",
+ "7 6 57\r",
+ "7 6 58\r",
+ "7 7 1\r",
+ "7 7 2\r",
+ "7 7 3\r",
+ "7 7 4\r",
+ "7 7 5\r",
+ "7 7 6\r",
+ "7 7 7\r",
+ "7 7 8\r",
+ "7 7 9\r",
+ "7 7 10\r",
+ "7 7 11\r",
+ "7 7 12\r",
+ "7 7 13\r",
+ "7 7 14\r",
+ "7 7 15\r",
+ "7 7 16\r",
+ "7 7 17\r",
+ "7 7 18\r",
+ "7 7 19\r",
+ "7 7 20\r",
+ "7 7 21\r",
+ "7 7 22\r",
+ "7 7 23\r",
+ "7 7 24\r",
+ "7 7 25\r",
+ "7 7 26\r",
+ "7 7 27\r",
+ "7 7 28\r",
+ "7 7 29\r",
+ "7 7 30\r",
+ "7 7 31\r",
+ "7 7 32\r",
+ "7 7 33\r",
+ "7 7 34\r",
+ "7 7 35\r",
+ "7 7 36\r",
+ "7 7 37\r",
+ "7 7 38\r",
+ "7 7 39\r",
+ "7 7 40\r",
+ "7 7 41\r",
+ "7 7 42\r",
+ "7 7 43\r",
+ "7 7 44\r",
+ "7 7 45\r",
+ "7 7 46\r",
+ "7 7 47\r",
+ "7 7 48\r",
+ "7 7 49\r",
+ "7 7 50\r",
+ "7 7 51\r",
+ "7 7 52\r",
+ "7 7 53\r",
+ "7 7 54\r",
+ "7 7 55\r",
+ "7 7 56\r",
+ "7 7 57\r",
+ "7 7 58\r",
+ "7 8 1\r",
+ "7 8 2\r",
+ "7 8 3\r",
+ "7 8 4\r",
+ "7 8 5\r",
+ "7 8 6\r",
+ "7 8 7\r",
+ "7 8 8\r",
+ "7 8 9\r",
+ "7 8 10\r",
+ "7 8 11\r",
+ "7 8 12\r",
+ "7 8 13\r",
+ "7 8 14\r",
+ "7 8 15\r",
+ "7 8 16\r",
+ "7 8 17\r",
+ "7 8 18\r",
+ "7 8 19\r",
+ "7 8 20\r",
+ "7 8 21\r",
+ "7 8 22\r",
+ "7 8 23\r",
+ "7 8 24\r",
+ "7 8 25\r",
+ "7 8 26\r",
+ "7 8 27\r",
+ "7 8 28\r",
+ "7 8 29\r",
+ "7 8 30\r",
+ "7 8 31\r",
+ "7 8 32\r",
+ "7 8 33\r",
+ "7 8 34\r",
+ "7 8 35\r",
+ "7 8 36\r",
+ "7 8 37\r",
+ "7 8 38\r",
+ "7 8 39\r",
+ "7 8 40\r",
+ "7 8 41\r",
+ "7 8 42\r",
+ "7 8 43\r",
+ "7 8 44\r",
+ "7 8 45\r",
+ "7 8 46\r",
+ "7 8 47\r",
+ "7 8 48\r",
+ "7 8 49\r",
+ "7 8 50\r",
+ "7 8 51\r",
+ "7 8 52\r",
+ "7 8 53\r",
+ "7 8 54\r",
+ "7 8 55\r",
+ "7 8 56\r",
+ "7 8 57\r",
+ "7 8 58\r",
+ "7 9 1\r",
+ "7 9 2\r",
+ "7 9 3\r",
+ "7 9 4\r",
+ "7 9 5\r",
+ "7 9 6\r",
+ "7 9 7\r",
+ "7 9 8\r",
+ "7 9 9\r",
+ "7 9 10\r",
+ "7 9 11\r",
+ "7 9 12\r",
+ "7 9 13\r",
+ "7 9 14\r",
+ "7 9 15\r",
+ "7 9 16\r",
+ "7 9 17\r",
+ "7 9 18\r",
+ "7 9 19\r",
+ "7 9 20\r",
+ "7 9 21\r",
+ "7 9 22\r",
+ "7 9 23\r",
+ "7 9 24\r",
+ "7 9 25\r",
+ "7 9 26\r",
+ "7 9 27\r",
+ "7 9 28\r",
+ "7 9 29\r",
+ "7 9 30\r",
+ "7 9 31\r",
+ "7 9 32\r",
+ "7 9 33\r",
+ "7 9 34\r",
+ "7 9 35\r",
+ "7 9 36\r",
+ "7 9 37\r",
+ "7 9 38\r",
+ "7 9 39\r",
+ "7 9 40\r",
+ "7 9 41\r",
+ "7 9 42\r",
+ "7 9 43\r",
+ "7 9 44\r",
+ "7 9 45\r",
+ "7 9 46\r",
+ "7 9 47\r",
+ "7 9 48\r",
+ "7 9 49\r",
+ "7 9 50\r",
+ "7 9 51\r",
+ "7 9 52\r",
+ "7 9 53\r",
+ "7 9 54\r",
+ "7 9 55\r",
+ "7 9 56\r",
+ "7 9 57\r",
+ "7 9 58\r",
+ "7 10 1\r",
+ "7 10 2\r",
+ "7 10 3\r",
+ "7 10 4\r",
+ "7 10 5\r",
+ "7 10 6\r",
+ "7 10 7\r",
+ "7 10 8\r",
+ "7 10 9\r",
+ "7 10 10\r",
+ "7 10 11\r",
+ "7 10 12\r",
+ "7 10 13\r",
+ "7 10 14\r",
+ "7 10 15\r",
+ "7 10 16\r",
+ "7 10 17\r",
+ "7 10 18\r",
+ "7 10 19\r",
+ "7 10 20\r",
+ "7 10 21\r",
+ "7 10 22\r",
+ "7 10 23\r",
+ "7 10 24\r",
+ "7 10 25\r",
+ "7 10 26\r",
+ "7 10 27"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\r",
+ "7 10 28\r",
+ "7 10 29\r",
+ "7 10 30\r",
+ "7 10 31\r",
+ "7 10 32\r",
+ "7 10 33\r",
+ "7 10 34\r",
+ "7 10 35\r",
+ "7 10 36\r",
+ "7 10 37\r",
+ "7 10 38\r",
+ "7 10 39\r",
+ "7 10 40\r",
+ "7 10 41\r",
+ "7 10 42\r",
+ "7 10 43\r",
+ "7 10 44\r",
+ "7 10 45\r",
+ "7 10 46\r",
+ "7 10 47\r",
+ "7 10 48\r",
+ "7 10 49\r",
+ "7 10 50\r",
+ "7 10 51\r",
+ "7 10 52\r",
+ "7 10 53\r",
+ "7 10 54\r",
+ "7 10 55\r",
+ "7 10 56\r",
+ "7 10 57\r",
+ "7 10 58\r",
+ "7 11 1\r",
+ "7 11 2\r",
+ "7 11 3\r",
+ "7 11 4\r",
+ "7 11 5\r",
+ "7 11 6\r",
+ "7 11 7\r",
+ "7 11 8\r",
+ "7 11 9\r",
+ "7 11 10\r",
+ "7 11 11\r",
+ "7 11 12\r",
+ "7 11 13\r",
+ "7 11 14\r",
+ "7 11 15\r",
+ "7 11 16\r",
+ "7 11 17\r",
+ "7 11 18\r",
+ "7 11 19\r",
+ "7 11 20\r",
+ "7 11 21\r",
+ "7 11 22\r",
+ "7 11 23\r",
+ "7 11 24\r",
+ "7 11 25\r",
+ "7 11 26\r",
+ "7 11 27\r",
+ "7 11 28\r",
+ "7 11 29\r",
+ "7 11 30\r",
+ "7 11 31\r",
+ "7 11 32\r",
+ "7 11 33\r",
+ "7 11 34\r",
+ "7 11 35\r",
+ "7 11 36\r",
+ "7 11 37\r",
+ "7 11 38\r",
+ "7 11 39\r",
+ "7 11 40\r",
+ "7 11 41\r",
+ "7 11 42\r",
+ "7 11 43\r",
+ "7 11 44\r",
+ "7 11 45\r",
+ "7 11 46\r",
+ "7 11 47\r",
+ "7 11 48\r",
+ "7 11 49\r",
+ "7 11 50\r",
+ "7 11 51\r",
+ "7 11 52\r",
+ "7 11 53\r",
+ "7 11 54\r",
+ "7 11 55\r",
+ "7 11 56\r",
+ "7 11 57\r",
+ "7 11 58\r",
+ "7 12 1\r",
+ "7 12 2\r",
+ "7 12 3\r",
+ "7 12 4\r",
+ "7 12 5\r",
+ "7 12 6\r",
+ "7 12 7\r",
+ "7 12 8\r",
+ "7 12 9\r",
+ "7 12 10\r",
+ "7 12 11\r",
+ "7 12 12\r",
+ "7 12 13\r",
+ "7 12 14\r",
+ "7 12 15\r",
+ "7 12 16\r",
+ "7 12 17\r",
+ "7 12 18\r",
+ "7 12 19\r",
+ "7 12 20\r",
+ "7 12 21\r",
+ "7 12 22\r",
+ "7 12 23\r",
+ "7 12 24\r",
+ "7 12 25\r",
+ "7 12 26\r",
+ "7 12 27\r",
+ "7 12 28\r",
+ "7 12 29\r",
+ "7 12 30\r",
+ "7 12 31\r",
+ "7 12 32\r",
+ "7 12 33\r",
+ "7 12 34\r",
+ "7 12 35\r",
+ "7 12 36\r",
+ "7 12 37\r",
+ "7 12 38\r",
+ "7 12 39\r",
+ "7 12 40\r",
+ "7 12 41\r",
+ "7 12 42\r",
+ "7 12 43\r",
+ "7 12 44\r",
+ "7 12 45\r",
+ "7 12 46\r",
+ "7 12 47\r",
+ "7 12 48\r",
+ "7 12 49\r",
+ "7 12 50\r",
+ "7 12 51\r",
+ "7 12 52\r",
+ "7 12 53\r",
+ "7 12 54\r",
+ "7 12 55\r",
+ "7 12 56\r",
+ "7 12 57\r",
+ "7 12 58\r",
+ "7 13 1\r",
+ "7 13 2\r",
+ "7 13 3\r",
+ "7 13 4\r",
+ "7 13 5\r",
+ "7 13 6\r",
+ "7 13 7\r",
+ "7 13 8\r",
+ "7 13 9\r",
+ "7 13 10\r",
+ "7 13 11\r",
+ "7 13 12\r",
+ "7 13 13\r",
+ "7 13 14\r",
+ "7 13 15\r",
+ "7 13 16\r",
+ "7 13 17\r",
+ "7 13 18\r",
+ "7 13 19\r",
+ "7 13 20\r",
+ "7 13 21\r",
+ "7 13 22\r",
+ "7 13 23\r",
+ "7 13 24\r",
+ "7 13 25\r",
+ "7 13 26\r",
+ "7 13 27\r",
+ "7 13 28\r",
+ "7 13 29\r",
+ "7 13 30\r",
+ "7 13 31\r",
+ "7 13 32\r",
+ "7 13 33\r",
+ "7 13 34\r",
+ "7 13 35\r",
+ "7 13 36\r",
+ "7 13 37\r",
+ "7 13 38\r",
+ "7 13 39\r",
+ "7 13 40\r",
+ "7 13 41\r",
+ "7 13 42\r",
+ "7 13 43\r",
+ "7 13 44\r",
+ "7 13 45\r",
+ "7 13 46\r",
+ "7 13 47\r",
+ "7 13 48\r",
+ "7 13 49\r",
+ "7 13 50\r",
+ "7 13 51\r",
+ "7 13 52\r",
+ "7 13 53\r",
+ "7 13 54\r",
+ "7 13 55\r",
+ "7 13 56\r",
+ "7 13 57\r",
+ "7 13 58\r",
+ "7 14 1\r",
+ "7 14 2\r",
+ "7 14 3\r",
+ "7 14 4\r",
+ "7 14 5\r",
+ "7 14 6\r",
+ "7 14 7\r",
+ "7 14 8\r",
+ "7 14 9\r",
+ "7 14 10\r",
+ "7 14 11\r",
+ "7 14 12\r",
+ "7 14 13\r",
+ "7 14 14\r",
+ "7 14 15\r",
+ "7 14 16\r",
+ "7 14 17\r",
+ "7 14 18\r",
+ "7 14 19\r",
+ "7 14 20\r",
+ "7 14 21\r",
+ "7 14 22\r",
+ "7 14 23\r",
+ "7 14 24\r",
+ "7 14 25\r",
+ "7 14 26\r",
+ "7 14 27\r",
+ "7 14 28\r",
+ "7 14 29\r",
+ "7 14 30\r",
+ "7 14 31\r",
+ "7 14 32\r",
+ "7 14 33\r",
+ "7 14 34\r",
+ "7 14 35\r",
+ "7 14 36\r",
+ "7 14 37\r",
+ "7 14 38\r",
+ "7 14 39\r",
+ "7 14 40\r",
+ "7 14 41\r",
+ "7 14 42\r",
+ "7 14 43\r",
+ "7 14 44\r",
+ "7 14 45\r",
+ "7 14 46\r",
+ "7 14 47\r",
+ "7 14 48\r",
+ "7 14 49\r",
+ "7 14 50\r",
+ "7 14 51\r",
+ "7 14 52\r",
+ "7 14 53\r",
+ "7 14 54\r",
+ "7 14 55\r",
+ "7 14 56\r",
+ "7 14 57\r",
+ "7 14 58\r",
+ "7 15 1\r",
+ "7 15 2\r",
+ "7 15 3\r",
+ "7 15 4\r",
+ "7 15 5\r",
+ "7 15 6\r",
+ "7 15 7\r",
+ "7 15 8\r",
+ "7 15 9\r",
+ "7 15 10\r",
+ "7 15 11\r",
+ "7 15 12\r",
+ "7 15 13\r",
+ "7 15 14\r",
+ "7 15 15\r",
+ "7 15 16\r",
+ "7 15 17\r",
+ "7 15 18\r",
+ "7 15 19\r",
+ "7 15 20\r",
+ "7 15 21\r",
+ "7 15 22\r",
+ "7 15 23\r",
+ "7 15 24\r",
+ "7 15 25\r",
+ "7 15 26\r",
+ "7 15 27\r",
+ "7 15 28\r",
+ "7 15 29\r",
+ "7 15 30\r",
+ "7 15 31\r",
+ "7 15 32\r",
+ "7 15 33\r",
+ "7 15 34\r",
+ "7 15 35\r",
+ "7 15 36\r",
+ "7 15 37\r",
+ "7 15 38\r",
+ "7 15 39\r",
+ "7 15 40\r",
+ "7 15 41\r",
+ "7 15 42\r",
+ "7 15 43\r",
+ "7 15 44\r",
+ "7 15 45\r",
+ "7 15 46\r",
+ "7 15 47\r",
+ "7 15 48\r",
+ "7 15 49\r",
+ "7 15 50\r",
+ "7 15 51\r",
+ "7 15 52\r",
+ "7 15 53\r",
+ "7 15 54\r",
+ "7 15 55\r",
+ "7 15 56\r",
+ "7 15 57\r",
+ "7 15 58\r",
+ "7 16 1\r",
+ "7 16 2\r",
+ "7 16 3\r",
+ "7 16 4\r",
+ "7 16 5\r",
+ "7 16 6\r",
+ "7 16 7\r",
+ "7 16 8\r",
+ "7 16 9\r",
+ "7 16 10\r",
+ "7 16 11\r",
+ "7 16 12\r",
+ "7 16 13\r",
+ "7 16 14\r",
+ "7 16 15\r",
+ "7 16 16\r",
+ "7 16 17\r",
+ "7 16 18\r",
+ "7 16 19\r",
+ "7 16 20\r",
+ "7 16 21\r",
+ "7 16 22\r",
+ "7 16 23\r",
+ "7 16 24\r",
+ "7 16 25\r",
+ "7 16 26\r",
+ "7 16 27\r",
+ "7 16 28\r",
+ "7 16 29\r",
+ "7 16 30\r",
+ "7 16 31\r",
+ "7 16 32\r",
+ "7 16 33\r",
+ "7 16 34\r",
+ "7 16 35\r",
+ "7 16 36\r",
+ "7 16 37\r",
+ "7 16 38\r",
+ "7 16 39\r",
+ "7 16 40\r",
+ "7 16 41\r",
+ "7 16 42\r",
+ "7 16 43\r",
+ "7 16 44\r",
+ "7 16 45\r",
+ "7 16 46\r",
+ "7 16 47\r",
+ "7 16 48\r",
+ "7 16 49\r",
+ "7 16 50\r",
+ "7 16 51\r",
+ "7 16 52\r",
+ "7 16 53\r",
+ "7 16 54\r",
+ "7 16 55\r",
+ "7 16 56\r",
+ "7 16 57\r",
+ "7 16 58\r",
+ "7 17 1\r",
+ "7 17 2\r",
+ "7 17 3\r",
+ "7 17 4\r",
+ "7 17 5\r",
+ "7 17 6\r",
+ "7 17 7\r",
+ "7 17 8\r",
+ "7 17 9\r",
+ "7 17 10\r",
+ "7 17 11\r",
+ "7 17 12\r",
+ "7 17 13\r",
+ "7 17 14\r",
+ "7 17 15\r",
+ "7 17 16\r",
+ "7 17 17\r",
+ "7 17 18\r",
+ "7 17 19\r",
+ "7 17 20\r",
+ "7 17 21\r",
+ "7 17 22\r",
+ "7 17 23\r",
+ "7 17 24\r",
+ "7 17 25\r",
+ "7 17 26\r",
+ "7 17 27\r",
+ "7 17 28\r",
+ "7 17 29\r",
+ "7 17 30\r",
+ "7 17 31\r",
+ "7 17 32\r",
+ "7 17 33\r",
+ "7 17 34\r",
+ "7 17 35\r",
+ "7 17 36\r",
+ "7 17 37\r",
+ "7 17 38\r",
+ "7 17 39\r",
+ "7 17 40\r",
+ "7 17 41\r",
+ "7 17 42\r",
+ "7 17 43\r",
+ "7 17 44\r",
+ "7 17 45\r",
+ "7 17 46\r",
+ "7 17 47\r",
+ "7 17 48\r",
+ "7 17 49\r",
+ "7 17 50\r",
+ "7 17 51\r",
+ "7 17 52\r",
+ "7 17 53\r",
+ "7 17 54\r",
+ "7 17 55\r",
+ "7 17 56\r",
+ "7 17 57\r",
+ "7 17 58\r",
+ "7 18 1\r",
+ "7 18 2\r",
+ "7 18 3\r",
+ "7 18 4\r",
+ "7 18 5\r",
+ "7 18 6\r",
+ "7 18 7\r",
+ "7 18 8\r",
+ "7 18 9\r",
+ "7 18 10\r",
+ "7 18 11\r",
+ "7 18 12\r",
+ "7 18 13\r",
+ "7 18 14\r",
+ "7 18 15\r",
+ "7 18 16\r",
+ "7 18 17\r",
+ "7 18 18\r",
+ "7 18 19\r",
+ "7 18 20\r",
+ "7 18 21\r",
+ "7 18 22\r",
+ "7 18 23\r",
+ "7 18 24\r",
+ "7 18 25\r",
+ "7 18 26\r",
+ "7 18 27\r",
+ "7 18 28\r",
+ "7 18 29\r",
+ "7 18 30\r",
+ "7 18 31\r",
+ "7 18 32\r",
+ "7 18 33\r",
+ "7 18 34\r",
+ "7 18 35\r",
+ "7 18 36\r",
+ "7 18 37\r",
+ "7 18 38\r",
+ "7 18 39\r",
+ "7 18 40\r",
+ "7 18 41\r",
+ "7 18 42\r",
+ "7 18 43\r",
+ "7 18 44\r",
+ "7 18 45\r",
+ "7 18 46\r",
+ "7 18 47\r",
+ "7 18 48\r",
+ "7 18 49\r",
+ "7 18 50\r",
+ "7 18 51\r",
+ "7 18 52\r",
+ "7 18 53\r",
+ "7 18 54\r",
+ "7 18 55\r",
+ "7 18 56\r",
+ "7 18 57\r",
+ "7 18 58\r",
+ "7 19 1\r",
+ "7 19 2\r",
+ "7 19 3\r",
+ "7 19 4\r",
+ "7 19 5\r",
+ "7 19 6\r",
+ "7 19 7\r",
+ "7 19 8\r",
+ "7 19 9\r",
+ "7 19 10\r",
+ "7 19 11\r",
+ "7 19 12\r",
+ "7 19 13\r",
+ "7 19 14\r",
+ "7 19 15\r",
+ "7 19 16\r",
+ "7 19 17\r",
+ "7 19 18\r",
+ "7 19 19\r",
+ "7 19 20\r",
+ "7 19 21\r",
+ "7 19 22\r",
+ "7 19 23\r",
+ "7 19 24\r",
+ "7 19 25\r",
+ "7 19 26\r",
+ "7 19 27\r",
+ "7 19 28\r",
+ "7 19 29\r",
+ "7 19 30\r",
+ "7 19 31\r",
+ "7 19 32\r",
+ "7 19 33\r",
+ "7 19 34\r",
+ "7 19 35\r",
+ "7 19 36\r",
+ "7 19 37\r",
+ "7 19 38\r",
+ "7 19 39\r",
+ "7 19 40\r",
+ "7 19 41\r",
+ "7 19 42\r",
+ "7 19 43\r",
+ "7 19 44\r",
+ "7 19 45\r",
+ "7 19 46\r",
+ "7 19 47\r",
+ "7 19 48\r",
+ "7 19 49\r",
+ "7 19 50\r",
+ "7 19 51\r",
+ "7 19 52\r",
+ "7 19 53\r",
+ "7 19 54\r",
+ "7 19 55\r",
+ "7 19 56\r",
+ "7 19 57\r",
+ "7 19 58\r",
+ "7 20 1\r",
+ "7 20 2\r",
+ "7 20 3\r",
+ "7 20 4\r",
+ "7 20 5\r",
+ "7 20 6\r",
+ "7 20 7\r",
+ "7 20 8\r",
+ "7 20 9\r",
+ "7 20 10\r",
+ "7 20 11\r",
+ "7 20 12\r",
+ "7 20 13\r",
+ "7 20 14\r",
+ "7 20 15\r",
+ "7 20 16\r",
+ "7 20 17\r",
+ "7 20 18\r",
+ "7 20 19\r",
+ "7 20 20\r",
+ "7 20 21\r",
+ "7 20 22\r",
+ "7 20 23\r",
+ "7 20 24\r",
+ "7 20 25\r",
+ "7 20 26\r",
+ "7 20 27\r",
+ "7 20 28\r",
+ "7 20 29\r",
+ "7 20 30\r",
+ "7 20 31\r",
+ "7 20 32\r",
+ "7 20 33\r",
+ "7 20 34\r",
+ "7 20 35\r",
+ "7 20 36\r",
+ "7 20 37\r",
+ "7 20 38\r",
+ "7 20 39\r",
+ "7 20 40\r",
+ "7 20 41\r",
+ "7 20 42\r",
+ "7 20 43\r",
+ "7 20 44\r",
+ "7 20 45\r",
+ "7 20 46\r",
+ "7 20 47\r",
+ "7 20 48\r",
+ "7 20 49\r",
+ "7 20 50\r",
+ "7 20 51\r",
+ "7 20 52\r",
+ "7 20 53\r",
+ "7 20 54\r",
+ "7 20 55\r",
+ "7 20 56\r",
+ "7 20 57\r",
+ "7 20 58\r",
+ "7 21 1\r",
+ "7 21 2\r",
+ "7 21 3\r",
+ "7 21 4\r",
+ "7 21 5\r",
+ "7 21 6\r",
+ "7 21 7\r",
+ "7 21 8\r",
+ "7 21 9\r",
+ "7 21 10\r",
+ "7 21 11\r",
+ "7 21 12\r",
+ "7 21 13\r",
+ "7 21 14\r",
+ "7 21 15\r",
+ "7 21 16\r",
+ "7 21 17\r",
+ "7 21 18\r",
+ "7 21 19\r",
+ "7 21 20\r",
+ "7 21 21\r",
+ "7 21 22\r",
+ "7 21 23\r",
+ "7 21 24\r",
+ "7 21 25\r",
+ "7 21 26\r",
+ "7 21 27\r",
+ "7 21 28\r",
+ "7 21 29\r",
+ "7 21 30\r",
+ "7 21 31\r",
+ "7 21 32\r",
+ "7 21 33\r",
+ "7 21 34\r",
+ "7 21 35\r",
+ "7 21 36\r",
+ "7 21 37\r",
+ "7 21 38\r",
+ "7 21 39\r",
+ "7 21 40\r",
+ "7 21 41\r",
+ "7 21 42\r",
+ "7 21 43\r",
+ "7 21 44\r",
+ "7 21 45\r",
+ "7 21 46\r",
+ "7 21 47\r",
+ "7 21 48\r",
+ "7 21 49\r",
+ "7 21 50\r",
+ "7 21 51\r",
+ "7 21 52\r",
+ "7 21 53\r",
+ "7 21 54\r",
+ "7 21 55\r",
+ "7 21 56\r",
+ "7 21 57\r",
+ "7 21 58\r",
+ "7 22 1\r",
+ "7 22 2\r",
+ "7 22 3\r",
+ "7 22 4\r",
+ "7 22 5\r",
+ "7 22 6\r",
+ "7 22 7\r",
+ "7 22 8\r",
+ "7 22 9\r",
+ "7 22 10\r",
+ "7 22 11\r",
+ "7 22 12\r",
+ "7 22 13\r",
+ "7 22 14\r",
+ "7 22 15\r",
+ "7 22 16\r",
+ "7 22 17\r",
+ "7 22 18\r",
+ "7 22 19\r",
+ "7 22 20\r",
+ "7 22 21\r",
+ "7 22 22\r",
+ "7 22 23\r",
+ "7 22 24\r",
+ "7 22 25\r",
+ "7 22 26\r",
+ "7 22 27\r",
+ "7 22 28\r",
+ "7 22 29\r",
+ "7 22 30\r",
+ "7 22 31\r",
+ "7 22 32\r",
+ "7 22 33\r",
+ "7 22 34\r",
+ "7 22 35\r",
+ "7 22 36\r",
+ "7 22 37\r",
+ "7 22 38\r",
+ "7 22 39\r",
+ "7 22 40\r",
+ "7 22 41\r",
+ "7 22 42\r",
+ "7 22 43\r",
+ "7 22 44\r",
+ "7 22 45\r",
+ "7 22 46\r",
+ "7 22 47\r",
+ "7 22 48\r",
+ "7 22 49\r",
+ "7 22 50\r",
+ "7 22 51\r",
+ "7 22 52\r",
+ "7 22 53\r",
+ "7 22 54\r",
+ "7 22 55\r",
+ "7 22 56\r",
+ "7 22 57\r",
+ "7 22 58\r",
+ "7 23 1\r",
+ "7 23 2\r",
+ "7 23 3\r",
+ "7 23 4\r",
+ "7 23 5\r",
+ "7 23 6\r",
+ "7 23 7\r",
+ "7 23 8\r",
+ "7 23 9\r",
+ "7 23 10\r",
+ "7 23 11\r",
+ "7 23 12\r",
+ "7 23 13\r",
+ "7 23 14\r",
+ "7 23 15\r",
+ "7 23 16\r",
+ "7 23 17\r",
+ "7 23 18\r",
+ "7 23 19\r",
+ "7 23 20\r",
+ "7 23 21\r",
+ "7 23 22\r",
+ "7 23 23\r",
+ "7 23 24\r",
+ "7 23 25\r",
+ "7 23 26\r",
+ "7 23 27\r",
+ "7 23 28\r",
+ "7 23 29\r",
+ "7 23 30\r",
+ "7 23 31\r",
+ "7 23 32\r",
+ "7 23 33\r",
+ "7 23 34\r",
+ "7 23 35\r",
+ "7 23 36\r",
+ "7 23 37\r",
+ "7 23 38\r",
+ "7 23 39\r",
+ "7 23 40\r",
+ "7 23 41\r",
+ "7 23 42\r",
+ "7 23 43\r",
+ "7 23 44\r",
+ "7 23 45\r",
+ "7 23 46\r",
+ "7 23 47\r",
+ "7 23 48\r",
+ "7 23 49\r",
+ "7 23 50\r",
+ "7 23 51\r",
+ "7 23 52\r",
+ "7 23 53\r",
+ "7 23 54\r",
+ "7 23 55\r",
+ "7 23 56\r",
+ "7 23 57\r",
+ "7 23 58\r",
+ "7 24 1\r",
+ "7 24 2\r",
+ "7 24 3\r",
+ "7 24 4\r",
+ "7 24 5\r",
+ "7 24 6\r",
+ "7 24 7\r",
+ "7 24 8\r",
+ "7 24 9\r",
+ "7 24 10\r",
+ "7 24 11\r",
+ "7 24 12\r",
+ "7 24 13\r",
+ "7 24 14\r",
+ "7 24 15\r",
+ "7 24 16\r",
+ "7 24 17\r",
+ "7 24 18\r",
+ "7 24 19\r",
+ "7 24 20\r",
+ "7 24 21\r",
+ "7 24 22\r",
+ "7 24 23\r",
+ "7 24 24\r",
+ "7 24 25\r",
+ "7 24 26\r",
+ "7 24 27\r",
+ "7 24 28\r",
+ "7 24 29\r",
+ "7 24 30\r",
+ "7 24 31\r",
+ "7 24 32\r",
+ "7 24 33\r",
+ "7 24 34\r",
+ "7 24 35\r",
+ "7 24 36\r",
+ "7 24 37\r",
+ "7 24 38\r",
+ "7 24 39\r",
+ "7 24 40\r",
+ "7 24 41\r",
+ "7 24 42\r",
+ "7 24 43\r",
+ "7 24 44\r",
+ "7 24 45\r",
+ "7 24 46\r",
+ "7 24 47\r",
+ "7 24 48\r",
+ "7 24 49\r",
+ "7 24 50\r",
+ "7 24 51\r",
+ "7 24 52\r",
+ "7 24 53\r",
+ "7 24 54\r",
+ "7 24 55\r",
+ "7 24 56\r",
+ "7 24 57\r",
+ "7 24 58\r",
+ "7 25 1\r",
+ "7 25 2\r",
+ "7 25 3\r",
+ "7 25 4\r",
+ "7 25 5\r",
+ "7 25 6\r",
+ "7 25 7\r",
+ "7 25 8\r",
+ "7 25 9\r",
+ "7 25 10\r",
+ "7 25 11\r",
+ "7 25 12\r",
+ "7 25 13\r",
+ "7 25 14\r",
+ "7 25 15\r",
+ "7 25 16\r",
+ "7 25 17\r",
+ "7 25 18\r",
+ "7 25 19\r",
+ "7 25 20\r",
+ "7 25 21\r",
+ "7 25 22\r",
+ "7 25 23\r",
+ "7 25 24\r",
+ "7 25 25\r",
+ "7 25 26\r",
+ "7 25 27\r",
+ "7 25 28\r",
+ "7 25 29\r",
+ "7 25 30\r",
+ "7 25 31\r",
+ "7 25 32\r",
+ "7 25 33\r",
+ "7 25 34\r",
+ "7 25 35\r",
+ "7 25 36\r",
+ "7 25 37\r",
+ "7 25 38\r",
+ "7 25 39\r",
+ "7 25 40\r",
+ "7 25 41\r",
+ "7 25 42\r",
+ "7 25 43\r",
+ "7 25 44\r",
+ "7 25 45\r",
+ "7 25 46\r",
+ "7 25 47\r",
+ "7 25 48\r",
+ "7 25 49\r",
+ "7 25 50\r",
+ "7 25 51\r",
+ "7 25 52\r",
+ "7 25 53\r",
+ "7 25 54\r",
+ "7 25 55\r",
+ "7 25 56\r",
+ "7 25 57\r",
+ "7 25 58\r",
+ "7 26 1\r",
+ "7 26 2\r",
+ "7 26 3\r",
+ "7 26 4\r",
+ "7 26 5\r",
+ "7 26 6\r",
+ "7 26 7\r",
+ "7 26 8\r",
+ "7 26 9\r",
+ "7 26 10\r",
+ "7 26 11\r",
+ "7 26 12\r",
+ "7 26 13\r",
+ "7 26 14\r",
+ "7 26 15\r",
+ "7 26 16\r",
+ "7 26 17\r",
+ "7 26 18\r",
+ "7 26 19\r",
+ "7 26 20\r",
+ "7 26 21\r",
+ "7 26 22\r",
+ "7 26 23\r",
+ "7 26 24\r",
+ "7 26 25\r",
+ "7 26 26\r",
+ "7 26 27\r",
+ "7 26 28\r",
+ "7 26 29\r",
+ "7 26 30\r",
+ "7 26 31\r",
+ "7 26 32\r",
+ "7 26 33\r",
+ "7 26 34\r",
+ "7 26 35\r",
+ "7 26 36\r",
+ "7 26 37\r",
+ "7 26 38\r",
+ "7 26 39\r",
+ "7 26 40\r",
+ "7 26 41\r",
+ "7 26 42\r",
+ "7 26 43\r",
+ "7 26 44\r",
+ "7 26 45\r",
+ "7 26 46\r",
+ "7 26 47\r",
+ "7 26 48\r",
+ "7 26 49\r",
+ "7 26 50\r",
+ "7 26 51\r",
+ "7 26 52\r",
+ "7 26 53\r",
+ "7 26 54\r",
+ "7 26 55\r",
+ "7 26 56\r",
+ "7 26 57\r",
+ "7 26 58\r",
+ "7 27 1\r",
+ "7 27 2\r",
+ "7 27 3\r",
+ "7 27 4\r",
+ "7 27 5\r",
+ "7 27 6\r",
+ "7 27 7\r",
+ "7 27 8\r",
+ "7 27 9\r",
+ "7 27 10\r",
+ "7 27 11\r",
+ "7 27 12\r",
+ "7 27 13\r",
+ "7 27 14\r",
+ "7 27 15\r",
+ "7 27 16\r",
+ "7 27 17\r",
+ "7 27 18\r",
+ "7 27 19\r",
+ "7 27 20\r",
+ "7 27 21\r",
+ "7 27 22\r",
+ "7 27 23\r",
+ "7 27 24\r",
+ "7 27 25\r",
+ "7 27 26\r",
+ "7 27 27\r",
+ "7 27 28\r",
+ "7 27 29\r",
+ "7 27 30\r",
+ "7 27 31\r",
+ "7 27 32\r",
+ "7 27 33\r",
+ "7 27 34\r",
+ "7 27 35\r",
+ "7 27 36\r",
+ "7 27 37\r",
+ "7 27 38\r",
+ "7 27 39\r",
+ "7 27 40\r",
+ "7 27 41\r",
+ "7 27 42\r",
+ "7 27 43\r",
+ "7 27 44\r",
+ "7 27 45\r",
+ "7 27 46\r",
+ "7 27 47\r",
+ "7 27 48\r",
+ "7 27 49\r",
+ "7 27 50\r",
+ "7 27 51\r",
+ "7 27 52\r",
+ "7 27 53\r",
+ "7 27 54\r",
+ "7 27 55\r",
+ "7 27 56\r",
+ "7 27 57\r",
+ "7 27 58\r",
+ "7 28 1\r",
+ "7 28 2\r",
+ "7 28 3\r",
+ "7 28 4\r",
+ "7 28 5\r",
+ "7 28 6\r",
+ "7 28 7\r",
+ "7 28 8\r",
+ "7 28 9\r",
+ "7 28 10\r",
+ "7 28 11\r",
+ "7 28 12\r",
+ "7 28 13\r",
+ "7 28 14\r",
+ "7 28 15\r",
+ "7 28 16\r",
+ "7 28 17\r",
+ "7 28 18\r",
+ "7 28 19\r",
+ "7 28 20\r",
+ "7 28 21\r",
+ "7 28 22\r",
+ "7 28 23\r",
+ "7 28 24\r",
+ "7 28 25\r",
+ "7 28 26\r",
+ "7 28 27\r",
+ "7 28 28\r",
+ "7 28 29\r",
+ "7 28 30\r",
+ "7 28 31\r",
+ "7 28 32\r",
+ "7 28 33\r",
+ "7 28 34\r",
+ "7 28 35\r",
+ "7 28 36\r",
+ "7 28 37\r",
+ "7 28 38\r",
+ "7 28 39\r",
+ "7 28 40\r",
+ "7 28 41\r",
+ "7 28 42\r",
+ "7 28 43\r",
+ "7 28 44\r",
+ "7 28 45\r",
+ "7 28 46\r",
+ "7 28 47\r",
+ "7 28 48\r",
+ "7 28 49\r",
+ "7 28 50\r",
+ "7 28 51\r",
+ "7 28 52\r",
+ "7 28 53\r",
+ "7 28 54\r",
+ "7 28 55\r",
+ "7 28 56\r",
+ "7 28 57\r",
+ "7 28 58\r",
+ "7 29 1\r",
+ "7 29 2\r",
+ "7 29 3\r",
+ "7 29 4\r",
+ "7 29 5\r",
+ "7 29 6\r",
+ "7 29 7\r",
+ "7 29 8\r",
+ "7 29 9\r",
+ "7 29 10\r",
+ "7 29 11\r",
+ "7 29 12\r",
+ "7 29 13\r",
+ "7 29 14\r",
+ "7 29 15\r",
+ "7 29 16\r",
+ "7 29 17\r",
+ "7 29 18\r",
+ "7 29 19\r",
+ "7 29 20\r",
+ "7 29 21\r",
+ "7 29 22\r",
+ "7 29 23\r",
+ "7 29 24\r",
+ "7 29 25\r",
+ "7 29 26\r",
+ "7 29 27\r",
+ "7 29 28\r",
+ "7 29 29\r",
+ "7 29 30\r",
+ "7 29 31\r",
+ "7 29 32\r",
+ "7 29 33\r",
+ "7 29 34\r",
+ "7 29 35\r",
+ "7 29 36\r",
+ "7 29 37\r",
+ "7 29 38\r",
+ "7 29 39\r",
+ "7 29 40\r",
+ "7 29 41\r",
+ "7 29 42\r",
+ "7 29 43\r",
+ "7 29 44\r",
+ "7 29 45\r",
+ "7 29 46\r",
+ "7 29 47\r",
+ "7 29 48\r",
+ "7 29 49\r",
+ "7 29 50\r",
+ "7 29 51\r",
+ "7 29 52\r",
+ "7 29 53\r",
+ "7 29 54\r",
+ "7 29 55\r",
+ "7 29 56\r",
+ "7 29 57\r",
+ "7 29 58\r",
+ "7 30 1\r",
+ "7 30 2\r",
+ "7 30 3\r",
+ "7 30 4\r",
+ "7 30 5\r",
+ "7 30 6\r",
+ "7 30 7\r",
+ "7 30 8\r",
+ "7 30 9\r",
+ "7 30 10\r",
+ "7 30 11\r",
+ "7 30 12\r",
+ "7 30 13\r",
+ "7 30 14\r",
+ "7 30 15\r",
+ "7 30 16\r",
+ "7 30 17\r",
+ "7 30 18\r",
+ "7 30 19\r",
+ "7 30 20\r",
+ "7 30 21\r",
+ "7 30 22\r",
+ "7 30 23\r",
+ "7 30 24\r",
+ "7 30 25\r",
+ "7 30 26\r",
+ "7 30 27\r",
+ "7 30 28\r",
+ "7 30 29\r",
+ "7 30 30\r",
+ "7 30 31\r",
+ "7 30 32\r",
+ "7 30 33\r",
+ "7 30 34\r",
+ "7 30 35\r",
+ "7 30 36\r",
+ "7 30 37\r",
+ "7 30 38\r",
+ "7 30 39\r",
+ "7 30 40\r",
+ "7 30 41\r",
+ "7 30 42\r",
+ "7 30 43\r",
+ "7 30 44\r",
+ "7 30 45\r",
+ "7 30 46\r",
+ "7 30 47\r",
+ "7 30 48\r",
+ "7 30 49\r",
+ "7 30 50\r",
+ "7 30 51\r",
+ "7 30 52\r",
+ "7 30 53\r",
+ "7 30 54\r",
+ "7 30 55\r",
+ "7 30 56\r",
+ "7 30 57\r",
+ "7 30 58\r",
+ "7 31 1\r",
+ "7 31 2\r",
+ "7 31 3\r",
+ "7 31 4\r",
+ "7 31 5\r",
+ "7 31 6\r",
+ "7 31 7\r",
+ "7 31 8\r",
+ "7 31 9\r",
+ "7 31 10\r",
+ "7 31 11\r",
+ "7 31 12\r",
+ "7 31 13\r",
+ "7 31 14\r",
+ "7 31 15\r",
+ "7 31 16\r",
+ "7 31 17\r",
+ "7 31 18\r",
+ "7 31 19\r",
+ "7 31 20\r",
+ "7 31 21\r",
+ "7 31 22\r",
+ "7 31 23\r",
+ "7 31 24\r",
+ "7 31 25\r",
+ "7 31 26\r",
+ "7 31 27\r",
+ "7 31 28\r",
+ "7 31 29\r",
+ "7 31 30\r",
+ "7 31 31\r",
+ "7 31 32\r",
+ "7 31 33\r",
+ "7 31 34\r",
+ "7 31 35\r",
+ "7 31 36\r",
+ "7 31 37\r",
+ "7 31 38\r",
+ "7 31 39\r",
+ "7 31 40\r",
+ "7 31 41\r",
+ "7 31 42\r",
+ "7 31 43\r",
+ "7 31 44\r",
+ "7 31 45\r",
+ "7 31 46\r",
+ "7 31 47\r",
+ "7 31 48\r",
+ "7 31 49\r",
+ "7 31 50\r",
+ "7 31 51\r",
+ "7 31 52\r",
+ "7 31 53\r",
+ "7 31 54\r",
+ "7 31 55\r",
+ "7 31 56\r",
+ "7 31 57\r",
+ "7 31 58\r",
+ "7 32 1\r",
+ "7 32 2\r",
+ "7 32 3\r",
+ "7 32 4\r",
+ "7 32 5\r",
+ "7 32 6\r",
+ "7 32 7\r",
+ "7 32 8\r",
+ "7 32 9\r",
+ "7 32 10\r",
+ "7 32 11\r",
+ "7 32 12\r",
+ "7 32 13\r",
+ "7 32 14\r",
+ "7 32 15\r",
+ "7 32 16\r",
+ "7 32 17\r",
+ "7 32 18\r",
+ "7 32 19\r",
+ "7 32 20\r",
+ "7 32 21\r",
+ "7 32 22\r",
+ "7 32 23\r",
+ "7 32 24\r",
+ "7 32 25\r",
+ "7 32 26\r",
+ "7 32 27\r",
+ "7 32 28\r",
+ "7 32 29\r",
+ "7 32 30\r",
+ "7 32 31\r",
+ "7 32 32\r",
+ "7 32 33\r",
+ "7 32 34\r",
+ "7 32 35\r",
+ "7 32 36\r",
+ "7 32 37\r",
+ "7 32 38\r",
+ "7 32 39\r",
+ "7 32 40\r",
+ "7 32 41\r",
+ "7 32 42\r",
+ "7 32 43\r",
+ "7 32 44\r",
+ "7 32 45\r",
+ "7 32 46\r",
+ "7 32 47\r",
+ "7 32 48\r",
+ "7 32 49\r",
+ "7 32 50\r",
+ "7 32 51\r",
+ "7 32 52\r",
+ "7 32 53\r",
+ "7 32 54\r",
+ "7 32 55\r",
+ "7 32 56\r",
+ "7 32 57\r",
+ "7 32 58\r",
+ "7 33 1\r",
+ "7 33 2\r",
+ "7 33 3\r",
+ "7 33 4\r",
+ "7 33 5\r",
+ "7 33 6\r",
+ "7 33 7\r",
+ "7 33 8\r",
+ "7 33 9\r",
+ "7 33 10\r",
+ "7 33 11\r",
+ "7 33 12\r",
+ "7 33 13\r",
+ "7 33 14\r",
+ "7 33 15\r",
+ "7 33 16\r",
+ "7 33 17\r",
+ "7 33 18\r",
+ "7 33 19\r",
+ "7 33 20\r",
+ "7 33 21\r",
+ "7 33 22\r",
+ "7 33 23\r",
+ "7 33 24\r",
+ "7 33 25\r",
+ "7 33 26\r",
+ "7 33 27\r",
+ "7 33 28\r",
+ "7 33 29\r",
+ "7 33 30\r",
+ "7 33 31\r",
+ "7 33 32\r",
+ "7 33 33\r",
+ "7 33 34\r",
+ "7 33 35\r",
+ "7 33 36\r",
+ "7 33 37\r",
+ "7 33 38\r",
+ "7 33 39\r",
+ "7 33 40\r",
+ "7 33 41\r",
+ "7 33 42\r",
+ "7 33 43\r",
+ "7 33 44\r",
+ "7 33 45\r",
+ "7 33 46\r",
+ "7 33 47\r",
+ "7 33 48\r",
+ "7 33 49\r",
+ "7 33 50\r",
+ "7 33 51\r",
+ "7 33 52\r",
+ "7 33 53\r",
+ "7 33 54\r",
+ "7 33 55\r",
+ "7 33 56\r",
+ "7 33 57\r",
+ "7 33 58\r",
+ "7 34 1\r",
+ "7 34 2\r",
+ "7 34 3\r",
+ "7 34 4\r",
+ "7 34 5\r",
+ "7 34 6\r",
+ "7 34 7\r",
+ "7 34 8\r",
+ "7 34 9\r",
+ "7 34 10\r",
+ "7 34 11\r",
+ "7 34 12\r",
+ "7 34 13\r",
+ "7 34 14\r",
+ "7 34 15\r",
+ "7 34 16\r",
+ "7 34 17\r",
+ "7 34 18\r",
+ "7 34 19\r",
+ "7 34 20\r",
+ "7 34 21\r",
+ "7 34 22\r",
+ "7 34 23\r",
+ "7 34 24\r",
+ "7 34 25\r",
+ "7 34 26\r",
+ "7 34 27\r",
+ "7 34 28\r",
+ "7 34 29\r",
+ "7 34 30\r",
+ "7 34 31\r",
+ "7 34 32\r",
+ "7 34 33\r",
+ "7 34 34\r",
+ "7 34 35\r",
+ "7 34 36\r",
+ "7 34 37\r",
+ "7 34 38\r",
+ "7 34 39\r",
+ "7 34 40\r",
+ "7 34 41\r",
+ "7 34 42\r",
+ "7 34 43\r",
+ "7 34 44\r",
+ "7 34 45\r",
+ "7 34 46\r",
+ "7 34 47\r",
+ "7 34 48\r",
+ "7 34 49\r",
+ "7 34 50\r",
+ "7 34 51\r",
+ "7 34 52\r",
+ "7 34 53\r",
+ "7 34 54\r",
+ "7 34 55\r",
+ "7 34 56\r",
+ "7 34 57\r",
+ "7 34 58\r",
+ "7 35 1\r",
+ "7 35 2\r",
+ "7 35 3\r",
+ "7 35 4\r",
+ "7 35 5\r",
+ "7 35 6\r",
+ "7 35 7\r",
+ "7 35 8\r",
+ "7 35 9\r",
+ "7 35 10\r",
+ "7 35 11\r",
+ "7 35 12\r",
+ "7 35 13\r",
+ "7 35 14\r",
+ "7 35 15\r",
+ "7 35 16\r",
+ "7 35 17\r",
+ "7 35 18\r",
+ "7 35 19\r",
+ "7 35 20\r",
+ "7 35 21\r",
+ "7 35 22\r",
+ "7 35 23\r",
+ "7 35 24\r",
+ "7 35 25\r",
+ "7 35 26\r",
+ "7 35 27\r",
+ "7 35 28\r",
+ "7 35 29\r",
+ "7 35 30\r",
+ "7 35 31\r",
+ "7 35 32\r",
+ "7 35 33\r",
+ "7 35 34\r",
+ "7 35 35\r",
+ "7 35 36\r",
+ "7 35 37\r",
+ "7 35 38\r",
+ "7 35 39\r",
+ "7 35 40\r",
+ "7 35 41\r",
+ "7 35 42\r",
+ "7 35 43\r",
+ "7 35 44\r",
+ "7 35 45\r",
+ "7 35 46\r",
+ "7 35 47\r",
+ "7 35 48\r",
+ "7 35 49\r",
+ "7 35 50\r",
+ "7 35 51\r",
+ "7 35 52\r",
+ "7 35 53\r",
+ "7 35 54\r",
+ "7 35 55\r",
+ "7 35 56\r",
+ "7 35 57\r",
+ "7 35 58\r",
+ "7 36 1\r",
+ "7 36 2\r",
+ "7 36 3\r",
+ "7 36 4\r",
+ "7 36 5\r",
+ "7 36 6\r",
+ "7 36 7\r",
+ "7 36 8\r",
+ "7 36 9\r",
+ "7 36 10\r",
+ "7 36 11\r",
+ "7 36 12\r",
+ "7 36 13\r",
+ "7 36 14\r",
+ "7 36 15\r",
+ "7 36 16\r",
+ "7 36 17\r",
+ "7 36 18\r",
+ "7 36 19\r",
+ "7 36 20\r",
+ "7 36 21\r",
+ "7 36 22\r",
+ "7 36 23\r",
+ "7 36 24\r",
+ "7 36 25\r",
+ "7 36 26\r",
+ "7 36 27\r",
+ "7 36 28\r",
+ "7 36 29\r",
+ "7 36 30\r",
+ "7 36 31\r",
+ "7 36 32\r",
+ "7 36 33\r",
+ "7 36 34\r",
+ "7 36 35\r",
+ "7 36 36\r",
+ "7 36 37\r",
+ "7 36 38\r",
+ "7 36 39\r",
+ "7 36 40\r",
+ "7 36 41\r",
+ "7 36 42\r",
+ "7 36 43\r",
+ "7 36 44\r",
+ "7 36 45\r",
+ "7 36 46\r",
+ "7 36 47\r",
+ "7 36 48\r",
+ "7 36 49\r",
+ "7 36 50\r",
+ "7 36 51\r",
+ "7 36 52\r",
+ "7 36 53\r",
+ "7 36 54\r",
+ "7 36 55\r",
+ "7 36 56\r",
+ "7 36 57\r",
+ "7 36 58\r",
+ "7 37 1\r",
+ "7 37 2\r",
+ "7 37 3\r",
+ "7 37 4\r",
+ "7 37 5\r",
+ "7 37 6\r",
+ "7 37 7\r",
+ "7 37 8\r",
+ "7 37 9\r",
+ "7 37 10\r",
+ "7 37 11\r",
+ "7 37 12\r",
+ "7 37 13\r",
+ "7 37 14\r",
+ "7 37 15\r",
+ "7 37 16\r",
+ "7 37 17\r",
+ "7 37 18\r",
+ "7 37 19\r",
+ "7 37 20\r",
+ "7 37 21\r",
+ "7 37 22\r",
+ "7 37 23\r",
+ "7 37 24\r",
+ "7 37 25\r",
+ "7 37 26\r",
+ "7 37 27\r",
+ "7 37 28\r",
+ "7 37 29\r",
+ "7 37 30\r",
+ "7 37 31\r",
+ "7 37 32\r",
+ "7 37 33\r",
+ "7 37 34\r",
+ "7 37 35\r",
+ "7 37 36\r",
+ "7 37 37\r",
+ "7 37 38\r",
+ "7 37 39\r",
+ "7 37 40\r",
+ "7 37 41\r",
+ "7 37 42\r",
+ "7 37 43\r",
+ "7 37 44\r",
+ "7 37 45\r",
+ "7 37 46\r",
+ "7 37 47\r",
+ "7 37 48\r",
+ "7 37 49\r",
+ "7 37 50\r",
+ "7 37 51\r",
+ "7 37 52\r",
+ "7 37 53\r",
+ "7 37 54\r",
+ "7 37 55\r",
+ "7 37 56\r",
+ "7 37 57\r",
+ "7 37 58\r",
+ "7 38 1\r",
+ "7 38 2\r",
+ "7 38 3\r",
+ "7 38 4\r",
+ "7 38 5\r",
+ "7 38 6\r",
+ "7 38 7\r",
+ "7 38 8\r",
+ "7 38 9\r",
+ "7 38 10\r",
+ "7 38 11\r",
+ "7 38 12\r",
+ "7 38 13\r",
+ "7 38 14\r",
+ "7 38 15\r",
+ "7 38 16\r",
+ "7 38 17\r",
+ "7 38 18\r",
+ "7 38 19\r",
+ "7 38 20\r",
+ "7 38 21\r",
+ "7 38 22\r",
+ "7 38 23\r",
+ "7 38 24\r",
+ "7 38 25\r",
+ "7 38 26\r",
+ "7 38 27\r",
+ "7 38 28\r",
+ "7 38 29\r",
+ "7 38 30\r",
+ "7 38 31\r",
+ "7 38 32\r",
+ "7 38 33\r",
+ "7 38 34\r",
+ "7 38 35\r",
+ "7 38 36\r",
+ "7 38 37\r",
+ "7 38 38\r",
+ "7 38 39\r",
+ "7 38 40\r",
+ "7 38 41\r",
+ "7 38 42\r",
+ "7 38 43\r",
+ "7 38 44\r",
+ "7 38 45\r",
+ "7 38 46\r",
+ "7 38 47\r",
+ "7 38 48\r",
+ "7 38 49\r",
+ "7 38 50\r",
+ "7 38 51\r",
+ "7 38 52\r",
+ "7 38 53\r",
+ "7 38 54\r",
+ "7 38 55\r",
+ "7 38 56\r",
+ "7 38 57\r",
+ "7 38 58\r",
+ "7 39 1\r",
+ "7 39 2\r",
+ "7 39 3\r",
+ "7 39 4\r",
+ "7 39 5\r",
+ "7 39 6\r",
+ "7 39 7\r",
+ "7 39 8\r",
+ "7 39 9\r",
+ "7 39 10\r",
+ "7 39 11\r",
+ "7 39 12\r",
+ "7 39 13\r",
+ "7 39 14\r",
+ "7 39 15\r",
+ "7 39 16\r",
+ "7 39 17\r",
+ "7 39 18\r",
+ "7 39 19\r",
+ "7 39 20\r",
+ "7 39 21\r",
+ "7 39 22\r",
+ "7 39 23\r",
+ "7 39 24\r",
+ "7 39 25\r",
+ "7 39 26\r",
+ "7 39 27\r",
+ "7 39 28\r",
+ "7 39 29\r",
+ "7 39 30\r",
+ "7 39 31\r",
+ "7 39 32\r",
+ "7 39 33\r",
+ "7 39 34\r",
+ "7 39 35\r",
+ "7 39 36\r",
+ "7 39 37\r",
+ "7 39 38\r",
+ "7 39 39\r",
+ "7 39 40\r",
+ "7 39 41\r",
+ "7 39 42\r",
+ "7 39 43\r",
+ "7 39 44\r",
+ "7 39 45\r",
+ "7 39 46\r",
+ "7 39 47\r",
+ "7 39 48\r",
+ "7 39 49\r",
+ "7 39 50\r",
+ "7 39 51\r",
+ "7 39 52\r",
+ "7 39 53\r",
+ "7 39 54\r",
+ "7 39 55\r",
+ "7 39 56\r",
+ "7 39 57\r",
+ "7 39 58\r",
+ "7 40 1\r",
+ "7 40 2\r",
+ "7 40 3\r",
+ "7 40 4\r",
+ "7 40 5\r",
+ "7 40 6\r",
+ "7 40 7\r",
+ "7 40 8\r",
+ "7 40 9\r",
+ "7 40 10\r",
+ "7 40 11\r",
+ "7 40 12\r",
+ "7 40 13\r",
+ "7 40 14\r",
+ "7 40 15\r",
+ "7 40 16\r",
+ "7 40 17\r",
+ "7 40 18\r",
+ "7 40 19\r",
+ "7 40 20\r",
+ "7 40 21\r",
+ "7 40 22\r",
+ "7 40 23\r",
+ "7 40 24\r",
+ "7 40 25\r",
+ "7 40 26\r",
+ "7 40 27\r",
+ "7 40 28\r",
+ "7 40 29\r",
+ "7 40 30\r",
+ "7 40 31\r",
+ "7 40 32\r",
+ "7 40 33\r",
+ "7 40 34\r",
+ "7 40 35\r",
+ "7 40 36\r",
+ "7 40 37\r",
+ "7 40 38\r",
+ "7 40 39\r",
+ "7 40 40\r",
+ "7 40 41\r",
+ "7 40 42\r",
+ "7 40 43\r",
+ "7 40 44\r",
+ "7 40 45\r",
+ "7 40 46\r",
+ "7 40 47\r",
+ "7 40 48\r",
+ "7 40 49\r",
+ "7 40 50\r",
+ "7 40 51\r",
+ "7 40 52\r",
+ "7 40 53\r",
+ "7 40 54\r",
+ "7 40 55\r",
+ "7 40 56\r",
+ "7 40 57\r",
+ "7 40 58\r",
+ "7 41 1\r",
+ "7 41 2\r",
+ "7 41 3\r",
+ "7 41 4\r",
+ "7 41 5\r",
+ "7 41 6\r",
+ "7 41 7\r",
+ "7 41 8\r",
+ "7 41 9\r",
+ "7 41 10\r",
+ "7 41 11\r",
+ "7 41 12\r",
+ "7 41 13\r",
+ "7 41 14\r",
+ "7 41 15\r",
+ "7 41 16\r",
+ "7 41 17\r",
+ "7 41 18\r",
+ "7 41 19\r",
+ "7 41 20\r",
+ "7 41 21\r",
+ "7 41 22\r",
+ "7 41 23\r",
+ "7 41 24\r",
+ "7 41 25\r",
+ "7 41 26\r",
+ "7 41 27\r",
+ "7 41 28\r",
+ "7 41 29\r",
+ "7 41 30\r",
+ "7 41 31\r",
+ "7 41 32\r",
+ "7 41 33\r",
+ "7 41 34\r",
+ "7 41 35\r",
+ "7 41 36\r",
+ "7 41 37\r",
+ "7 41 38\r",
+ "7 41 39\r",
+ "7 41 40\r",
+ "7 41 41\r",
+ "7 41 42\r",
+ "7 41 43\r",
+ "7 41 44\r",
+ "7 41 45\r",
+ "7 41 46\r",
+ "7 41 47\r",
+ "7 41 48\r",
+ "7 41 49\r",
+ "7 41 50\r",
+ "7 41 51\r",
+ "7 41 52\r",
+ "7 41 53\r",
+ "7 41 54\r",
+ "7 41 55\r",
+ "7 41 56\r",
+ "7 41 57\r",
+ "7 41 58\r",
+ "7 42 1\r",
+ "7 42 2\r",
+ "7 42 3\r",
+ "7 42 4\r",
+ "7 42 5\r",
+ "7 42 6\r",
+ "7 42 7\r",
+ "7 42 8\r",
+ "7 42 9\r",
+ "7 42 10\r",
+ "7 42 11\r",
+ "7 42 12\r",
+ "7 42 13\r",
+ "7 42 14\r",
+ "7 42 15\r",
+ "7 42 16\r",
+ "7 42 17\r",
+ "7 42 18\r",
+ "7 42 19\r",
+ "7 42 20\r",
+ "7 42 21\r",
+ "7 42 22\r",
+ "7 42 23\r",
+ "7 42 24\r",
+ "7 42 25\r",
+ "7 42 26\r",
+ "7 42 27\r",
+ "7 42 28\r",
+ "7 42 29\r",
+ "7 42 30\r",
+ "7 42 31\r",
+ "7 42 32\r",
+ "7 42 33\r",
+ "7 42 34\r",
+ "7 42 35\r",
+ "7 42 36\r",
+ "7 42 37\r",
+ "7 42 38\r",
+ "7 42 39\r",
+ "7 42 40\r",
+ "7 42 41\r",
+ "7 42 42\r",
+ "7 42 43\r",
+ "7 42 44\r",
+ "7 42 45\r",
+ "7 42 46\r",
+ "7 42 47\r",
+ "7 42 48\r",
+ "7 42 49\r",
+ "7 42 50\r",
+ "7 42 51\r",
+ "7 42 52\r",
+ "7 42 53\r",
+ "7 42 54\r",
+ "7 42 55\r",
+ "7 42 56\r",
+ "7 42 57\r",
+ "7 42 58\r",
+ "7 43 1\r",
+ "7 43 2\r",
+ "7 43 3\r",
+ "7 43 4\r",
+ "7 43 5\r",
+ "7 43 6\r",
+ "7 43 7\r",
+ "7 43 8\r",
+ "7 43 9\r",
+ "7 43 10\r",
+ "7 43 11\r",
+ "7 43 12\r",
+ "7 43 13\r",
+ "7 43 14\r",
+ "7 43 15\r",
+ "7 43 16\r",
+ "7 43 17\r",
+ "7 43 18\r",
+ "7 43 19\r",
+ "7 43 20\r",
+ "7 43 21\r",
+ "7 43 22\r",
+ "7 43 23\r",
+ "7 43 24\r",
+ "7 43 25\r",
+ "7 43 26\r",
+ "7 43 27\r",
+ "7 43 28\r",
+ "7 43 29\r",
+ "7 43 30\r",
+ "7 43 31\r",
+ "7 43 32\r",
+ "7 43 33\r",
+ "7 43 34\r",
+ "7 43 35\r",
+ "7 43 36\r",
+ "7 43 37\r",
+ "7 43 38\r",
+ "7 43 39\r",
+ "7 43 40\r",
+ "7 43 41\r",
+ "7 43 42\r",
+ "7 43 43\r",
+ "7 43 44\r",
+ "7 43 45\r",
+ "7 43 46\r",
+ "7 43 47\r",
+ "7 43 48\r",
+ "7 43 49\r",
+ "7 43 50\r",
+ "7 43 51\r",
+ "7 43 52\r",
+ "7 43 53\r",
+ "7 43 54\r",
+ "7 43 55\r",
+ "7 43 56\r",
+ "7 43 57\r",
+ "7 43 58\r",
+ "7 44 1\r",
+ "7 44 2\r",
+ "7 44 3\r",
+ "7 44 4\r",
+ "7 44 5\r",
+ "7 44 6\r",
+ "7 44 7\r",
+ "7 44 8\r",
+ "7 44 9\r",
+ "7 44 10\r",
+ "7 44 11\r",
+ "7 44 12\r",
+ "7 44 13\r",
+ "7 44 14\r",
+ "7 44 15\r",
+ "7 44 16\r",
+ "7 44 17\r",
+ "7 44 18\r",
+ "7 44 19\r",
+ "7 44 20\r",
+ "7 44 21\r",
+ "7 44 22\r",
+ "7 44 23\r",
+ "7 44 24\r",
+ "7 44 25\r",
+ "7 44 26\r",
+ "7 44 27\r",
+ "7 44 28\r",
+ "7 44 29\r",
+ "7 44 30\r",
+ "7 44 31\r",
+ "7 44 32\r",
+ "7 44 33\r",
+ "7 44 34\r",
+ "7 44 35\r",
+ "7 44 36\r",
+ "7 44 37\r",
+ "7 44 38\r",
+ "7 44 39\r",
+ "7 44 40\r",
+ "7 44 41\r",
+ "7 44 42\r",
+ "7 44 43\r",
+ "7 44 44\r",
+ "7 44 45\r",
+ "7 44 46\r",
+ "7 44 47\r",
+ "7 44 48\r",
+ "7 44 49\r",
+ "7 44 50\r",
+ "7 44 51\r",
+ "7 44 52\r",
+ "7 44 53\r",
+ "7 44 54\r",
+ "7 44 55\r",
+ "7 44 56\r",
+ "7 44 57\r",
+ "7 44 58\r",
+ "7 45 1\r",
+ "7 45 2\r",
+ "7 45 3\r",
+ "7 45 4\r",
+ "7 45 5\r",
+ "7 45 6\r",
+ "7 45 7\r",
+ "7 45 8\r",
+ "7 45 9\r",
+ "7 45 10\r",
+ "7 45 11\r",
+ "7 45 12\r",
+ "7 45 13\r",
+ "7 45 14\r",
+ "7 45 15\r",
+ "7 45 16\r",
+ "7 45 17\r",
+ "7 45 18\r",
+ "7 45 19\r",
+ "7 45 20\r",
+ "7 45 21\r",
+ "7 45 22\r",
+ "7 45 23\r",
+ "7 45 24\r",
+ "7 45 25\r",
+ "7 45 26\r",
+ "7 45 27\r",
+ "7 45 28\r",
+ "7 45 29\r",
+ "7 45 30\r",
+ "7 45 31\r",
+ "7 45 32\r",
+ "7 45 33\r",
+ "7 45 34\r",
+ "7 45 35\r",
+ "7 45 36\r",
+ "7 45 37\r",
+ "7 45 38\r",
+ "7 45 39\r",
+ "7 45 40\r",
+ "7 45 41\r",
+ "7 45 42\r",
+ "7 45 43\r",
+ "7 45 44\r",
+ "7 45 45\r",
+ "7 45 46\r",
+ "7 45 47\r",
+ "7 45 48\r",
+ "7 45 49\r",
+ "7 45 50\r",
+ "7 45 51\r",
+ "7 45 52\r",
+ "7 45 53\r",
+ "7 45 54\r",
+ "7 45 55\r",
+ "7 45 56\r",
+ "7 45 57\r",
+ "7 45 58\r",
+ "7 46 1\r",
+ "7 46 2\r",
+ "7 46 3\r",
+ "7 46 4\r",
+ "7 46 5\r",
+ "7 46 6\r",
+ "7 46 7\r",
+ "7 46 8\r",
+ "7 46 9\r",
+ "7 46 10\r",
+ "7 46 11\r",
+ "7 46 12\r",
+ "7 46 13\r",
+ "7 46 14\r",
+ "7 46 15\r",
+ "7 46 16\r",
+ "7 46 17\r",
+ "7 46 18\r",
+ "7 46 19\r",
+ "7 46 20\r",
+ "7 46 21\r",
+ "7 46 22\r",
+ "7 46 23\r",
+ "7 46 24\r",
+ "7 46 25\r",
+ "7 46 26\r",
+ "7 46 27\r",
+ "7 46 28\r",
+ "7 46 29\r",
+ "7 46 30\r",
+ "7 46 31\r",
+ "7 46 32\r",
+ "7 46 33\r",
+ "7 46 34\r",
+ "7 46 35\r",
+ "7 46 36\r",
+ "7 46 37\r",
+ "7 46 38\r",
+ "7 46 39\r",
+ "7 46 40\r",
+ "7 46 41\r",
+ "7 46 42\r",
+ "7 46 43\r",
+ "7 46 44\r",
+ "7 46 45\r",
+ "7 46 46\r",
+ "7 46 47\r",
+ "7 46 48\r",
+ "7 46 49\r",
+ "7 46 50\r",
+ "7 46 51\r",
+ "7 46 52\r",
+ "7 46 53\r",
+ "7 46 54\r",
+ "7 46 55\r",
+ "7 46 56\r",
+ "7 46 57\r",
+ "7 46 58\r",
+ "7 47 1\r",
+ "7 47 2\r",
+ "7 47 3\r",
+ "7 47 4\r",
+ "7 47 5\r",
+ "7 47 6\r",
+ "7 47 7\r",
+ "7 47 8\r",
+ "7 47 9\r",
+ "7 47 10\r",
+ "7 47 11\r",
+ "7 47 12\r",
+ "7 47 13\r",
+ "7 47 14\r",
+ "7 47 15\r",
+ "7 47 16\r",
+ "7 47 17\r",
+ "7 47 18\r",
+ "7 47 19\r",
+ "7 47 20\r",
+ "7 47 21\r",
+ "7 47 22\r",
+ "7 47 23\r",
+ "7 47 24\r",
+ "7 47 25\r",
+ "7 47 26\r",
+ "7 47 27\r",
+ "7 47 28\r",
+ "7 47 29\r",
+ "7 47 30\r",
+ "7 47 31\r",
+ "7 47 32\r",
+ "7 47 33\r",
+ "7 47 34\r",
+ "7 47 35\r",
+ "7 47 36\r",
+ "7 47 37\r",
+ "7 47 38\r",
+ "7 47 39\r",
+ "7 47 40\r",
+ "7 47 41\r",
+ "7 47 42\r",
+ "7 47 43\r",
+ "7 47 44\r",
+ "7 47 45\r",
+ "7 47 46\r",
+ "7 47 47\r",
+ "7 47 48\r",
+ "7 47 49\r",
+ "7 47 50\r",
+ "7 47 51\r",
+ "7 47 52\r",
+ "7 47 53\r",
+ "7 47 54\r",
+ "7 47 55\r",
+ "7 47 56\r",
+ "7 47 57\r",
+ "7 47 58\r",
+ "7 48 1\r",
+ "7 48 2\r",
+ "7 48 3\r",
+ "7 48 4\r",
+ "7 48 5\r",
+ "7 48 6\r",
+ "7 48 7\r",
+ "7 48 8\r",
+ "7 48 9\r",
+ "7 48 10\r",
+ "7 48 11\r",
+ "7 48 12\r",
+ "7 48 13\r",
+ "7 48 14\r",
+ "7 48 15\r",
+ "7 48 16\r",
+ "7 48 17\r",
+ "7 48 18\r",
+ "7 48 19\r",
+ "7 48 20\r",
+ "7 48 21\r",
+ "7 48 22\r",
+ "7 48 23\r",
+ "7 48 24\r",
+ "7 48 25\r",
+ "7 48 26\r",
+ "7 48 27\r",
+ "7 48 28\r",
+ "7 48 29\r",
+ "7 48 30\r",
+ "7 48 31\r",
+ "7 48 32\r",
+ "7 48 33\r",
+ "7 48 34\r",
+ "7 48 35\r",
+ "7 48 36\r",
+ "7 48 37\r",
+ "7 48 38\r",
+ "7 48 39\r",
+ "7 48 40\r",
+ "7 48 41\r",
+ "7 48 42\r",
+ "7 48 43\r",
+ "7 48 44\r",
+ "7 48 45\r",
+ "7 48 46\r",
+ "7 48 47\r",
+ "7 48 48\r",
+ "7 48 49\r",
+ "7 48 50\r",
+ "7 48 51\r",
+ "7 48 52\r",
+ "7 48 53\r",
+ "7 48 54\r",
+ "7 48 55\r",
+ "7 48 56\r",
+ "7 48 57\r",
+ "7 48 58\r",
+ "7 49 1\r",
+ "7 49 2\r",
+ "7 49 3\r",
+ "7 49 4\r",
+ "7 49 5\r",
+ "7 49 6\r",
+ "7 49 7\r",
+ "7 49 8\r",
+ "7 49 9\r",
+ "7 49 10\r",
+ "7 49 11\r",
+ "7 49 12\r",
+ "7 49 13\r",
+ "7 49 14\r",
+ "7 49 15\r",
+ "7 49 16\r",
+ "7 49 17\r",
+ "7 49 18\r",
+ "7 49 19\r",
+ "7 49 20\r",
+ "7 49 21\r",
+ "7 49 22\r",
+ "7 49 23\r",
+ "7 49 24\r",
+ "7 49 25\r",
+ "7 49 26\r",
+ "7 49 27\r",
+ "7 49 28\r",
+ "7 49 29\r",
+ "7 49 30\r",
+ "7 49 31\r",
+ "7 49 32\r",
+ "7 49 33\r",
+ "7 49 34\r",
+ "7 49 35\r",
+ "7 49 36\r",
+ "7 49 37\r",
+ "7 49 38\r",
+ "7 49 39\r",
+ "7 49 40\r",
+ "7 49 41\r",
+ "7 49 42\r",
+ "7 49 43\r",
+ "7 49 44\r",
+ "7 49 45\r",
+ "7 49 46\r",
+ "7 49 47\r",
+ "7 49 48\r",
+ "7 49 49\r",
+ "7 49 50\r",
+ "7 49 51\r",
+ "7 49 52\r",
+ "7 49 53\r",
+ "7 49 54\r",
+ "7 49 55\r",
+ "7 49 56\r",
+ "7 49 57\r",
+ "7 49 58\r",
+ "7 50 1\r",
+ "7 50 2\r",
+ "7 50 3\r",
+ "7 50 4\r",
+ "7 50 5\r",
+ "7 50 6\r",
+ "7 50 7\r",
+ "7 50 8\r",
+ "7 50 9\r",
+ "7 50 10\r",
+ "7 50 11\r",
+ "7 50 12\r",
+ "7 50 13\r",
+ "7 50 14\r",
+ "7 50 15\r",
+ "7 50 16\r",
+ "7 50 17\r",
+ "7 50 18\r",
+ "7 50 19\r",
+ "7 50 20\r",
+ "7 50 21\r",
+ "7 50 22\r",
+ "7 50 23\r",
+ "7 50 24\r",
+ "7 50 25\r",
+ "7 50 26\r",
+ "7 50 27\r",
+ "7 50 28\r",
+ "7 50 29\r",
+ "7 50 30\r",
+ "7 50 31\r",
+ "7 50 32\r",
+ "7 50 33\r",
+ "7 50 34\r",
+ "7 50 35\r",
+ "7 50 36\r",
+ "7 50 37\r",
+ "7 50 38\r",
+ "7 50 39\r",
+ "7 50 40\r",
+ "7 50 41\r",
+ "7 50 42\r",
+ "7 50 43\r",
+ "7 50 44\r",
+ "7 50 45\r",
+ "7 50 46\r",
+ "7 50 47\r",
+ "7 50 48\r",
+ "7 50 49\r",
+ "7 50 50\r",
+ "7 50 51\r",
+ "7 50 52\r",
+ "7 50 53\r",
+ "7 50 54\r",
+ "7 50 55\r",
+ "7 50 56\r",
+ "7 50 57\r",
+ "7 50 58\r",
+ "7 51 1\r",
+ "7 51 2\r",
+ "7 51 3\r",
+ "7 51 4\r",
+ "7 51 5\r",
+ "7 51 6\r",
+ "7 51 7\r",
+ "7 51 8\r",
+ "7 51 9\r",
+ "7 51 10\r",
+ "7 51 11\r",
+ "7 51 12\r",
+ "7 51 13\r",
+ "7 51 14\r",
+ "7 51 15\r",
+ "7 51 16\r",
+ "7 51 17\r",
+ "7 51 18\r",
+ "7 51 19\r",
+ "7 51 20\r",
+ "7 51 21\r",
+ "7 51 22\r",
+ "7 51 23\r",
+ "7 51 24\r",
+ "7 51 25\r",
+ "7 51 26\r",
+ "7 51 27\r",
+ "7 51 28\r",
+ "7 51 29\r",
+ "7 51 30\r",
+ "7 51 31\r",
+ "7 51 32\r",
+ "7 51 33\r",
+ "7 51 34\r",
+ "7 51 35\r",
+ "7 51 36\r",
+ "7 51 37\r",
+ "7 51 38\r",
+ "7 51 39\r",
+ "7 51 40\r",
+ "7 51 41\r",
+ "7 51 42\r",
+ "7 51 43\r",
+ "7 51 44\r",
+ "7 51 45\r",
+ "7 51 46\r",
+ "7 51 47\r",
+ "7 51 48\r",
+ "7 51 49\r",
+ "7 51 50\r",
+ "7 51 51\r",
+ "7 51 52\r",
+ "7 51 53\r",
+ "7 51 54\r",
+ "7 51 55\r",
+ "7 51 56\r",
+ "7 51 57\r",
+ "7 51 58\r",
+ "7 52 1\r",
+ "7 52 2\r",
+ "7 52 3\r",
+ "7 52 4\r",
+ "7 52 5\r",
+ "7 52 6\r",
+ "7 52 7\r",
+ "7 52 8\r",
+ "7 52 9\r",
+ "7 52 10\r",
+ "7 52 11\r",
+ "7 52 12\r",
+ "7 52 13\r",
+ "7 52 14\r",
+ "7 52 15\r",
+ "7 52 16\r",
+ "7 52 17\r",
+ "7 52 18\r",
+ "7 52 19\r",
+ "7 52 20\r",
+ "7 52 21\r",
+ "7 52 22\r",
+ "7 52 23\r",
+ "7 52 24\r",
+ "7 52 25\r",
+ "7 52 26\r",
+ "7 52 27\r",
+ "7 52 28\r",
+ "7 52 29\r",
+ "7 52 30\r",
+ "7 52 31\r",
+ "7 52 32\r",
+ "7 52 33\r",
+ "7 52 34\r",
+ "7 52 35\r",
+ "7 52 36\r",
+ "7 52 37\r",
+ "7 52 38\r",
+ "7 52 39\r",
+ "7 52 40\r",
+ "7 52 41\r",
+ "7 52 42\r",
+ "7 52 43\r",
+ "7 52 44\r",
+ "7 52 45\r",
+ "7 52 46\r",
+ "7 52 47\r",
+ "7 52 48\r",
+ "7 52 49\r",
+ "7 52 50\r",
+ "7 52 51\r",
+ "7 52 52\r",
+ "7 52 53\r",
+ "7 52 54\r",
+ "7 52 55\r",
+ "7 52 56\r",
+ "7 52 57\r",
+ "7 52 58\r",
+ "7 53 1\r",
+ "7 53 2\r",
+ "7 53 3\r",
+ "7 53 4\r",
+ "7 53 5\r",
+ "7 53 6\r",
+ "7 53 7\r",
+ "7 53 8\r",
+ "7 53 9\r",
+ "7 53 10\r",
+ "7 53 11\r",
+ "7 53 12\r",
+ "7 53 13\r",
+ "7 53 14\r",
+ "7 53 15\r",
+ "7 53 16\r",
+ "7 53 17\r",
+ "7 53 18\r",
+ "7 53 19\r",
+ "7 53 20\r",
+ "7 53 21\r",
+ "7 53 22\r",
+ "7 53 23\r",
+ "7 53 24\r",
+ "7 53 25\r",
+ "7 53 26\r",
+ "7 53 27\r",
+ "7 53 28\r",
+ "7 53 29\r",
+ "7 53 30\r",
+ "7 53 31\r",
+ "7 53 32\r",
+ "7 53 33\r",
+ "7 53 34\r",
+ "7 53 35\r",
+ "7 53 36\r",
+ "7 53 37\r",
+ "7 53 38\r",
+ "7 53 39\r",
+ "7 53 40\r",
+ "7 53 41\r",
+ "7 53 42\r",
+ "7 53 43\r",
+ "7 53 44\r",
+ "7 53 45\r",
+ "7 53 46\r",
+ "7 53 47\r",
+ "7 53 48\r",
+ "7 53 49\r",
+ "7 53 50\r",
+ "7 53 51\r",
+ "7 53 52\r",
+ "7 53 53\r",
+ "7 53 54\r",
+ "7 53 55\r",
+ "7 53 56\r",
+ "7 53 57\r",
+ "7 53 58\r",
+ "7 54 1\r",
+ "7 54 2\r",
+ "7 54 3\r",
+ "7 54 4\r",
+ "7 54 5\r",
+ "7 54 6\r",
+ "7 54 7\r",
+ "7 54 8\r",
+ "7 54 9\r",
+ "7 54 10\r",
+ "7 54 11\r",
+ "7 54 12\r",
+ "7 54 13\r",
+ "7 54 14\r",
+ "7 54 15\r",
+ "7 54 16\r",
+ "7 54 17\r",
+ "7 54 18\r",
+ "7 54 19\r",
+ "7 54 20\r",
+ "7 54 21\r",
+ "7 54 22\r",
+ "7 54 23\r",
+ "7 54 24\r",
+ "7 54 25\r",
+ "7 54 26\r",
+ "7 54 27\r",
+ "7 54 28\r",
+ "7 54 29\r",
+ "7 54 30\r",
+ "7 54 31\r",
+ "7 54 32\r",
+ "7 54 33\r",
+ "7 54 34\r",
+ "7 54 35\r",
+ "7 54 36\r",
+ "7 54 37\r",
+ "7 54 38\r",
+ "7 54 39\r",
+ "7 54 40\r",
+ "7 54 41\r",
+ "7 54 42\r",
+ "7 54 43\r",
+ "7 54 44\r",
+ "7 54 45\r",
+ "7 54 46\r",
+ "7 54 47\r",
+ "7 54 48\r",
+ "7 54 49\r",
+ "7 54 50\r",
+ "7 54 51\r",
+ "7 54 52\r",
+ "7 54 53\r",
+ "7 54 54\r",
+ "7 54 55\r",
+ "7 54 56\r",
+ "7 54 57\r",
+ "7 54 58\r",
+ "7 55 1\r",
+ "7 55 2\r",
+ "7 55 3\r",
+ "7 55 4\r",
+ "7 55 5\r",
+ "7 55 6\r",
+ "7 55 7\r",
+ "7 55 8\r",
+ "7 55 9\r",
+ "7 55 10\r",
+ "7 55 11\r",
+ "7 55 12\r",
+ "7 55 13\r",
+ "7 55 14\r",
+ "7 55 15\r",
+ "7 55 16\r",
+ "7 55 17\r",
+ "7 55 18\r",
+ "7 55 19\r",
+ "7 55 20\r",
+ "7 55 21\r",
+ "7 55 22\r",
+ "7 55 23\r",
+ "7 55 24\r",
+ "7 55 25\r",
+ "7 55 26\r",
+ "7 55 27\r",
+ "7 55 28\r",
+ "7 55 29\r",
+ "7 55 30\r",
+ "7 55 31\r",
+ "7 55 32\r",
+ "7 55 33\r",
+ "7 55 34\r",
+ "7 55 35\r",
+ "7 55 36\r",
+ "7 55 37\r",
+ "7 55 38\r",
+ "7 55 39\r",
+ "7 55 40\r",
+ "7 55 41\r",
+ "7 55 42\r",
+ "7 55 43\r",
+ "7 55 44\r",
+ "7 55 45\r",
+ "7 55 46\r",
+ "7 55 47\r",
+ "7 55 48\r",
+ "7 55 49\r",
+ "7 55 50\r",
+ "7 55 51\r",
+ "7 55 52\r",
+ "7 55 53\r",
+ "7 55 54\r",
+ "7 55 55\r",
+ "7 55 56\r",
+ "7 55 57\r",
+ "7 55 58\r",
+ "7 56 1\r",
+ "7 56 2\r",
+ "7 56 3\r",
+ "7 56 4\r",
+ "7 56 5\r",
+ "7 56 6\r",
+ "7 56 7\r",
+ "7 56 8\r",
+ "7 56 9\r",
+ "7 56 10\r",
+ "7 56 11\r",
+ "7 56 12\r",
+ "7 56 13\r",
+ "7 56 14\r",
+ "7 56 15\r",
+ "7 56 16\r",
+ "7 56 17\r",
+ "7 56 18\r",
+ "7 56 19\r",
+ "7 56 20\r",
+ "7 56 21\r",
+ "7 56 22\r",
+ "7 56 23\r",
+ "7 56 24\r",
+ "7 56 25\r",
+ "7 56 26\r",
+ "7 56 27\r",
+ "7 56 28\r",
+ "7 56 29\r",
+ "7 56 30\r",
+ "7 56 31\r",
+ "7 56 32\r",
+ "7 56 33\r",
+ "7 56 34\r",
+ "7 56 35\r",
+ "7 56 36\r",
+ "7 56 37\r",
+ "7 56 38\r",
+ "7 56 39\r",
+ "7 56 40\r",
+ "7 56 41\r",
+ "7 56 42\r",
+ "7 56 43"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\r",
+ "7 56 44\r",
+ "7 56 45\r",
+ "7 56 46\r",
+ "7 56 47\r",
+ "7 56 48\r",
+ "7 56 49\r",
+ "7 56 50\r",
+ "7 56 51\r",
+ "7 56 52\r",
+ "7 56 53\r",
+ "7 56 54\r",
+ "7 56 55\r",
+ "7 56 56\r",
+ "7 56 57\r",
+ "7 56 58\r",
+ "7 57 1\r",
+ "7 57 2\r",
+ "7 57 3\r",
+ "7 57 4\r",
+ "7 57 5\r",
+ "7 57 6\r",
+ "7 57 7\r",
+ "7 57 8\r",
+ "7 57 9\r",
+ "7 57 10\r",
+ "7 57 11\r",
+ "7 57 12\r",
+ "7 57 13\r",
+ "7 57 14\r",
+ "7 57 15\r",
+ "7 57 16\r",
+ "7 57 17\r",
+ "7 57 18\r",
+ "7 57 19\r",
+ "7 57 20\r",
+ "7 57 21\r",
+ "7 57 22\r",
+ "7 57 23\r",
+ "7 57 24\r",
+ "7 57 25\r",
+ "7 57 26\r",
+ "7 57 27\r",
+ "7 57 28\r",
+ "7 57 29\r",
+ "7 57 30\r",
+ "7 57 31\r",
+ "7 57 32\r",
+ "7 57 33\r",
+ "7 57 34\r",
+ "7 57 35\r",
+ "7 57 36\r",
+ "7 57 37\r",
+ "7 57 38\r",
+ "7 57 39\r",
+ "7 57 40\r",
+ "7 57 41\r",
+ "7 57 42\r",
+ "7 57 43\r",
+ "7 57 44\r",
+ "7 57 45\r",
+ "7 57 46\r",
+ "7 57 47\r",
+ "7 57 48\r",
+ "7 57 49\r",
+ "7 57 50\r",
+ "7 57 51\r",
+ "7 57 52\r",
+ "7 57 53\r",
+ "7 57 54\r",
+ "7 57 55\r",
+ "7 57 56\r",
+ "7 57 57\r",
+ "7 57 58\r",
+ "7 58 1\r",
+ "7 58 2\r",
+ "7 58 3\r",
+ "7 58 4\r",
+ "7 58 5\r",
+ "7 58 6\r",
+ "7 58 7\r",
+ "7 58 8\r",
+ "7 58 9\r",
+ "7 58 10\r",
+ "7 58 11\r",
+ "7 58 12\r",
+ "7 58 13\r",
+ "7 58 14\r",
+ "7 58 15\r",
+ "7 58 16\r",
+ "7 58 17\r",
+ "7 58 18\r",
+ "7 58 19\r",
+ "7 58 20\r",
+ "7 58 21\r",
+ "7 58 22\r",
+ "7 58 23\r",
+ "7 58 24\r",
+ "7 58 25\r",
+ "7 58 26\r",
+ "7 58 27\r",
+ "7 58 28\r",
+ "7 58 29\r",
+ "7 58 30\r",
+ "7 58 31\r",
+ "7 58 32\r",
+ "7 58 33\r",
+ "7 58 34\r",
+ "7 58 35\r",
+ "7 58 36\r",
+ "7 58 37\r",
+ "7 58 38\r",
+ "7 58 39\r",
+ "7 58 40\r",
+ "7 58 41\r",
+ "7 58 42\r",
+ "7 58 43\r",
+ "7 58 44\r",
+ "7 58 45\r",
+ "7 58 46\r",
+ "7 58 47\r",
+ "7 58 48\r",
+ "7 58 49\r",
+ "7 58 50\r",
+ "7 58 51\r",
+ "7 58 52\r",
+ "7 58 53\r",
+ "7 58 54\r",
+ "7 58 55\r",
+ "7 58 56\r",
+ "7 58 57\r",
+ "7 58 58\r",
+ "8 1 1\r",
+ "8 1 2\r",
+ "8 1 3\r",
+ "8 1 4\r",
+ "8 1 5\r",
+ "8 1 6\r",
+ "8 1 7\r",
+ "8 1 8\r",
+ "8 1 9\r",
+ "8 1 10\r",
+ "8 1 11\r",
+ "8 1 12\r",
+ "8 1 13\r",
+ "8 1 14\r",
+ "8 1 15\r",
+ "8 1 16\r",
+ "8 1 17\r",
+ "8 1 18\r",
+ "8 1 19\r",
+ "8 1 20\r",
+ "8 1 21\r",
+ "8 1 22\r",
+ "8 1 23\r",
+ "8 1 24\r",
+ "8 1 25\r",
+ "8 1 26\r",
+ "8 1 27\r",
+ "8 1 28\r",
+ "8 1 29\r",
+ "8 1 30\r",
+ "8 1 31\r",
+ "8 1 32\r",
+ "8 1 33\r",
+ "8 1 34\r",
+ "8 1 35\r",
+ "8 1 36\r",
+ "8 1 37\r",
+ "8 1 38\r",
+ "8 1 39\r",
+ "8 1 40\r",
+ "8 1 41\r",
+ "8 1 42\r",
+ "8 1 43\r",
+ "8 1 44\r",
+ "8 1 45\r",
+ "8 1 46\r",
+ "8 1 47\r",
+ "8 1 48\r",
+ "8 1 49\r",
+ "8 1 50\r",
+ "8 1 51\r",
+ "8 1 52\r",
+ "8 1 53\r",
+ "8 1 54\r",
+ "8 1 55\r",
+ "8 1 56\r",
+ "8 1 57\r",
+ "8 1 58\r",
+ "8 2 1\r",
+ "8 2 2\r",
+ "8 2 3\r",
+ "8 2 4\r",
+ "8 2 5\r",
+ "8 2 6\r",
+ "8 2 7\r",
+ "8 2 8\r",
+ "8 2 9\r",
+ "8 2 10\r",
+ "8 2 11\r",
+ "8 2 12\r",
+ "8 2 13\r",
+ "8 2 14\r",
+ "8 2 15\r",
+ "8 2 16\r",
+ "8 2 17\r",
+ "8 2 18\r",
+ "8 2 19\r",
+ "8 2 20\r",
+ "8 2 21\r",
+ "8 2 22\r",
+ "8 2 23\r",
+ "8 2 24\r",
+ "8 2 25\r",
+ "8 2 26\r",
+ "8 2 27\r",
+ "8 2 28\r",
+ "8 2 29\r",
+ "8 2 30\r",
+ "8 2 31\r",
+ "8 2 32\r",
+ "8 2 33\r",
+ "8 2 34\r",
+ "8 2 35\r",
+ "8 2 36\r",
+ "8 2 37\r",
+ "8 2 38\r",
+ "8 2 39\r",
+ "8 2 40\r",
+ "8 2 41\r",
+ "8 2 42\r",
+ "8 2 43\r",
+ "8 2 44\r",
+ "8 2 45\r",
+ "8 2 46\r",
+ "8 2 47\r",
+ "8 2 48\r",
+ "8 2 49\r",
+ "8 2 50\r",
+ "8 2 51\r",
+ "8 2 52\r",
+ "8 2 53\r",
+ "8 2 54\r",
+ "8 2 55\r",
+ "8 2 56\r",
+ "8 2 57\r",
+ "8 2 58\r",
+ "8 3 1\r",
+ "8 3 2\r",
+ "8 3 3\r",
+ "8 3 4\r",
+ "8 3 5\r",
+ "8 3 6\r",
+ "8 3 7\r",
+ "8 3 8\r",
+ "8 3 9\r",
+ "8 3 10\r",
+ "8 3 11\r",
+ "8 3 12\r",
+ "8 3 13\r",
+ "8 3 14\r",
+ "8 3 15\r",
+ "8 3 16\r",
+ "8 3 17\r",
+ "8 3 18\r",
+ "8 3 19\r",
+ "8 3 20\r",
+ "8 3 21\r",
+ "8 3 22\r",
+ "8 3 23\r",
+ "8 3 24\r",
+ "8 3 25\r",
+ "8 3 26\r",
+ "8 3 27\r",
+ "8 3 28\r",
+ "8 3 29\r",
+ "8 3 30\r",
+ "8 3 31\r",
+ "8 3 32\r",
+ "8 3 33\r",
+ "8 3 34\r",
+ "8 3 35\r",
+ "8 3 36\r",
+ "8 3 37\r",
+ "8 3 38\r",
+ "8 3 39\r",
+ "8 3 40\r",
+ "8 3 41\r",
+ "8 3 42\r",
+ "8 3 43\r",
+ "8 3 44\r",
+ "8 3 45\r",
+ "8 3 46\r",
+ "8 3 47\r",
+ "8 3 48\r",
+ "8 3 49\r",
+ "8 3 50\r",
+ "8 3 51\r",
+ "8 3 52\r",
+ "8 3 53\r",
+ "8 3 54\r",
+ "8 3 55\r",
+ "8 3 56\r",
+ "8 3 57\r",
+ "8 3 58\r",
+ "8 4 1\r",
+ "8 4 2\r",
+ "8 4 3\r",
+ "8 4 4\r",
+ "8 4 5\r",
+ "8 4 6\r",
+ "8 4 7\r",
+ "8 4 8\r",
+ "8 4 9\r",
+ "8 4 10\r",
+ "8 4 11\r",
+ "8 4 12\r",
+ "8 4 13\r",
+ "8 4 14\r",
+ "8 4 15\r",
+ "8 4 16\r",
+ "8 4 17\r",
+ "8 4 18\r",
+ "8 4 19\r",
+ "8 4 20\r",
+ "8 4 21\r",
+ "8 4 22\r",
+ "8 4 23\r",
+ "8 4 24\r",
+ "8 4 25\r",
+ "8 4 26\r",
+ "8 4 27\r",
+ "8 4 28\r",
+ "8 4 29\r",
+ "8 4 30\r",
+ "8 4 31\r",
+ "8 4 32\r",
+ "8 4 33\r",
+ "8 4 34\r",
+ "8 4 35\r",
+ "8 4 36\r",
+ "8 4 37\r",
+ "8 4 38\r",
+ "8 4 39\r",
+ "8 4 40\r",
+ "8 4 41\r",
+ "8 4 42\r",
+ "8 4 43\r",
+ "8 4 44\r",
+ "8 4 45\r",
+ "8 4 46\r",
+ "8 4 47\r",
+ "8 4 48\r",
+ "8 4 49\r",
+ "8 4 50\r",
+ "8 4 51\r",
+ "8 4 52\r",
+ "8 4 53\r",
+ "8 4 54\r",
+ "8 4 55\r",
+ "8 4 56\r",
+ "8 4 57\r",
+ "8 4 58\r",
+ "8 5 1\r",
+ "8 5 2\r",
+ "8 5 3\r",
+ "8 5 4\r",
+ "8 5 5\r",
+ "8 5 6\r",
+ "8 5 7\r",
+ "8 5 8\r",
+ "8 5 9\r",
+ "8 5 10\r",
+ "8 5 11\r",
+ "8 5 12\r",
+ "8 5 13\r",
+ "8 5 14\r",
+ "8 5 15\r",
+ "8 5 16\r",
+ "8 5 17\r",
+ "8 5 18\r",
+ "8 5 19\r",
+ "8 5 20\r",
+ "8 5 21\r",
+ "8 5 22\r",
+ "8 5 23\r",
+ "8 5 24\r",
+ "8 5 25\r",
+ "8 5 26\r",
+ "8 5 27\r",
+ "8 5 28\r",
+ "8 5 29\r",
+ "8 5 30\r",
+ "8 5 31\r",
+ "8 5 32\r",
+ "8 5 33\r",
+ "8 5 34\r",
+ "8 5 35\r",
+ "8 5 36\r",
+ "8 5 37\r",
+ "8 5 38\r",
+ "8 5 39\r",
+ "8 5 40\r",
+ "8 5 41\r",
+ "8 5 42\r",
+ "8 5 43\r",
+ "8 5 44\r",
+ "8 5 45\r",
+ "8 5 46\r",
+ "8 5 47\r",
+ "8 5 48\r",
+ "8 5 49\r",
+ "8 5 50\r",
+ "8 5 51\r",
+ "8 5 52\r",
+ "8 5 53\r",
+ "8 5 54\r",
+ "8 5 55\r",
+ "8 5 56\r",
+ "8 5 57\r",
+ "8 5 58\r",
+ "8 6 1\r",
+ "8 6 2\r",
+ "8 6 3\r",
+ "8 6 4\r",
+ "8 6 5\r",
+ "8 6 6\r",
+ "8 6 7\r",
+ "8 6 8\r",
+ "8 6 9\r",
+ "8 6 10\r",
+ "8 6 11\r",
+ "8 6 12\r",
+ "8 6 13\r",
+ "8 6 14\r",
+ "8 6 15\r",
+ "8 6 16\r",
+ "8 6 17\r",
+ "8 6 18\r",
+ "8 6 19\r",
+ "8 6 20\r",
+ "8 6 21\r",
+ "8 6 22\r",
+ "8 6 23\r",
+ "8 6 24\r",
+ "8 6 25\r",
+ "8 6 26\r",
+ "8 6 27\r",
+ "8 6 28\r",
+ "8 6 29\r",
+ "8 6 30\r",
+ "8 6 31\r",
+ "8 6 32\r",
+ "8 6 33\r",
+ "8 6 34\r",
+ "8 6 35\r",
+ "8 6 36\r",
+ "8 6 37\r",
+ "8 6 38\r",
+ "8 6 39\r",
+ "8 6 40\r",
+ "8 6 41\r",
+ "8 6 42\r",
+ "8 6 43\r",
+ "8 6 44\r",
+ "8 6 45\r",
+ "8 6 46\r",
+ "8 6 47\r",
+ "8 6 48\r",
+ "8 6 49\r",
+ "8 6 50\r",
+ "8 6 51\r",
+ "8 6 52\r",
+ "8 6 53\r",
+ "8 6 54\r",
+ "8 6 55\r",
+ "8 6 56\r",
+ "8 6 57\r",
+ "8 6 58\r",
+ "8 7 1\r",
+ "8 7 2\r",
+ "8 7 3\r",
+ "8 7 4\r",
+ "8 7 5\r",
+ "8 7 6\r",
+ "8 7 7\r",
+ "8 7 8\r",
+ "8 7 9\r",
+ "8 7 10\r",
+ "8 7 11\r",
+ "8 7 12\r",
+ "8 7 13\r",
+ "8 7 14\r",
+ "8 7 15\r",
+ "8 7 16\r",
+ "8 7 17\r",
+ "8 7 18\r",
+ "8 7 19\r",
+ "8 7 20\r",
+ "8 7 21\r",
+ "8 7 22\r",
+ "8 7 23\r",
+ "8 7 24\r",
+ "8 7 25\r",
+ "8 7 26\r",
+ "8 7 27\r",
+ "8 7 28\r",
+ "8 7 29\r",
+ "8 7 30\r",
+ "8 7 31\r",
+ "8 7 32\r",
+ "8 7 33\r",
+ "8 7 34\r",
+ "8 7 35\r",
+ "8 7 36\r",
+ "8 7 37\r",
+ "8 7 38\r",
+ "8 7 39\r",
+ "8 7 40\r",
+ "8 7 41\r",
+ "8 7 42\r",
+ "8 7 43\r",
+ "8 7 44\r",
+ "8 7 45\r",
+ "8 7 46\r",
+ "8 7 47\r",
+ "8 7 48\r",
+ "8 7 49\r",
+ "8 7 50\r",
+ "8 7 51\r",
+ "8 7 52\r",
+ "8 7 53\r",
+ "8 7 54\r",
+ "8 7 55\r",
+ "8 7 56\r",
+ "8 7 57\r",
+ "8 7 58\r",
+ "8 8 1\r",
+ "8 8 2\r",
+ "8 8 3\r",
+ "8 8 4\r",
+ "8 8 5\r",
+ "8 8 6\r",
+ "8 8 7\r",
+ "8 8 8\r",
+ "8 8 9\r",
+ "8 8 10\r",
+ "8 8 11\r",
+ "8 8 12\r",
+ "8 8 13\r",
+ "8 8 14\r",
+ "8 8 15\r",
+ "8 8 16\r",
+ "8 8 17\r",
+ "8 8 18\r",
+ "8 8 19\r",
+ "8 8 20\r",
+ "8 8 21\r",
+ "8 8 22\r",
+ "8 8 23\r",
+ "8 8 24\r",
+ "8 8 25\r",
+ "8 8 26\r",
+ "8 8 27\r",
+ "8 8 28\r",
+ "8 8 29\r",
+ "8 8 30\r",
+ "8 8 31\r",
+ "8 8 32\r",
+ "8 8 33\r",
+ "8 8 34\r",
+ "8 8 35\r",
+ "8 8 36\r",
+ "8 8 37\r",
+ "8 8 38\r",
+ "8 8 39\r",
+ "8 8 40\r",
+ "8 8 41\r",
+ "8 8 42\r",
+ "8 8 43\r",
+ "8 8 44\r",
+ "8 8 45\r",
+ "8 8 46\r",
+ "8 8 47\r",
+ "8 8 48\r",
+ "8 8 49\r",
+ "8 8 50\r",
+ "8 8 51\r",
+ "8 8 52\r",
+ "8 8 53\r",
+ "8 8 54\r",
+ "8 8 55\r",
+ "8 8 56\r",
+ "8 8 57\r",
+ "8 8 58\r",
+ "8 9 1\r",
+ "8 9 2\r",
+ "8 9 3\r",
+ "8 9 4\r",
+ "8 9 5\r",
+ "8 9 6\r",
+ "8 9 7\r",
+ "8 9 8\r",
+ "8 9 9\r",
+ "8 9 10\r",
+ "8 9 11\r",
+ "8 9 12\r",
+ "8 9 13\r",
+ "8 9 14\r",
+ "8 9 15\r",
+ "8 9 16\r",
+ "8 9 17\r",
+ "8 9 18\r",
+ "8 9 19\r",
+ "8 9 20\r",
+ "8 9 21\r",
+ "8 9 22\r",
+ "8 9 23\r",
+ "8 9 24\r",
+ "8 9 25\r",
+ "8 9 26\r",
+ "8 9 27\r",
+ "8 9 28\r",
+ "8 9 29\r",
+ "8 9 30\r",
+ "8 9 31\r",
+ "8 9 32\r",
+ "8 9 33\r",
+ "8 9 34\r",
+ "8 9 35\r",
+ "8 9 36\r",
+ "8 9 37\r",
+ "8 9 38\r",
+ "8 9 39\r",
+ "8 9 40\r",
+ "8 9 41\r",
+ "8 9 42\r",
+ "8 9 43\r",
+ "8 9 44\r",
+ "8 9 45\r",
+ "8 9 46\r",
+ "8 9 47\r",
+ "8 9 48\r",
+ "8 9 49\r",
+ "8 9 50\r",
+ "8 9 51\r",
+ "8 9 52\r",
+ "8 9 53\r",
+ "8 9 54\r",
+ "8 9 55\r",
+ "8 9 56\r",
+ "8 9 57\r",
+ "8 9 58\r",
+ "8 10 1\r",
+ "8 10 2\r",
+ "8 10 3\r",
+ "8 10 4\r",
+ "8 10 5\r",
+ "8 10 6\r",
+ "8 10 7\r",
+ "8 10 8\r",
+ "8 10 9\r",
+ "8 10 10\r",
+ "8 10 11\r",
+ "8 10 12\r",
+ "8 10 13\r",
+ "8 10 14\r",
+ "8 10 15\r",
+ "8 10 16\r",
+ "8 10 17\r",
+ "8 10 18\r",
+ "8 10 19\r",
+ "8 10 20\r",
+ "8 10 21\r",
+ "8 10 22\r",
+ "8 10 23\r",
+ "8 10 24\r",
+ "8 10 25\r",
+ "8 10 26\r",
+ "8 10 27\r",
+ "8 10 28\r",
+ "8 10 29\r",
+ "8 10 30\r",
+ "8 10 31\r",
+ "8 10 32\r",
+ "8 10 33\r",
+ "8 10 34\r",
+ "8 10 35\r",
+ "8 10 36\r",
+ "8 10 37\r",
+ "8 10 38\r",
+ "8 10 39\r",
+ "8 10 40\r",
+ "8 10 41\r",
+ "8 10 42\r",
+ "8 10 43\r",
+ "8 10 44\r",
+ "8 10 45\r",
+ "8 10 46\r",
+ "8 10 47\r",
+ "8 10 48\r",
+ "8 10 49\r",
+ "8 10 50\r",
+ "8 10 51\r",
+ "8 10 52\r",
+ "8 10 53\r",
+ "8 10 54\r",
+ "8 10 55\r",
+ "8 10 56\r",
+ "8 10 57\r",
+ "8 10 58\r",
+ "8 11 1\r",
+ "8 11 2\r",
+ "8 11 3\r",
+ "8 11 4\r",
+ "8 11 5\r",
+ "8 11 6\r",
+ "8 11 7\r",
+ "8 11 8\r",
+ "8 11 9\r",
+ "8 11 10\r",
+ "8 11 11\r",
+ "8 11 12\r",
+ "8 11 13\r",
+ "8 11 14\r",
+ "8 11 15\r",
+ "8 11 16\r",
+ "8 11 17\r",
+ "8 11 18\r",
+ "8 11 19\r",
+ "8 11 20\r",
+ "8 11 21\r",
+ "8 11 22\r",
+ "8 11 23\r",
+ "8 11 24\r",
+ "8 11 25\r",
+ "8 11 26\r",
+ "8 11 27\r",
+ "8 11 28\r",
+ "8 11 29\r",
+ "8 11 30\r",
+ "8 11 31\r",
+ "8 11 32\r",
+ "8 11 33\r",
+ "8 11 34\r",
+ "8 11 35\r",
+ "8 11 36\r",
+ "8 11 37\r",
+ "8 11 38\r",
+ "8 11 39\r",
+ "8 11 40\r",
+ "8 11 41\r",
+ "8 11 42\r",
+ "8 11 43\r",
+ "8 11 44\r",
+ "8 11 45\r",
+ "8 11 46\r",
+ "8 11 47\r",
+ "8 11 48\r",
+ "8 11 49\r",
+ "8 11 50\r",
+ "8 11 51\r",
+ "8 11 52\r",
+ "8 11 53\r",
+ "8 11 54\r",
+ "8 11 55\r",
+ "8 11 56\r",
+ "8 11 57\r",
+ "8 11 58\r",
+ "8 12 1\r",
+ "8 12 2\r",
+ "8 12 3\r",
+ "8 12 4\r",
+ "8 12 5\r",
+ "8 12 6\r",
+ "8 12 7\r",
+ "8 12 8\r",
+ "8 12 9\r",
+ "8 12 10\r",
+ "8 12 11\r",
+ "8 12 12\r",
+ "8 12 13\r",
+ "8 12 14\r",
+ "8 12 15\r",
+ "8 12 16\r",
+ "8 12 17\r",
+ "8 12 18\r",
+ "8 12 19\r",
+ "8 12 20\r",
+ "8 12 21\r",
+ "8 12 22\r",
+ "8 12 23\r",
+ "8 12 24\r",
+ "8 12 25\r",
+ "8 12 26\r",
+ "8 12 27\r",
+ "8 12 28\r",
+ "8 12 29\r",
+ "8 12 30\r",
+ "8 12 31\r",
+ "8 12 32\r",
+ "8 12 33\r",
+ "8 12 34\r",
+ "8 12 35\r",
+ "8 12 36\r",
+ "8 12 37\r",
+ "8 12 38\r",
+ "8 12 39\r",
+ "8 12 40\r",
+ "8 12 41\r",
+ "8 12 42\r",
+ "8 12 43\r",
+ "8 12 44\r",
+ "8 12 45\r",
+ "8 12 46\r",
+ "8 12 47\r",
+ "8 12 48\r",
+ "8 12 49\r",
+ "8 12 50\r",
+ "8 12 51\r",
+ "8 12 52\r",
+ "8 12 53\r",
+ "8 12 54\r",
+ "8 12 55\r",
+ "8 12 56\r",
+ "8 12 57\r",
+ "8 12 58\r",
+ "8 13 1\r",
+ "8 13 2\r",
+ "8 13 3\r",
+ "8 13 4\r",
+ "8 13 5\r",
+ "8 13 6\r",
+ "8 13 7\r",
+ "8 13 8\r",
+ "8 13 9\r",
+ "8 13 10\r",
+ "8 13 11\r",
+ "8 13 12\r",
+ "8 13 13\r",
+ "8 13 14\r",
+ "8 13 15\r",
+ "8 13 16\r",
+ "8 13 17\r",
+ "8 13 18\r",
+ "8 13 19\r",
+ "8 13 20\r",
+ "8 13 21\r",
+ "8 13 22\r",
+ "8 13 23\r",
+ "8 13 24\r",
+ "8 13 25\r",
+ "8 13 26\r",
+ "8 13 27\r",
+ "8 13 28\r",
+ "8 13 29\r",
+ "8 13 30\r",
+ "8 13 31\r",
+ "8 13 32\r",
+ "8 13 33\r",
+ "8 13 34\r",
+ "8 13 35\r",
+ "8 13 36\r",
+ "8 13 37\r",
+ "8 13 38\r",
+ "8 13 39\r",
+ "8 13 40\r",
+ "8 13 41\r",
+ "8 13 42\r",
+ "8 13 43\r",
+ "8 13 44\r",
+ "8 13 45\r",
+ "8 13 46\r",
+ "8 13 47\r",
+ "8 13 48\r",
+ "8 13 49\r",
+ "8 13 50\r",
+ "8 13 51\r",
+ "8 13 52\r",
+ "8 13 53\r",
+ "8 13 54\r",
+ "8 13 55\r",
+ "8 13 56\r",
+ "8 13 57\r",
+ "8 13 58\r",
+ "8 14 1\r",
+ "8 14 2\r",
+ "8 14 3\r",
+ "8 14 4\r",
+ "8 14 5\r",
+ "8 14 6\r",
+ "8 14 7\r",
+ "8 14 8\r",
+ "8 14 9\r",
+ "8 14 10\r",
+ "8 14 11\r",
+ "8 14 12\r",
+ "8 14 13\r",
+ "8 14 14\r",
+ "8 14 15\r",
+ "8 14 16\r",
+ "8 14 17\r",
+ "8 14 18\r",
+ "8 14 19\r",
+ "8 14 20\r",
+ "8 14 21\r",
+ "8 14 22\r",
+ "8 14 23\r",
+ "8 14 24\r",
+ "8 14 25\r",
+ "8 14 26\r",
+ "8 14 27\r",
+ "8 14 28\r",
+ "8 14 29\r",
+ "8 14 30\r",
+ "8 14 31\r",
+ "8 14 32\r",
+ "8 14 33\r",
+ "8 14 34\r",
+ "8 14 35\r",
+ "8 14 36\r",
+ "8 14 37\r",
+ "8 14 38\r",
+ "8 14 39\r",
+ "8 14 40\r",
+ "8 14 41\r",
+ "8 14 42\r",
+ "8 14 43\r",
+ "8 14 44\r",
+ "8 14 45\r",
+ "8 14 46\r",
+ "8 14 47\r",
+ "8 14 48\r",
+ "8 14 49\r",
+ "8 14 50\r",
+ "8 14 51\r",
+ "8 14 52\r",
+ "8 14 53\r",
+ "8 14 54\r",
+ "8 14 55\r",
+ "8 14 56\r",
+ "8 14 57\r",
+ "8 14 58\r",
+ "8 15 1\r",
+ "8 15 2\r",
+ "8 15 3\r",
+ "8 15 4\r",
+ "8 15 5\r",
+ "8 15 6\r",
+ "8 15 7\r",
+ "8 15 8\r",
+ "8 15 9\r",
+ "8 15 10\r",
+ "8 15 11\r",
+ "8 15 12\r",
+ "8 15 13\r",
+ "8 15 14\r",
+ "8 15 15\r",
+ "8 15 16\r",
+ "8 15 17\r",
+ "8 15 18\r",
+ "8 15 19\r",
+ "8 15 20\r",
+ "8 15 21\r",
+ "8 15 22\r",
+ "8 15 23\r",
+ "8 15 24\r",
+ "8 15 25\r",
+ "8 15 26\r",
+ "8 15 27\r",
+ "8 15 28\r",
+ "8 15 29\r",
+ "8 15 30\r",
+ "8 15 31\r",
+ "8 15 32\r",
+ "8 15 33\r",
+ "8 15 34\r",
+ "8 15 35\r",
+ "8 15 36\r",
+ "8 15 37\r",
+ "8 15 38\r",
+ "8 15 39\r",
+ "8 15 40\r",
+ "8 15 41\r",
+ "8 15 42\r",
+ "8 15 43\r",
+ "8 15 44\r",
+ "8 15 45\r",
+ "8 15 46\r",
+ "8 15 47\r",
+ "8 15 48\r",
+ "8 15 49\r",
+ "8 15 50\r",
+ "8 15 51\r",
+ "8 15 52\r",
+ "8 15 53\r",
+ "8 15 54\r",
+ "8 15 55\r",
+ "8 15 56\r",
+ "8 15 57\r",
+ "8 15 58\r",
+ "8 16 1\r",
+ "8 16 2\r",
+ "8 16 3\r",
+ "8 16 4\r",
+ "8 16 5\r",
+ "8 16 6\r",
+ "8 16 7\r",
+ "8 16 8\r",
+ "8 16 9\r",
+ "8 16 10\r",
+ "8 16 11\r",
+ "8 16 12\r",
+ "8 16 13\r",
+ "8 16 14\r",
+ "8 16 15\r",
+ "8 16 16\r",
+ "8 16 17\r",
+ "8 16 18\r",
+ "8 16 19\r",
+ "8 16 20\r",
+ "8 16 21\r",
+ "8 16 22\r",
+ "8 16 23\r",
+ "8 16 24\r",
+ "8 16 25\r",
+ "8 16 26\r",
+ "8 16 27\r",
+ "8 16 28\r",
+ "8 16 29\r",
+ "8 16 30\r",
+ "8 16 31\r",
+ "8 16 32\r",
+ "8 16 33\r",
+ "8 16 34\r",
+ "8 16 35\r",
+ "8 16 36\r",
+ "8 16 37\r",
+ "8 16 38\r",
+ "8 16 39\r",
+ "8 16 40\r",
+ "8 16 41\r",
+ "8 16 42\r",
+ "8 16 43\r",
+ "8 16 44\r",
+ "8 16 45\r",
+ "8 16 46\r",
+ "8 16 47\r",
+ "8 16 48\r",
+ "8 16 49\r",
+ "8 16 50\r",
+ "8 16 51\r",
+ "8 16 52\r",
+ "8 16 53\r",
+ "8 16 54\r",
+ "8 16 55\r",
+ "8 16 56\r",
+ "8 16 57\r",
+ "8 16 58\r",
+ "8 17 1\r",
+ "8 17 2\r",
+ "8 17 3\r",
+ "8 17 4\r",
+ "8 17 5\r",
+ "8 17 6\r",
+ "8 17 7\r",
+ "8 17 8\r",
+ "8 17 9\r",
+ "8 17 10\r",
+ "8 17 11\r",
+ "8 17 12\r",
+ "8 17 13\r",
+ "8 17 14\r",
+ "8 17 15\r",
+ "8 17 16\r",
+ "8 17 17\r",
+ "8 17 18\r",
+ "8 17 19\r",
+ "8 17 20\r",
+ "8 17 21\r",
+ "8 17 22\r",
+ "8 17 23\r",
+ "8 17 24\r",
+ "8 17 25\r",
+ "8 17 26\r",
+ "8 17 27\r",
+ "8 17 28\r",
+ "8 17 29\r",
+ "8 17 30\r",
+ "8 17 31\r",
+ "8 17 32\r",
+ "8 17 33\r",
+ "8 17 34\r",
+ "8 17 35\r",
+ "8 17 36\r",
+ "8 17 37\r",
+ "8 17 38\r",
+ "8 17 39\r",
+ "8 17 40\r",
+ "8 17 41\r",
+ "8 17 42\r",
+ "8 17 43\r",
+ "8 17 44\r",
+ "8 17 45\r",
+ "8 17 46\r",
+ "8 17 47\r",
+ "8 17 48\r",
+ "8 17 49\r",
+ "8 17 50\r",
+ "8 17 51\r",
+ "8 17 52\r",
+ "8 17 53\r",
+ "8 17 54\r",
+ "8 17 55\r",
+ "8 17 56\r",
+ "8 17 57\r",
+ "8 17 58\r",
+ "8 18 1\r",
+ "8 18 2\r",
+ "8 18 3\r",
+ "8 18 4\r",
+ "8 18 5\r",
+ "8 18 6\r",
+ "8 18 7\r",
+ "8 18 8\r",
+ "8 18 9\r",
+ "8 18 10\r",
+ "8 18 11\r",
+ "8 18 12\r",
+ "8 18 13\r",
+ "8 18 14\r",
+ "8 18 15\r",
+ "8 18 16\r",
+ "8 18 17\r",
+ "8 18 18\r",
+ "8 18 19\r",
+ "8 18 20\r",
+ "8 18 21\r",
+ "8 18 22\r",
+ "8 18 23\r",
+ "8 18 24\r",
+ "8 18 25\r",
+ "8 18 26\r",
+ "8 18 27\r",
+ "8 18 28\r",
+ "8 18 29\r",
+ "8 18 30\r",
+ "8 18 31\r",
+ "8 18 32\r",
+ "8 18 33\r",
+ "8 18 34\r",
+ "8 18 35\r",
+ "8 18 36\r",
+ "8 18 37\r",
+ "8 18 38\r",
+ "8 18 39\r",
+ "8 18 40\r",
+ "8 18 41\r",
+ "8 18 42\r",
+ "8 18 43\r",
+ "8 18 44\r",
+ "8 18 45\r",
+ "8 18 46\r",
+ "8 18 47\r",
+ "8 18 48\r",
+ "8 18 49\r",
+ "8 18 50\r",
+ "8 18 51\r",
+ "8 18 52\r",
+ "8 18 53\r",
+ "8 18 54\r",
+ "8 18 55\r",
+ "8 18 56\r",
+ "8 18 57\r",
+ "8 18 58\r",
+ "8 19 1\r",
+ "8 19 2\r",
+ "8 19 3\r",
+ "8 19 4\r",
+ "8 19 5\r",
+ "8 19 6\r",
+ "8 19 7\r",
+ "8 19 8\r",
+ "8 19 9\r",
+ "8 19 10\r",
+ "8 19 11\r",
+ "8 19 12\r",
+ "8 19 13\r",
+ "8 19 14\r",
+ "8 19 15\r",
+ "8 19 16\r",
+ "8 19 17\r",
+ "8 19 18\r",
+ "8 19 19\r",
+ "8 19 20\r",
+ "8 19 21\r",
+ "8 19 22\r",
+ "8 19 23\r",
+ "8 19 24\r",
+ "8 19 25\r",
+ "8 19 26\r",
+ "8 19 27\r",
+ "8 19 28\r",
+ "8 19 29\r",
+ "8 19 30\r",
+ "8 19 31\r",
+ "8 19 32\r",
+ "8 19 33\r",
+ "8 19 34\r",
+ "8 19 35\r",
+ "8 19 36\r",
+ "8 19 37\r",
+ "8 19 38\r",
+ "8 19 39\r",
+ "8 19 40\r",
+ "8 19 41\r",
+ "8 19 42\r",
+ "8 19 43\r",
+ "8 19 44\r",
+ "8 19 45\r",
+ "8 19 46\r",
+ "8 19 47\r",
+ "8 19 48\r",
+ "8 19 49\r",
+ "8 19 50\r",
+ "8 19 51\r",
+ "8 19 52\r",
+ "8 19 53\r",
+ "8 19 54\r",
+ "8 19 55\r",
+ "8 19 56\r",
+ "8 19 57\r",
+ "8 19 58\r",
+ "8 20 1\r",
+ "8 20 2\r",
+ "8 20 3\r",
+ "8 20 4\r",
+ "8 20 5\r",
+ "8 20 6\r",
+ "8 20 7\r",
+ "8 20 8\r",
+ "8 20 9\r",
+ "8 20 10\r",
+ "8 20 11\r",
+ "8 20 12\r",
+ "8 20 13\r",
+ "8 20 14\r",
+ "8 20 15\r",
+ "8 20 16\r",
+ "8 20 17\r",
+ "8 20 18\r",
+ "8 20 19\r",
+ "8 20 20\r",
+ "8 20 21\r",
+ "8 20 22\r",
+ "8 20 23\r",
+ "8 20 24\r",
+ "8 20 25\r",
+ "8 20 26\r",
+ "8 20 27\r",
+ "8 20 28\r",
+ "8 20 29\r",
+ "8 20 30\r",
+ "8 20 31\r",
+ "8 20 32\r",
+ "8 20 33\r",
+ "8 20 34\r",
+ "8 20 35\r",
+ "8 20 36\r",
+ "8 20 37\r",
+ "8 20 38\r",
+ "8 20 39\r",
+ "8 20 40\r",
+ "8 20 41\r",
+ "8 20 42\r",
+ "8 20 43\r",
+ "8 20 44\r",
+ "8 20 45\r",
+ "8 20 46\r",
+ "8 20 47\r",
+ "8 20 48\r",
+ "8 20 49\r",
+ "8 20 50\r",
+ "8 20 51\r",
+ "8 20 52\r",
+ "8 20 53\r",
+ "8 20 54\r",
+ "8 20 55\r",
+ "8 20 56\r",
+ "8 20 57\r",
+ "8 20 58\r",
+ "8 21 1\r",
+ "8 21 2\r",
+ "8 21 3\r",
+ "8 21 4\r",
+ "8 21 5\r",
+ "8 21 6\r",
+ "8 21 7\r",
+ "8 21 8\r",
+ "8 21 9\r",
+ "8 21 10\r",
+ "8 21 11\r",
+ "8 21 12\r",
+ "8 21 13\r",
+ "8 21 14\r",
+ "8 21 15\r",
+ "8 21 16\r",
+ "8 21 17\r",
+ "8 21 18\r",
+ "8 21 19\r",
+ "8 21 20\r",
+ "8 21 21\r",
+ "8 21 22\r",
+ "8 21 23\r",
+ "8 21 24\r",
+ "8 21 25\r",
+ "8 21 26\r",
+ "8 21 27\r",
+ "8 21 28\r",
+ "8 21 29\r",
+ "8 21 30\r",
+ "8 21 31\r",
+ "8 21 32\r",
+ "8 21 33\r",
+ "8 21 34\r",
+ "8 21 35\r",
+ "8 21 36\r",
+ "8 21 37\r",
+ "8 21 38\r",
+ "8 21 39\r",
+ "8 21 40\r",
+ "8 21 41\r",
+ "8 21 42\r",
+ "8 21 43\r",
+ "8 21 44\r",
+ "8 21 45\r",
+ "8 21 46\r",
+ "8 21 47\r",
+ "8 21 48\r",
+ "8 21 49\r",
+ "8 21 50\r",
+ "8 21 51\r",
+ "8 21 52\r",
+ "8 21 53\r",
+ "8 21 54\r",
+ "8 21 55\r",
+ "8 21 56\r",
+ "8 21 57\r",
+ "8 21 58\r",
+ "8 22 1\r",
+ "8 22 2\r",
+ "8 22 3\r",
+ "8 22 4\r",
+ "8 22 5\r",
+ "8 22 6\r",
+ "8 22 7\r",
+ "8 22 8\r",
+ "8 22 9\r",
+ "8 22 10\r",
+ "8 22 11\r",
+ "8 22 12\r",
+ "8 22 13\r",
+ "8 22 14\r",
+ "8 22 15\r",
+ "8 22 16\r",
+ "8 22 17\r",
+ "8 22 18\r",
+ "8 22 19\r",
+ "8 22 20\r",
+ "8 22 21\r",
+ "8 22 22\r",
+ "8 22 23\r",
+ "8 22 24\r",
+ "8 22 25\r",
+ "8 22 26\r",
+ "8 22 27\r",
+ "8 22 28\r",
+ "8 22 29\r",
+ "8 22 30\r",
+ "8 22 31\r",
+ "8 22 32\r",
+ "8 22 33\r",
+ "8 22 34\r",
+ "8 22 35\r",
+ "8 22 36\r",
+ "8 22 37\r",
+ "8 22 38\r",
+ "8 22 39\r",
+ "8 22 40\r",
+ "8 22 41\r",
+ "8 22 42\r",
+ "8 22 43\r",
+ "8 22 44\r",
+ "8 22 45\r",
+ "8 22 46\r",
+ "8 22 47\r",
+ "8 22 48\r",
+ "8 22 49\r",
+ "8 22 50\r",
+ "8 22 51\r",
+ "8 22 52\r",
+ "8 22 53\r",
+ "8 22 54\r",
+ "8 22 55\r",
+ "8 22 56\r",
+ "8 22 57\r",
+ "8 22 58\r",
+ "8 23 1\r",
+ "8 23 2\r",
+ "8 23 3\r",
+ "8 23 4\r",
+ "8 23 5\r",
+ "8 23 6\r",
+ "8 23 7\r",
+ "8 23 8\r",
+ "8 23 9\r",
+ "8 23 10\r",
+ "8 23 11\r",
+ "8 23 12\r",
+ "8 23 13\r",
+ "8 23 14\r",
+ "8 23 15\r",
+ "8 23 16\r",
+ "8 23 17\r",
+ "8 23 18\r",
+ "8 23 19\r",
+ "8 23 20\r",
+ "8 23 21\r",
+ "8 23 22\r",
+ "8 23 23\r",
+ "8 23 24\r",
+ "8 23 25\r",
+ "8 23 26\r",
+ "8 23 27\r",
+ "8 23 28\r",
+ "8 23 29\r",
+ "8 23 30\r",
+ "8 23 31\r",
+ "8 23 32\r",
+ "8 23 33\r",
+ "8 23 34\r",
+ "8 23 35\r",
+ "8 23 36\r",
+ "8 23 37\r",
+ "8 23 38\r",
+ "8 23 39\r",
+ "8 23 40\r",
+ "8 23 41\r",
+ "8 23 42\r",
+ "8 23 43\r",
+ "8 23 44\r",
+ "8 23 45\r",
+ "8 23 46\r",
+ "8 23 47\r",
+ "8 23 48\r",
+ "8 23 49\r",
+ "8 23 50\r",
+ "8 23 51\r",
+ "8 23 52\r",
+ "8 23 53\r",
+ "8 23 54\r",
+ "8 23 55\r",
+ "8 23 56\r",
+ "8 23 57\r",
+ "8 23 58\r",
+ "8 24 1\r",
+ "8 24 2\r",
+ "8 24 3\r",
+ "8 24 4\r",
+ "8 24 5\r",
+ "8 24 6\r",
+ "8 24 7\r",
+ "8 24 8\r",
+ "8 24 9\r",
+ "8 24 10\r",
+ "8 24 11\r",
+ "8 24 12\r",
+ "8 24 13\r",
+ "8 24 14\r",
+ "8 24 15\r",
+ "8 24 16\r",
+ "8 24 17\r",
+ "8 24 18\r",
+ "8 24 19\r",
+ "8 24 20\r",
+ "8 24 21\r",
+ "8 24 22\r",
+ "8 24 23\r",
+ "8 24 24\r",
+ "8 24 25\r",
+ "8 24 26\r",
+ "8 24 27\r",
+ "8 24 28\r",
+ "8 24 29\r",
+ "8 24 30\r",
+ "8 24 31\r",
+ "8 24 32\r",
+ "8 24 33\r",
+ "8 24 34\r",
+ "8 24 35\r",
+ "8 24 36\r",
+ "8 24 37\r",
+ "8 24 38\r",
+ "8 24 39\r",
+ "8 24 40\r",
+ "8 24 41\r",
+ "8 24 42\r",
+ "8 24 43\r",
+ "8 24 44\r",
+ "8 24 45\r",
+ "8 24 46\r",
+ "8 24 47\r",
+ "8 24 48\r",
+ "8 24 49\r",
+ "8 24 50\r",
+ "8 24 51\r",
+ "8 24 52\r",
+ "8 24 53\r",
+ "8 24 54\r",
+ "8 24 55\r",
+ "8 24 56\r",
+ "8 24 57\r",
+ "8 24 58\r",
+ "8 25 1\r",
+ "8 25 2\r",
+ "8 25 3\r",
+ "8 25 4\r",
+ "8 25 5\r",
+ "8 25 6\r",
+ "8 25 7\r",
+ "8 25 8\r",
+ "8 25 9\r",
+ "8 25 10\r",
+ "8 25 11\r",
+ "8 25 12\r",
+ "8 25 13\r",
+ "8 25 14\r",
+ "8 25 15\r",
+ "8 25 16\r",
+ "8 25 17\r",
+ "8 25 18\r",
+ "8 25 19\r",
+ "8 25 20\r",
+ "8 25 21\r",
+ "8 25 22\r",
+ "8 25 23\r",
+ "8 25 24\r",
+ "8 25 25\r",
+ "8 25 26\r",
+ "8 25 27\r",
+ "8 25 28\r",
+ "8 25 29\r",
+ "8 25 30\r",
+ "8 25 31\r",
+ "8 25 32\r",
+ "8 25 33\r",
+ "8 25 34\r",
+ "8 25 35\r",
+ "8 25 36\r",
+ "8 25 37\r",
+ "8 25 38\r",
+ "8 25 39\r",
+ "8 25 40\r",
+ "8 25 41\r",
+ "8 25 42\r",
+ "8 25 43\r",
+ "8 25 44\r",
+ "8 25 45\r",
+ "8 25 46\r",
+ "8 25 47\r",
+ "8 25 48\r",
+ "8 25 49\r",
+ "8 25 50\r",
+ "8 25 51\r",
+ "8 25 52\r",
+ "8 25 53\r",
+ "8 25 54\r",
+ "8 25 55\r",
+ "8 25 56\r",
+ "8 25 57\r",
+ "8 25 58\r",
+ "8 26 1\r",
+ "8 26 2\r",
+ "8 26 3\r",
+ "8 26 4\r",
+ "8 26 5\r",
+ "8 26 6\r",
+ "8 26 7\r",
+ "8 26 8\r",
+ "8 26 9\r",
+ "8 26 10\r",
+ "8 26 11\r",
+ "8 26 12\r",
+ "8 26 13\r",
+ "8 26 14\r",
+ "8 26 15\r",
+ "8 26 16\r",
+ "8 26 17\r",
+ "8 26 18\r",
+ "8 26 19\r",
+ "8 26 20\r",
+ "8 26 21\r",
+ "8 26 22\r",
+ "8 26 23\r",
+ "8 26 24\r",
+ "8 26 25\r",
+ "8 26 26\r",
+ "8 26 27\r",
+ "8 26 28\r",
+ "8 26 29\r",
+ "8 26 30\r",
+ "8 26 31\r",
+ "8 26 32\r",
+ "8 26 33\r",
+ "8 26 34\r",
+ "8 26 35\r",
+ "8 26 36\r",
+ "8 26 37\r",
+ "8 26 38\r",
+ "8 26 39\r",
+ "8 26 40\r",
+ "8 26 41\r",
+ "8 26 42\r",
+ "8 26 43\r",
+ "8 26 44\r",
+ "8 26 45\r",
+ "8 26 46\r",
+ "8 26 47\r",
+ "8 26 48\r",
+ "8 26 49\r",
+ "8 26 50\r",
+ "8 26 51\r",
+ "8 26 52\r",
+ "8 26 53\r",
+ "8 26 54\r",
+ "8 26 55\r",
+ "8 26 56\r",
+ "8 26 57\r",
+ "8 26 58\r",
+ "8 27 1\r",
+ "8 27 2\r",
+ "8 27 3\r",
+ "8 27 4\r",
+ "8 27 5\r",
+ "8 27 6\r",
+ "8 27 7\r",
+ "8 27 8\r",
+ "8 27 9\r",
+ "8 27 10\r",
+ "8 27 11\r",
+ "8 27 12\r",
+ "8 27 13\r",
+ "8 27 14\r",
+ "8 27 15\r",
+ "8 27 16\r",
+ "8 27 17\r",
+ "8 27 18\r",
+ "8 27 19\r",
+ "8 27 20\r",
+ "8 27 21\r",
+ "8 27 22\r",
+ "8 27 23\r",
+ "8 27 24\r",
+ "8 27 25\r",
+ "8 27 26\r",
+ "8 27 27\r",
+ "8 27 28\r",
+ "8 27 29\r",
+ "8 27 30\r",
+ "8 27 31\r",
+ "8 27 32\r",
+ "8 27 33\r",
+ "8 27 34\r",
+ "8 27 35\r",
+ "8 27 36\r",
+ "8 27 37\r",
+ "8 27 38\r",
+ "8 27 39\r",
+ "8 27 40\r",
+ "8 27 41\r",
+ "8 27 42\r",
+ "8 27 43\r",
+ "8 27 44\r",
+ "8 27 45\r",
+ "8 27 46\r",
+ "8 27 47\r",
+ "8 27 48\r",
+ "8 27 49\r",
+ "8 27 50\r",
+ "8 27 51\r",
+ "8 27 52\r",
+ "8 27 53\r",
+ "8 27 54\r",
+ "8 27 55\r",
+ "8 27 56\r",
+ "8 27 57\r",
+ "8 27 58\r",
+ "8 28 1\r",
+ "8 28 2\r",
+ "8 28 3\r",
+ "8 28 4\r",
+ "8 28 5\r",
+ "8 28 6\r",
+ "8 28 7\r",
+ "8 28 8\r",
+ "8 28 9\r",
+ "8 28 10\r",
+ "8 28 11\r",
+ "8 28 12\r",
+ "8 28 13\r",
+ "8 28 14\r",
+ "8 28 15\r",
+ "8 28 16\r",
+ "8 28 17\r",
+ "8 28 18\r",
+ "8 28 19\r",
+ "8 28 20\r",
+ "8 28 21\r",
+ "8 28 22\r",
+ "8 28 23\r",
+ "8 28 24\r",
+ "8 28 25\r",
+ "8 28 26\r",
+ "8 28 27\r",
+ "8 28 28\r",
+ "8 28 29\r",
+ "8 28 30\r",
+ "8 28 31\r",
+ "8 28 32\r",
+ "8 28 33\r",
+ "8 28 34\r",
+ "8 28 35\r",
+ "8 28 36\r",
+ "8 28 37\r",
+ "8 28 38\r",
+ "8 28 39\r",
+ "8 28 40\r",
+ "8 28 41\r",
+ "8 28 42\r",
+ "8 28 43\r",
+ "8 28 44\r",
+ "8 28 45\r",
+ "8 28 46\r",
+ "8 28 47\r",
+ "8 28 48\r",
+ "8 28 49\r",
+ "8 28 50\r",
+ "8 28 51\r",
+ "8 28 52\r",
+ "8 28 53\r",
+ "8 28 54\r",
+ "8 28 55\r",
+ "8 28 56\r",
+ "8 28 57\r",
+ "8 28 58\r",
+ "8 29 1\r",
+ "8 29 2\r",
+ "8 29 3\r",
+ "8 29 4\r",
+ "8 29 5\r",
+ "8 29 6\r",
+ "8 29 7\r",
+ "8 29 8\r",
+ "8 29 9\r",
+ "8 29 10\r",
+ "8 29 11\r",
+ "8 29 12\r",
+ "8 29 13\r",
+ "8 29 14\r",
+ "8 29 15\r",
+ "8 29 16\r",
+ "8 29 17\r",
+ "8 29 18\r",
+ "8 29 19\r",
+ "8 29 20\r",
+ "8 29 21\r",
+ "8 29 22\r",
+ "8 29 23\r",
+ "8 29 24\r",
+ "8 29 25\r",
+ "8 29 26\r",
+ "8 29 27\r",
+ "8 29 28\r",
+ "8 29 29\r",
+ "8 29 30\r",
+ "8 29 31\r",
+ "8 29 32\r",
+ "8 29 33\r",
+ "8 29 34\r",
+ "8 29 35\r",
+ "8 29 36\r",
+ "8 29 37\r",
+ "8 29 38\r",
+ "8 29 39\r",
+ "8 29 40\r",
+ "8 29 41\r",
+ "8 29 42\r",
+ "8 29 43\r",
+ "8 29 44\r",
+ "8 29 45\r",
+ "8 29 46\r",
+ "8 29 47\r",
+ "8 29 48\r",
+ "8 29 49\r",
+ "8 29 50\r",
+ "8 29 51\r",
+ "8 29 52\r",
+ "8 29 53\r",
+ "8 29 54\r",
+ "8 29 55\r",
+ "8 29 56\r",
+ "8 29 57\r",
+ "8 29 58\r",
+ "8 30 1\r",
+ "8 30 2\r",
+ "8 30 3\r",
+ "8 30 4\r",
+ "8 30 5\r",
+ "8 30 6\r",
+ "8 30 7\r",
+ "8 30 8\r",
+ "8 30 9\r",
+ "8 30 10\r",
+ "8 30 11\r",
+ "8 30 12\r",
+ "8 30 13\r",
+ "8 30 14\r",
+ "8 30 15\r",
+ "8 30 16\r",
+ "8 30 17\r",
+ "8 30 18\r",
+ "8 30 19\r",
+ "8 30 20\r",
+ "8 30 21\r",
+ "8 30 22\r",
+ "8 30 23\r",
+ "8 30 24\r",
+ "8 30 25\r",
+ "8 30 26\r",
+ "8 30 27\r",
+ "8 30 28\r",
+ "8 30 29\r",
+ "8 30 30\r",
+ "8 30 31\r",
+ "8 30 32\r",
+ "8 30 33\r",
+ "8 30 34\r",
+ "8 30 35\r",
+ "8 30 36\r",
+ "8 30 37\r",
+ "8 30 38\r",
+ "8 30 39\r",
+ "8 30 40\r",
+ "8 30 41\r",
+ "8 30 42\r",
+ "8 30 43\r",
+ "8 30 44\r",
+ "8 30 45\r",
+ "8 30 46\r",
+ "8 30 47\r",
+ "8 30 48\r",
+ "8 30 49\r",
+ "8 30 50\r",
+ "8 30 51\r",
+ "8 30 52\r",
+ "8 30 53\r",
+ "8 30 54\r",
+ "8 30 55\r",
+ "8 30 56\r",
+ "8 30 57\r",
+ "8 30 58\r",
+ "8 31 1\r",
+ "8 31 2\r",
+ "8 31 3\r",
+ "8 31 4\r",
+ "8 31 5\r",
+ "8 31 6\r",
+ "8 31 7\r",
+ "8 31 8\r",
+ "8 31 9\r",
+ "8 31 10\r",
+ "8 31 11\r",
+ "8 31 12\r",
+ "8 31 13\r",
+ "8 31 14\r",
+ "8 31 15\r",
+ "8 31 16\r",
+ "8 31 17\r",
+ "8 31 18\r",
+ "8 31 19\r",
+ "8 31 20\r",
+ "8 31 21\r",
+ "8 31 22\r",
+ "8 31 23\r",
+ "8 31 24\r",
+ "8 31 25\r",
+ "8 31 26\r",
+ "8 31 27\r",
+ "8 31 28\r",
+ "8 31 29\r",
+ "8 31 30\r",
+ "8 31 31\r",
+ "8 31 32\r",
+ "8 31 33\r",
+ "8 31 34\r",
+ "8 31 35\r",
+ "8 31 36\r",
+ "8 31 37\r",
+ "8 31 38\r",
+ "8 31 39\r",
+ "8 31 40\r",
+ "8 31 41\r",
+ "8 31 42\r",
+ "8 31 43\r",
+ "8 31 44\r",
+ "8 31 45\r",
+ "8 31 46\r",
+ "8 31 47\r",
+ "8 31 48\r",
+ "8 31 49\r",
+ "8 31 50\r",
+ "8 31 51\r",
+ "8 31 52\r",
+ "8 31 53\r",
+ "8 31 54\r",
+ "8 31 55\r",
+ "8 31 56\r",
+ "8 31 57\r",
+ "8 31 58\r",
+ "8 32 1\r",
+ "8 32 2\r",
+ "8 32 3\r",
+ "8 32 4\r",
+ "8 32 5\r",
+ "8 32 6\r",
+ "8 32 7\r",
+ "8 32 8\r",
+ "8 32 9\r",
+ "8 32 10\r",
+ "8 32 11\r",
+ "8 32 12\r",
+ "8 32 13\r",
+ "8 32 14\r",
+ "8 32 15\r",
+ "8 32 16\r",
+ "8 32 17\r",
+ "8 32 18\r",
+ "8 32 19\r",
+ "8 32 20\r",
+ "8 32 21\r",
+ "8 32 22\r",
+ "8 32 23\r",
+ "8 32 24\r",
+ "8 32 25\r",
+ "8 32 26\r",
+ "8 32 27\r",
+ "8 32 28\r",
+ "8 32 29\r",
+ "8 32 30\r",
+ "8 32 31\r",
+ "8 32 32\r",
+ "8 32 33\r",
+ "8 32 34\r",
+ "8 32 35\r",
+ "8 32 36\r",
+ "8 32 37\r",
+ "8 32 38\r",
+ "8 32 39\r",
+ "8 32 40\r",
+ "8 32 41\r",
+ "8 32 42\r",
+ "8 32 43\r",
+ "8 32 44\r",
+ "8 32 45\r",
+ "8 32 46\r",
+ "8 32 47\r",
+ "8 32 48\r",
+ "8 32 49\r",
+ "8 32 50\r",
+ "8 32 51\r",
+ "8 32 52\r",
+ "8 32 53\r",
+ "8 32 54\r",
+ "8 32 55\r",
+ "8 32 56\r",
+ "8 32 57\r",
+ "8 32 58\r",
+ "8 33 1\r",
+ "8 33 2\r",
+ "8 33 3\r",
+ "8 33 4\r",
+ "8 33 5\r",
+ "8 33 6\r",
+ "8 33 7\r",
+ "8 33 8\r",
+ "8 33 9\r",
+ "8 33 10\r",
+ "8 33 11\r",
+ "8 33 12\r",
+ "8 33 13\r",
+ "8 33 14\r",
+ "8 33 15\r",
+ "8 33 16\r",
+ "8 33 17\r",
+ "8 33 18\r",
+ "8 33 19\r",
+ "8 33 20\r",
+ "8 33 21\r",
+ "8 33 22\r",
+ "8 33 23\r",
+ "8 33 24\r",
+ "8 33 25\r",
+ "8 33 26\r",
+ "8 33 27\r",
+ "8 33 28\r",
+ "8 33 29\r",
+ "8 33 30\r",
+ "8 33 31\r",
+ "8 33 32\r",
+ "8 33 33\r",
+ "8 33 34\r",
+ "8 33 35\r",
+ "8 33 36\r",
+ "8 33 37\r",
+ "8 33 38\r",
+ "8 33 39\r",
+ "8 33 40\r",
+ "8 33 41\r",
+ "8 33 42\r",
+ "8 33 43\r",
+ "8 33 44\r",
+ "8 33 45\r",
+ "8 33 46\r",
+ "8 33 47\r",
+ "8 33 48\r",
+ "8 33 49\r",
+ "8 33 50\r",
+ "8 33 51\r",
+ "8 33 52\r",
+ "8 33 53\r",
+ "8 33 54\r",
+ "8 33 55\r",
+ "8 33 56\r",
+ "8 33 57\r",
+ "8 33 58\r",
+ "8 34 1\r",
+ "8 34 2\r",
+ "8 34 3\r",
+ "8 34 4\r",
+ "8 34 5\r",
+ "8 34 6\r",
+ "8 34 7\r",
+ "8 34 8\r",
+ "8 34 9\r",
+ "8 34 10\r",
+ "8 34 11\r",
+ "8 34 12\r",
+ "8 34 13\r",
+ "8 34 14\r",
+ "8 34 15\r",
+ "8 34 16\r",
+ "8 34 17\r",
+ "8 34 18\r",
+ "8 34 19\r",
+ "8 34 20\r",
+ "8 34 21\r",
+ "8 34 22\r",
+ "8 34 23\r",
+ "8 34 24\r",
+ "8 34 25\r",
+ "8 34 26\r",
+ "8 34 27\r",
+ "8 34 28\r",
+ "8 34 29\r",
+ "8 34 30\r",
+ "8 34 31\r",
+ "8 34 32\r",
+ "8 34 33\r",
+ "8 34 34\r",
+ "8 34 35\r",
+ "8 34 36\r",
+ "8 34 37\r",
+ "8 34 38\r",
+ "8 34 39\r",
+ "8 34 40\r",
+ "8 34 41\r",
+ "8 34 42\r",
+ "8 34 43\r",
+ "8 34 44\r",
+ "8 34 45\r",
+ "8 34 46\r",
+ "8 34 47\r",
+ "8 34 48\r",
+ "8 34 49\r",
+ "8 34 50\r",
+ "8 34 51\r",
+ "8 34 52\r",
+ "8 34 53\r",
+ "8 34 54\r",
+ "8 34 55\r",
+ "8 34 56\r",
+ "8 34 57\r",
+ "8 34 58\r",
+ "8 35 1\r",
+ "8 35 2\r",
+ "8 35 3\r",
+ "8 35 4\r",
+ "8 35 5\r",
+ "8 35 6\r",
+ "8 35 7\r",
+ "8 35 8\r",
+ "8 35 9\r",
+ "8 35 10\r",
+ "8 35 11\r",
+ "8 35 12\r",
+ "8 35 13\r",
+ "8 35 14\r",
+ "8 35 15\r",
+ "8 35 16\r",
+ "8 35 17\r",
+ "8 35 18\r",
+ "8 35 19\r",
+ "8 35 20\r",
+ "8 35 21\r",
+ "8 35 22\r",
+ "8 35 23\r",
+ "8 35 24\r",
+ "8 35 25\r",
+ "8 35 26\r",
+ "8 35 27\r",
+ "8 35 28\r",
+ "8 35 29\r",
+ "8 35 30\r",
+ "8 35 31\r",
+ "8 35 32\r",
+ "8 35 33\r",
+ "8 35 34\r",
+ "8 35 35\r",
+ "8 35 36\r",
+ "8 35 37\r",
+ "8 35 38\r",
+ "8 35 39\r",
+ "8 35 40\r",
+ "8 35 41\r",
+ "8 35 42\r",
+ "8 35 43\r",
+ "8 35 44\r",
+ "8 35 45\r",
+ "8 35 46\r",
+ "8 35 47\r",
+ "8 35 48\r",
+ "8 35 49\r",
+ "8 35 50\r",
+ "8 35 51\r",
+ "8 35 52\r",
+ "8 35 53\r",
+ "8 35 54\r",
+ "8 35 55\r",
+ "8 35 56\r",
+ "8 35 57\r",
+ "8 35 58\r",
+ "8 36 1\r",
+ "8 36 2\r",
+ "8 36 3\r",
+ "8 36 4\r",
+ "8 36 5\r",
+ "8 36 6\r",
+ "8 36 7\r",
+ "8 36 8\r",
+ "8 36 9\r",
+ "8 36 10\r",
+ "8 36 11\r",
+ "8 36 12\r",
+ "8 36 13\r",
+ "8 36 14\r",
+ "8 36 15\r",
+ "8 36 16\r",
+ "8 36 17\r",
+ "8 36 18\r",
+ "8 36 19\r",
+ "8 36 20\r",
+ "8 36 21\r",
+ "8 36 22\r",
+ "8 36 23\r",
+ "8 36 24\r",
+ "8 36 25\r",
+ "8 36 26\r",
+ "8 36 27\r",
+ "8 36 28\r",
+ "8 36 29\r",
+ "8 36 30\r",
+ "8 36 31\r",
+ "8 36 32\r",
+ "8 36 33\r",
+ "8 36 34\r",
+ "8 36 35\r",
+ "8 36 36\r",
+ "8 36 37\r",
+ "8 36 38\r",
+ "8 36 39\r",
+ "8 36 40\r",
+ "8 36 41\r",
+ "8 36 42\r",
+ "8 36 43\r",
+ "8 36 44\r",
+ "8 36 45\r",
+ "8 36 46\r",
+ "8 36 47\r",
+ "8 36 48\r",
+ "8 36 49\r",
+ "8 36 50\r",
+ "8 36 51\r",
+ "8 36 52\r",
+ "8 36 53\r",
+ "8 36 54\r",
+ "8 36 55\r",
+ "8 36 56\r",
+ "8 36 57\r",
+ "8 36 58\r",
+ "8 37 1\r",
+ "8 37 2\r",
+ "8 37 3\r",
+ "8 37 4\r",
+ "8 37 5\r",
+ "8 37 6\r",
+ "8 37 7\r",
+ "8 37 8\r",
+ "8 37 9\r",
+ "8 37 10\r",
+ "8 37 11\r",
+ "8 37 12\r",
+ "8 37 13\r",
+ "8 37 14\r",
+ "8 37 15\r",
+ "8 37 16\r",
+ "8 37 17\r",
+ "8 37 18\r",
+ "8 37 19\r",
+ "8 37 20\r",
+ "8 37 21\r",
+ "8 37 22\r",
+ "8 37 23\r",
+ "8 37 24\r",
+ "8 37 25\r",
+ "8 37 26\r",
+ "8 37 27\r",
+ "8 37 28\r",
+ "8 37 29\r",
+ "8 37 30\r",
+ "8 37 31\r",
+ "8 37 32\r",
+ "8 37 33\r",
+ "8 37 34\r",
+ "8 37 35\r",
+ "8 37 36\r",
+ "8 37 37\r",
+ "8 37 38\r",
+ "8 37 39\r",
+ "8 37 40\r",
+ "8 37 41\r",
+ "8 37 42\r",
+ "8 37 43\r",
+ "8 37 44\r",
+ "8 37 45\r",
+ "8 37 46\r",
+ "8 37 47\r",
+ "8 37 48\r",
+ "8 37 49\r",
+ "8 37 50\r",
+ "8 37 51\r",
+ "8 37 52\r",
+ "8 37 53\r",
+ "8 37 54\r",
+ "8 37 55\r",
+ "8 37 56\r",
+ "8 37 57\r",
+ "8 37 58\r",
+ "8 38 1\r",
+ "8 38 2\r",
+ "8 38 3\r",
+ "8 38 4\r",
+ "8 38 5\r",
+ "8 38 6\r",
+ "8 38 7\r",
+ "8 38 8\r",
+ "8 38 9\r",
+ "8 38 10\r",
+ "8 38 11\r",
+ "8 38 12\r",
+ "8 38 13\r",
+ "8 38 14\r",
+ "8 38 15\r",
+ "8 38 16\r",
+ "8 38 17\r",
+ "8 38 18\r",
+ "8 38 19\r",
+ "8 38 20\r",
+ "8 38 21\r",
+ "8 38 22\r",
+ "8 38 23\r",
+ "8 38 24\r",
+ "8 38 25\r",
+ "8 38 26\r",
+ "8 38 27\r",
+ "8 38 28\r",
+ "8 38 29\r",
+ "8 38 30\r",
+ "8 38 31\r",
+ "8 38 32\r",
+ "8 38 33\r",
+ "8 38 34\r",
+ "8 38 35\r",
+ "8 38 36\r",
+ "8 38 37\r",
+ "8 38 38\r",
+ "8 38 39\r",
+ "8 38 40\r",
+ "8 38 41\r",
+ "8 38 42\r",
+ "8 38 43\r",
+ "8 38 44\r",
+ "8 38 45\r",
+ "8 38 46\r",
+ "8 38 47\r",
+ "8 38 48\r",
+ "8 38 49\r",
+ "8 38 50\r",
+ "8 38 51\r",
+ "8 38 52\r",
+ "8 38 53\r",
+ "8 38 54\r",
+ "8 38 55\r",
+ "8 38 56\r",
+ "8 38 57\r",
+ "8 38 58\r",
+ "8 39 1\r",
+ "8 39 2\r",
+ "8 39 3\r",
+ "8 39 4\r",
+ "8 39 5\r",
+ "8 39 6\r",
+ "8 39 7\r",
+ "8 39 8\r",
+ "8 39 9\r",
+ "8 39 10\r",
+ "8 39 11\r",
+ "8 39 12\r",
+ "8 39 13\r",
+ "8 39 14\r",
+ "8 39 15\r",
+ "8 39 16\r",
+ "8 39 17\r",
+ "8 39 18\r",
+ "8 39 19\r",
+ "8 39 20\r",
+ "8 39 21\r",
+ "8 39 22\r",
+ "8 39 23\r",
+ "8 39 24\r",
+ "8 39 25\r",
+ "8 39 26\r",
+ "8 39 27\r",
+ "8 39 28\r",
+ "8 39 29\r",
+ "8 39 30\r",
+ "8 39 31\r",
+ "8 39 32\r",
+ "8 39 33\r",
+ "8 39 34\r",
+ "8 39 35\r",
+ "8 39 36\r",
+ "8 39 37\r",
+ "8 39 38\r",
+ "8 39 39\r",
+ "8 39 40\r",
+ "8 39 41\r",
+ "8 39 42\r",
+ "8 39 43\r",
+ "8 39 44\r",
+ "8 39 45\r",
+ "8 39 46\r",
+ "8 39 47\r",
+ "8 39 48\r",
+ "8 39 49\r",
+ "8 39 50\r",
+ "8 39 51\r",
+ "8 39 52\r",
+ "8 39 53\r",
+ "8 39 54\r",
+ "8 39 55\r",
+ "8 39 56\r",
+ "8 39 57\r",
+ "8 39 58\r",
+ "8 40 1\r",
+ "8 40 2\r",
+ "8 40 3\r",
+ "8 40 4\r",
+ "8 40 5\r",
+ "8 40 6\r",
+ "8 40 7\r",
+ "8 40 8\r",
+ "8 40 9\r",
+ "8 40 10\r",
+ "8 40 11\r",
+ "8 40 12\r",
+ "8 40 13\r",
+ "8 40 14\r",
+ "8 40 15\r",
+ "8 40 16\r",
+ "8 40 17\r",
+ "8 40 18\r",
+ "8 40 19\r",
+ "8 40 20\r",
+ "8 40 21\r",
+ "8 40 22\r",
+ "8 40 23\r",
+ "8 40 24\r",
+ "8 40 25\r",
+ "8 40 26\r",
+ "8 40 27\r",
+ "8 40 28\r",
+ "8 40 29\r",
+ "8 40 30\r",
+ "8 40 31\r",
+ "8 40 32\r",
+ "8 40 33\r",
+ "8 40 34\r",
+ "8 40 35\r",
+ "8 40 36\r",
+ "8 40 37\r",
+ "8 40 38\r",
+ "8 40 39\r",
+ "8 40 40\r",
+ "8 40 41\r",
+ "8 40 42\r",
+ "8 40 43\r",
+ "8 40 44\r",
+ "8 40 45\r",
+ "8 40 46\r",
+ "8 40 47\r",
+ "8 40 48\r",
+ "8 40 49\r",
+ "8 40 50\r",
+ "8 40 51\r",
+ "8 40 52\r",
+ "8 40 53\r",
+ "8 40 54\r",
+ "8 40 55\r",
+ "8 40 56\r",
+ "8 40 57\r",
+ "8 40 58\r",
+ "8 41 1\r",
+ "8 41 2\r",
+ "8 41 3\r",
+ "8 41 4\r",
+ "8 41 5\r",
+ "8 41 6\r",
+ "8 41 7\r",
+ "8 41 8\r",
+ "8 41 9\r",
+ "8 41 10\r",
+ "8 41 11\r",
+ "8 41 12\r",
+ "8 41 13\r",
+ "8 41 14\r",
+ "8 41 15\r",
+ "8 41 16\r",
+ "8 41 17\r",
+ "8 41 18\r",
+ "8 41 19\r",
+ "8 41 20\r",
+ "8 41 21\r",
+ "8 41 22\r",
+ "8 41 23\r",
+ "8 41 24\r",
+ "8 41 25\r",
+ "8 41 26\r",
+ "8 41 27\r",
+ "8 41 28\r",
+ "8 41 29\r",
+ "8 41 30\r",
+ "8 41 31\r",
+ "8 41 32\r",
+ "8 41 33\r",
+ "8 41 34\r",
+ "8 41 35\r",
+ "8 41 36\r",
+ "8 41 37\r",
+ "8 41 38\r",
+ "8 41 39\r",
+ "8 41 40\r",
+ "8 41 41\r",
+ "8 41 42\r",
+ "8 41 43\r",
+ "8 41 44\r",
+ "8 41 45\r",
+ "8 41 46\r",
+ "8 41 47\r",
+ "8 41 48\r",
+ "8 41 49\r",
+ "8 41 50\r",
+ "8 41 51\r",
+ "8 41 52\r",
+ "8 41 53\r",
+ "8 41 54\r",
+ "8 41 55\r",
+ "8 41 56\r",
+ "8 41 57\r",
+ "8 41 58\r",
+ "8 42 1\r",
+ "8 42 2\r",
+ "8 42 3\r",
+ "8 42 4\r",
+ "8 42 5\r",
+ "8 42 6\r",
+ "8 42 7\r",
+ "8 42 8\r",
+ "8 42 9\r",
+ "8 42 10\r",
+ "8 42 11\r",
+ "8 42 12\r",
+ "8 42 13\r",
+ "8 42 14\r",
+ "8 42 15\r",
+ "8 42 16\r",
+ "8 42 17\r",
+ "8 42 18\r",
+ "8 42 19\r",
+ "8 42 20\r",
+ "8 42 21\r",
+ "8 42 22\r",
+ "8 42 23\r",
+ "8 42 24\r",
+ "8 42 25\r",
+ "8 42 26\r",
+ "8 42 27\r",
+ "8 42 28\r",
+ "8 42 29\r",
+ "8 42 30\r",
+ "8 42 31\r",
+ "8 42 32\r",
+ "8 42 33\r",
+ "8 42 34\r",
+ "8 42 35\r",
+ "8 42 36\r",
+ "8 42 37\r",
+ "8 42 38\r",
+ "8 42 39\r",
+ "8 42 40\r",
+ "8 42 41\r",
+ "8 42 42\r",
+ "8 42 43\r",
+ "8 42 44\r",
+ "8 42 45\r",
+ "8 42 46\r",
+ "8 42 47\r",
+ "8 42 48\r",
+ "8 42 49\r",
+ "8 42 50\r",
+ "8 42 51\r",
+ "8 42 52\r",
+ "8 42 53\r",
+ "8 42 54\r",
+ "8 42 55\r",
+ "8 42 56\r",
+ "8 42 57\r",
+ "8 42 58\r",
+ "8 43 1\r",
+ "8 43 2\r",
+ "8 43 3\r",
+ "8 43 4\r",
+ "8 43 5\r",
+ "8 43 6\r",
+ "8 43 7\r",
+ "8 43 8\r",
+ "8 43 9\r",
+ "8 43 10\r",
+ "8 43 11\r",
+ "8 43 12\r",
+ "8 43 13\r",
+ "8 43 14\r",
+ "8 43 15\r",
+ "8 43 16\r",
+ "8 43 17\r",
+ "8 43 18\r",
+ "8 43 19\r",
+ "8 43 20\r",
+ "8 43 21\r",
+ "8 43 22\r",
+ "8 43 23\r",
+ "8 43 24\r",
+ "8 43 25\r",
+ "8 43 26\r",
+ "8 43 27\r",
+ "8 43 28\r",
+ "8 43 29\r",
+ "8 43 30\r",
+ "8 43 31\r",
+ "8 43 32\r",
+ "8 43 33\r",
+ "8 43 34\r",
+ "8 43 35\r",
+ "8 43 36\r",
+ "8 43 37\r",
+ "8 43 38\r",
+ "8 43 39\r",
+ "8 43 40\r",
+ "8 43 41\r",
+ "8 43 42\r",
+ "8 43 43\r",
+ "8 43 44\r",
+ "8 43 45\r",
+ "8 43 46\r",
+ "8 43 47\r",
+ "8 43 48\r",
+ "8 43 49\r",
+ "8 43 50\r",
+ "8 43 51\r",
+ "8 43 52\r",
+ "8 43 53\r",
+ "8 43 54\r",
+ "8 43 55\r",
+ "8 43 56\r",
+ "8 43 57\r",
+ "8 43 58\r",
+ "8 44 1\r",
+ "8 44 2\r",
+ "8 44 3\r",
+ "8 44 4\r",
+ "8 44 5\r",
+ "8 44 6\r",
+ "8 44 7\r",
+ "8 44 8\r",
+ "8 44 9\r",
+ "8 44 10\r",
+ "8 44 11\r",
+ "8 44 12\r",
+ "8 44 13\r",
+ "8 44 14\r",
+ "8 44 15\r",
+ "8 44 16\r",
+ "8 44 17\r",
+ "8 44 18\r",
+ "8 44 19\r",
+ "8 44 20\r",
+ "8 44 21\r",
+ "8 44 22\r",
+ "8 44 23\r",
+ "8 44 24\r",
+ "8 44 25\r",
+ "8 44 26\r",
+ "8 44 27\r",
+ "8 44 28\r",
+ "8 44 29\r",
+ "8 44 30\r",
+ "8 44 31\r",
+ "8 44 32\r",
+ "8 44 33\r",
+ "8 44 34\r",
+ "8 44 35\r",
+ "8 44 36\r",
+ "8 44 37\r",
+ "8 44 38\r",
+ "8 44 39\r",
+ "8 44 40\r",
+ "8 44 41\r",
+ "8 44 42\r",
+ "8 44 43\r",
+ "8 44 44\r",
+ "8 44 45\r",
+ "8 44 46\r",
+ "8 44 47\r",
+ "8 44 48\r",
+ "8 44 49\r",
+ "8 44 50\r",
+ "8 44 51\r",
+ "8 44 52\r",
+ "8 44 53\r",
+ "8 44 54\r",
+ "8 44 55\r",
+ "8 44 56\r",
+ "8 44 57\r",
+ "8 44 58\r",
+ "8 45 1\r",
+ "8 45 2\r",
+ "8 45 3\r",
+ "8 45 4\r",
+ "8 45 5\r",
+ "8 45 6\r",
+ "8 45 7\r",
+ "8 45 8\r",
+ "8 45 9"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\r",
+ "8 45 10\r",
+ "8 45 11\r",
+ "8 45 12\r",
+ "8 45 13\r",
+ "8 45 14\r",
+ "8 45 15\r",
+ "8 45 16\r",
+ "8 45 17\r",
+ "8 45 18\r",
+ "8 45 19\r",
+ "8 45 20\r",
+ "8 45 21\r",
+ "8 45 22\r",
+ "8 45 23\r",
+ "8 45 24\r",
+ "8 45 25\r",
+ "8 45 26\r",
+ "8 45 27\r",
+ "8 45 28\r",
+ "8 45 29\r",
+ "8 45 30\r",
+ "8 45 31\r",
+ "8 45 32\r",
+ "8 45 33\r",
+ "8 45 34\r",
+ "8 45 35\r",
+ "8 45 36\r",
+ "8 45 37\r",
+ "8 45 38\r",
+ "8 45 39\r",
+ "8 45 40\r",
+ "8 45 41\r",
+ "8 45 42\r",
+ "8 45 43\r",
+ "8 45 44\r",
+ "8 45 45\r",
+ "8 45 46\r",
+ "8 45 47\r",
+ "8 45 48\r",
+ "8 45 49\r",
+ "8 45 50\r",
+ "8 45 51\r",
+ "8 45 52\r",
+ "8 45 53\r",
+ "8 45 54\r",
+ "8 45 55\r",
+ "8 45 56\r",
+ "8 45 57\r",
+ "8 45 58\r",
+ "8 46 1\r",
+ "8 46 2\r",
+ "8 46 3\r",
+ "8 46 4\r",
+ "8 46 5\r",
+ "8 46 6\r",
+ "8 46 7\r",
+ "8 46 8\r",
+ "8 46 9\r",
+ "8 46 10\r",
+ "8 46 11\r",
+ "8 46 12\r",
+ "8 46 13\r",
+ "8 46 14\r",
+ "8 46 15\r",
+ "8 46 16\r",
+ "8 46 17\r",
+ "8 46 18\r",
+ "8 46 19\r",
+ "8 46 20\r",
+ "8 46 21\r",
+ "8 46 22\r",
+ "8 46 23\r",
+ "8 46 24\r",
+ "8 46 25\r",
+ "8 46 26\r",
+ "8 46 27\r",
+ "8 46 28\r",
+ "8 46 29\r",
+ "8 46 30\r",
+ "8 46 31\r",
+ "8 46 32\r",
+ "8 46 33\r",
+ "8 46 34\r",
+ "8 46 35\r",
+ "8 46 36\r",
+ "8 46 37\r",
+ "8 46 38\r",
+ "8 46 39\r",
+ "8 46 40\r",
+ "8 46 41\r",
+ "8 46 42\r",
+ "8 46 43\r",
+ "8 46 44\r",
+ "8 46 45\r",
+ "8 46 46\r",
+ "8 46 47\r",
+ "8 46 48\r",
+ "8 46 49\r",
+ "8 46 50\r",
+ "8 46 51\r",
+ "8 46 52\r",
+ "8 46 53\r",
+ "8 46 54\r",
+ "8 46 55\r",
+ "8 46 56\r",
+ "8 46 57\r",
+ "8 46 58\r",
+ "8 47 1\r",
+ "8 47 2\r",
+ "8 47 3\r",
+ "8 47 4\r",
+ "8 47 5\r",
+ "8 47 6\r",
+ "8 47 7\r",
+ "8 47 8\r",
+ "8 47 9\r",
+ "8 47 10\r",
+ "8 47 11\r",
+ "8 47 12\r",
+ "8 47 13\r",
+ "8 47 14\r",
+ "8 47 15\r",
+ "8 47 16\r",
+ "8 47 17\r",
+ "8 47 18\r",
+ "8 47 19\r",
+ "8 47 20\r",
+ "8 47 21\r",
+ "8 47 22\r",
+ "8 47 23\r",
+ "8 47 24\r",
+ "8 47 25\r",
+ "8 47 26\r",
+ "8 47 27\r",
+ "8 47 28\r",
+ "8 47 29\r",
+ "8 47 30\r",
+ "8 47 31\r",
+ "8 47 32\r",
+ "8 47 33\r",
+ "8 47 34\r",
+ "8 47 35\r",
+ "8 47 36\r",
+ "8 47 37\r",
+ "8 47 38\r",
+ "8 47 39\r",
+ "8 47 40\r",
+ "8 47 41\r",
+ "8 47 42\r",
+ "8 47 43\r",
+ "8 47 44\r",
+ "8 47 45\r",
+ "8 47 46\r",
+ "8 47 47\r",
+ "8 47 48\r",
+ "8 47 49\r",
+ "8 47 50\r",
+ "8 47 51\r",
+ "8 47 52\r",
+ "8 47 53\r",
+ "8 47 54\r",
+ "8 47 55\r",
+ "8 47 56\r",
+ "8 47 57\r",
+ "8 47 58\r",
+ "8 48 1\r",
+ "8 48 2\r",
+ "8 48 3\r",
+ "8 48 4\r",
+ "8 48 5\r",
+ "8 48 6\r",
+ "8 48 7\r",
+ "8 48 8\r",
+ "8 48 9\r",
+ "8 48 10\r",
+ "8 48 11\r",
+ "8 48 12\r",
+ "8 48 13\r",
+ "8 48 14\r",
+ "8 48 15\r",
+ "8 48 16\r",
+ "8 48 17\r",
+ "8 48 18\r",
+ "8 48 19\r",
+ "8 48 20\r",
+ "8 48 21\r",
+ "8 48 22\r",
+ "8 48 23\r",
+ "8 48 24\r",
+ "8 48 25\r",
+ "8 48 26\r",
+ "8 48 27\r",
+ "8 48 28\r",
+ "8 48 29\r",
+ "8 48 30\r",
+ "8 48 31\r",
+ "8 48 32\r",
+ "8 48 33\r",
+ "8 48 34\r",
+ "8 48 35\r",
+ "8 48 36\r",
+ "8 48 37\r",
+ "8 48 38\r",
+ "8 48 39\r",
+ "8 48 40\r",
+ "8 48 41\r",
+ "8 48 42\r",
+ "8 48 43\r",
+ "8 48 44\r",
+ "8 48 45\r",
+ "8 48 46\r",
+ "8 48 47\r",
+ "8 48 48\r",
+ "8 48 49\r",
+ "8 48 50\r",
+ "8 48 51\r",
+ "8 48 52\r",
+ "8 48 53\r",
+ "8 48 54\r",
+ "8 48 55\r",
+ "8 48 56\r",
+ "8 48 57\r",
+ "8 48 58\r",
+ "8 49 1\r",
+ "8 49 2\r",
+ "8 49 3\r",
+ "8 49 4\r",
+ "8 49 5\r",
+ "8 49 6\r",
+ "8 49 7\r",
+ "8 49 8\r",
+ "8 49 9\r",
+ "8 49 10\r",
+ "8 49 11\r",
+ "8 49 12\r",
+ "8 49 13\r",
+ "8 49 14\r",
+ "8 49 15\r",
+ "8 49 16\r",
+ "8 49 17\r",
+ "8 49 18\r",
+ "8 49 19\r",
+ "8 49 20\r",
+ "8 49 21\r",
+ "8 49 22\r",
+ "8 49 23\r",
+ "8 49 24\r",
+ "8 49 25\r",
+ "8 49 26\r",
+ "8 49 27\r",
+ "8 49 28\r",
+ "8 49 29\r",
+ "8 49 30\r",
+ "8 49 31\r",
+ "8 49 32\r",
+ "8 49 33\r",
+ "8 49 34\r",
+ "8 49 35\r",
+ "8 49 36\r",
+ "8 49 37\r",
+ "8 49 38\r",
+ "8 49 39\r",
+ "8 49 40\r",
+ "8 49 41\r",
+ "8 49 42\r",
+ "8 49 43\r",
+ "8 49 44\r",
+ "8 49 45\r",
+ "8 49 46\r",
+ "8 49 47\r",
+ "8 49 48\r",
+ "8 49 49\r",
+ "8 49 50\r",
+ "8 49 51\r",
+ "8 49 52\r",
+ "8 49 53\r",
+ "8 49 54\r",
+ "8 49 55\r",
+ "8 49 56\r",
+ "8 49 57\r",
+ "8 49 58\r",
+ "8 50 1\r",
+ "8 50 2\r",
+ "8 50 3\r",
+ "8 50 4\r",
+ "8 50 5\r",
+ "8 50 6\r",
+ "8 50 7\r",
+ "8 50 8\r",
+ "8 50 9\r",
+ "8 50 10\r",
+ "8 50 11\r",
+ "8 50 12\r",
+ "8 50 13\r",
+ "8 50 14\r",
+ "8 50 15\r",
+ "8 50 16\r",
+ "8 50 17\r",
+ "8 50 18\r",
+ "8 50 19\r",
+ "8 50 20\r",
+ "8 50 21\r",
+ "8 50 22\r",
+ "8 50 23\r",
+ "8 50 24\r",
+ "8 50 25\r",
+ "8 50 26\r",
+ "8 50 27\r",
+ "8 50 28\r",
+ "8 50 29\r",
+ "8 50 30\r",
+ "8 50 31\r",
+ "8 50 32\r",
+ "8 50 33\r",
+ "8 50 34\r",
+ "8 50 35\r",
+ "8 50 36\r",
+ "8 50 37\r",
+ "8 50 38\r",
+ "8 50 39\r",
+ "8 50 40\r",
+ "8 50 41\r",
+ "8 50 42\r",
+ "8 50 43\r",
+ "8 50 44\r",
+ "8 50 45\r",
+ "8 50 46\r",
+ "8 50 47\r",
+ "8 50 48\r",
+ "8 50 49\r",
+ "8 50 50\r",
+ "8 50 51\r",
+ "8 50 52\r",
+ "8 50 53\r",
+ "8 50 54\r",
+ "8 50 55\r",
+ "8 50 56\r",
+ "8 50 57\r",
+ "8 50 58\r",
+ "8 51 1\r",
+ "8 51 2\r",
+ "8 51 3\r",
+ "8 51 4\r",
+ "8 51 5\r",
+ "8 51 6\r",
+ "8 51 7\r",
+ "8 51 8\r",
+ "8 51 9\r",
+ "8 51 10\r",
+ "8 51 11\r",
+ "8 51 12\r",
+ "8 51 13\r",
+ "8 51 14\r",
+ "8 51 15\r",
+ "8 51 16\r",
+ "8 51 17\r",
+ "8 51 18\r",
+ "8 51 19\r",
+ "8 51 20\r",
+ "8 51 21\r",
+ "8 51 22\r",
+ "8 51 23\r",
+ "8 51 24\r",
+ "8 51 25\r",
+ "8 51 26\r",
+ "8 51 27\r",
+ "8 51 28\r",
+ "8 51 29\r",
+ "8 51 30\r",
+ "8 51 31\r",
+ "8 51 32\r",
+ "8 51 33\r",
+ "8 51 34\r",
+ "8 51 35\r",
+ "8 51 36\r",
+ "8 51 37\r",
+ "8 51 38\r",
+ "8 51 39\r",
+ "8 51 40\r",
+ "8 51 41\r",
+ "8 51 42\r",
+ "8 51 43\r",
+ "8 51 44\r",
+ "8 51 45\r",
+ "8 51 46\r",
+ "8 51 47\r",
+ "8 51 48\r",
+ "8 51 49\r",
+ "8 51 50\r",
+ "8 51 51\r",
+ "8 51 52\r",
+ "8 51 53\r",
+ "8 51 54\r",
+ "8 51 55\r",
+ "8 51 56\r",
+ "8 51 57\r",
+ "8 51 58\r",
+ "8 52 1\r",
+ "8 52 2\r",
+ "8 52 3\r",
+ "8 52 4\r",
+ "8 52 5\r",
+ "8 52 6\r",
+ "8 52 7\r",
+ "8 52 8\r",
+ "8 52 9\r",
+ "8 52 10\r",
+ "8 52 11\r",
+ "8 52 12\r",
+ "8 52 13\r",
+ "8 52 14\r",
+ "8 52 15\r",
+ "8 52 16\r",
+ "8 52 17\r",
+ "8 52 18\r",
+ "8 52 19\r",
+ "8 52 20\r",
+ "8 52 21\r",
+ "8 52 22\r",
+ "8 52 23\r",
+ "8 52 24\r",
+ "8 52 25\r",
+ "8 52 26\r",
+ "8 52 27\r",
+ "8 52 28\r",
+ "8 52 29\r",
+ "8 52 30\r",
+ "8 52 31\r",
+ "8 52 32\r",
+ "8 52 33\r",
+ "8 52 34\r",
+ "8 52 35\r",
+ "8 52 36\r",
+ "8 52 37\r",
+ "8 52 38\r",
+ "8 52 39\r",
+ "8 52 40\r",
+ "8 52 41\r",
+ "8 52 42\r",
+ "8 52 43\r",
+ "8 52 44\r",
+ "8 52 45\r",
+ "8 52 46\r",
+ "8 52 47\r",
+ "8 52 48\r",
+ "8 52 49\r",
+ "8 52 50\r",
+ "8 52 51\r",
+ "8 52 52\r",
+ "8 52 53\r",
+ "8 52 54\r",
+ "8 52 55\r",
+ "8 52 56\r",
+ "8 52 57\r",
+ "8 52 58\r",
+ "8 53 1\r",
+ "8 53 2\r",
+ "8 53 3\r",
+ "8 53 4\r",
+ "8 53 5\r",
+ "8 53 6\r",
+ "8 53 7\r",
+ "8 53 8\r",
+ "8 53 9\r",
+ "8 53 10\r",
+ "8 53 11\r",
+ "8 53 12\r",
+ "8 53 13\r",
+ "8 53 14\r",
+ "8 53 15\r",
+ "8 53 16\r",
+ "8 53 17\r",
+ "8 53 18\r",
+ "8 53 19\r",
+ "8 53 20\r",
+ "8 53 21\r",
+ "8 53 22\r",
+ "8 53 23\r",
+ "8 53 24\r",
+ "8 53 25\r",
+ "8 53 26\r",
+ "8 53 27\r",
+ "8 53 28\r",
+ "8 53 29\r",
+ "8 53 30\r",
+ "8 53 31\r",
+ "8 53 32\r",
+ "8 53 33\r",
+ "8 53 34\r",
+ "8 53 35\r",
+ "8 53 36\r",
+ "8 53 37\r",
+ "8 53 38\r",
+ "8 53 39\r",
+ "8 53 40\r",
+ "8 53 41\r",
+ "8 53 42\r",
+ "8 53 43\r",
+ "8 53 44\r",
+ "8 53 45\r",
+ "8 53 46\r",
+ "8 53 47\r",
+ "8 53 48\r",
+ "8 53 49\r",
+ "8 53 50\r",
+ "8 53 51\r",
+ "8 53 52\r",
+ "8 53 53\r",
+ "8 53 54\r",
+ "8 53 55\r",
+ "8 53 56\r",
+ "8 53 57\r",
+ "8 53 58\r",
+ "8 54 1\r",
+ "8 54 2\r",
+ "8 54 3\r",
+ "8 54 4\r",
+ "8 54 5\r",
+ "8 54 6\r",
+ "8 54 7\r",
+ "8 54 8\r",
+ "8 54 9\r",
+ "8 54 10\r",
+ "8 54 11\r",
+ "8 54 12\r",
+ "8 54 13\r",
+ "8 54 14\r",
+ "8 54 15\r",
+ "8 54 16\r",
+ "8 54 17\r",
+ "8 54 18\r",
+ "8 54 19\r",
+ "8 54 20\r",
+ "8 54 21\r",
+ "8 54 22\r",
+ "8 54 23\r",
+ "8 54 24\r",
+ "8 54 25\r",
+ "8 54 26\r",
+ "8 54 27\r",
+ "8 54 28\r",
+ "8 54 29\r",
+ "8 54 30\r",
+ "8 54 31\r",
+ "8 54 32\r",
+ "8 54 33\r",
+ "8 54 34\r",
+ "8 54 35\r",
+ "8 54 36\r",
+ "8 54 37\r",
+ "8 54 38\r",
+ "8 54 39\r",
+ "8 54 40\r",
+ "8 54 41\r",
+ "8 54 42\r",
+ "8 54 43\r",
+ "8 54 44\r",
+ "8 54 45\r",
+ "8 54 46\r",
+ "8 54 47\r",
+ "8 54 48\r",
+ "8 54 49\r",
+ "8 54 50\r",
+ "8 54 51\r",
+ "8 54 52\r",
+ "8 54 53\r",
+ "8 54 54\r",
+ "8 54 55\r",
+ "8 54 56\r",
+ "8 54 57\r",
+ "8 54 58\r",
+ "8 55 1\r",
+ "8 55 2\r",
+ "8 55 3\r",
+ "8 55 4\r",
+ "8 55 5\r",
+ "8 55 6\r",
+ "8 55 7\r",
+ "8 55 8\r",
+ "8 55 9\r",
+ "8 55 10\r",
+ "8 55 11\r",
+ "8 55 12\r",
+ "8 55 13\r",
+ "8 55 14\r",
+ "8 55 15\r",
+ "8 55 16\r",
+ "8 55 17\r",
+ "8 55 18\r",
+ "8 55 19\r",
+ "8 55 20\r",
+ "8 55 21\r",
+ "8 55 22\r",
+ "8 55 23\r",
+ "8 55 24\r",
+ "8 55 25\r",
+ "8 55 26\r",
+ "8 55 27\r",
+ "8 55 28\r",
+ "8 55 29\r",
+ "8 55 30\r",
+ "8 55 31\r",
+ "8 55 32\r",
+ "8 55 33\r",
+ "8 55 34\r",
+ "8 55 35\r",
+ "8 55 36\r",
+ "8 55 37\r",
+ "8 55 38\r",
+ "8 55 39\r",
+ "8 55 40\r",
+ "8 55 41\r",
+ "8 55 42\r",
+ "8 55 43\r",
+ "8 55 44\r",
+ "8 55 45\r",
+ "8 55 46\r",
+ "8 55 47\r",
+ "8 55 48\r",
+ "8 55 49\r",
+ "8 55 50\r",
+ "8 55 51\r",
+ "8 55 52\r",
+ "8 55 53\r",
+ "8 55 54\r",
+ "8 55 55\r",
+ "8 55 56\r",
+ "8 55 57\r",
+ "8 55 58\r",
+ "8 56 1\r",
+ "8 56 2\r",
+ "8 56 3\r",
+ "8 56 4\r",
+ "8 56 5\r",
+ "8 56 6\r",
+ "8 56 7\r",
+ "8 56 8\r",
+ "8 56 9\r",
+ "8 56 10\r",
+ "8 56 11\r",
+ "8 56 12\r",
+ "8 56 13\r",
+ "8 56 14\r",
+ "8 56 15\r",
+ "8 56 16\r",
+ "8 56 17\r",
+ "8 56 18\r",
+ "8 56 19\r",
+ "8 56 20\r",
+ "8 56 21\r",
+ "8 56 22\r",
+ "8 56 23\r",
+ "8 56 24\r",
+ "8 56 25\r",
+ "8 56 26\r",
+ "8 56 27\r",
+ "8 56 28\r",
+ "8 56 29\r",
+ "8 56 30\r",
+ "8 56 31\r",
+ "8 56 32\r",
+ "8 56 33\r",
+ "8 56 34\r",
+ "8 56 35\r",
+ "8 56 36\r",
+ "8 56 37\r",
+ "8 56 38\r",
+ "8 56 39\r",
+ "8 56 40\r",
+ "8 56 41\r",
+ "8 56 42\r",
+ "8 56 43\r",
+ "8 56 44\r",
+ "8 56 45\r",
+ "8 56 46\r",
+ "8 56 47\r",
+ "8 56 48\r",
+ "8 56 49\r",
+ "8 56 50\r",
+ "8 56 51\r",
+ "8 56 52\r",
+ "8 56 53\r",
+ "8 56 54\r",
+ "8 56 55\r",
+ "8 56 56\r",
+ "8 56 57\r",
+ "8 56 58\r",
+ "8 57 1\r",
+ "8 57 2\r",
+ "8 57 3\r",
+ "8 57 4\r",
+ "8 57 5\r",
+ "8 57 6\r",
+ "8 57 7\r",
+ "8 57 8\r",
+ "8 57 9\r",
+ "8 57 10\r",
+ "8 57 11\r",
+ "8 57 12\r",
+ "8 57 13\r",
+ "8 57 14\r",
+ "8 57 15\r",
+ "8 57 16\r",
+ "8 57 17\r",
+ "8 57 18\r",
+ "8 57 19\r",
+ "8 57 20\r",
+ "8 57 21\r",
+ "8 57 22\r",
+ "8 57 23\r",
+ "8 57 24\r",
+ "8 57 25\r",
+ "8 57 26\r",
+ "8 57 27\r",
+ "8 57 28\r",
+ "8 57 29\r",
+ "8 57 30\r",
+ "8 57 31\r",
+ "8 57 32\r",
+ "8 57 33\r",
+ "8 57 34\r",
+ "8 57 35\r",
+ "8 57 36\r",
+ "8 57 37\r",
+ "8 57 38\r",
+ "8 57 39\r",
+ "8 57 40\r",
+ "8 57 41\r",
+ "8 57 42\r",
+ "8 57 43\r",
+ "8 57 44\r",
+ "8 57 45\r",
+ "8 57 46\r",
+ "8 57 47\r",
+ "8 57 48\r",
+ "8 57 49\r",
+ "8 57 50\r",
+ "8 57 51\r",
+ "8 57 52\r",
+ "8 57 53\r",
+ "8 57 54\r",
+ "8 57 55\r",
+ "8 57 56\r",
+ "8 57 57\r",
+ "8 57 58\r",
+ "8 58 1\r",
+ "8 58 2\r",
+ "8 58 3\r",
+ "8 58 4\r",
+ "8 58 5\r",
+ "8 58 6\r",
+ "8 58 7\r",
+ "8 58 8\r",
+ "8 58 9\r",
+ "8 58 10\r",
+ "8 58 11\r",
+ "8 58 12\r",
+ "8 58 13\r",
+ "8 58 14\r",
+ "8 58 15\r",
+ "8 58 16\r",
+ "8 58 17\r",
+ "8 58 18\r",
+ "8 58 19\r",
+ "8 58 20\r",
+ "8 58 21\r",
+ "8 58 22\r",
+ "8 58 23\r",
+ "8 58 24\r",
+ "8 58 25\r",
+ "8 58 26\r",
+ "8 58 27\r",
+ "8 58 28\r",
+ "8 58 29\r",
+ "8 58 30\r",
+ "8 58 31\r",
+ "8 58 32\r",
+ "8 58 33\r",
+ "8 58 34\r",
+ "8 58 35\r",
+ "8 58 36\r",
+ "8 58 37\r",
+ "8 58 38\r",
+ "8 58 39\r",
+ "8 58 40\r",
+ "8 58 41\r",
+ "8 58 42\r",
+ "8 58 43\r",
+ "8 58 44\r",
+ "8 58 45\r",
+ "8 58 46\r",
+ "8 58 47\r",
+ "8 58 48\r",
+ "8 58 49\r",
+ "8 58 50\r",
+ "8 58 51\r",
+ "8 58 52\r",
+ "8 58 53\r",
+ "8 58 54\r",
+ "8 58 55\r",
+ "8 58 56\r",
+ "8 58 57\r",
+ "8 58 58\r",
+ "9 1 1\r",
+ "9 1 2\r",
+ "9 1 3\r",
+ "9 1 4\r",
+ "9 1 5\r",
+ "9 1 6\r",
+ "9 1 7\r",
+ "9 1 8\r",
+ "9 1 9\r",
+ "9 1 10\r",
+ "9 1 11\r",
+ "9 1 12\r",
+ "9 1 13\r",
+ "9 1 14\r",
+ "9 1 15\r",
+ "9 1 16\r",
+ "9 1 17\r",
+ "9 1 18\r",
+ "9 1 19\r",
+ "9 1 20\r",
+ "9 1 21\r",
+ "9 1 22\r",
+ "9 1 23\r",
+ "9 1 24\r",
+ "9 1 25\r",
+ "9 1 26\r",
+ "9 1 27\r",
+ "9 1 28\r",
+ "9 1 29\r",
+ "9 1 30\r",
+ "9 1 31\r",
+ "9 1 32\r",
+ "9 1 33\r",
+ "9 1 34\r",
+ "9 1 35\r",
+ "9 1 36\r",
+ "9 1 37\r",
+ "9 1 38\r",
+ "9 1 39\r",
+ "9 1 40\r",
+ "9 1 41\r",
+ "9 1 42\r",
+ "9 1 43\r",
+ "9 1 44\r",
+ "9 1 45\r",
+ "9 1 46\r",
+ "9 1 47\r",
+ "9 1 48\r",
+ "9 1 49\r",
+ "9 1 50\r",
+ "9 1 51\r",
+ "9 1 52\r",
+ "9 1 53\r",
+ "9 1 54\r",
+ "9 1 55\r",
+ "9 1 56\r",
+ "9 1 57\r",
+ "9 1 58\r",
+ "9 2 1\r",
+ "9 2 2\r",
+ "9 2 3\r",
+ "9 2 4\r",
+ "9 2 5\r",
+ "9 2 6\r",
+ "9 2 7\r",
+ "9 2 8\r",
+ "9 2 9\r",
+ "9 2 10\r",
+ "9 2 11\r",
+ "9 2 12\r",
+ "9 2 13\r",
+ "9 2 14\r",
+ "9 2 15\r",
+ "9 2 16\r",
+ "9 2 17\r",
+ "9 2 18\r",
+ "9 2 19\r",
+ "9 2 20\r",
+ "9 2 21\r",
+ "9 2 22\r",
+ "9 2 23\r",
+ "9 2 24\r",
+ "9 2 25\r",
+ "9 2 26\r",
+ "9 2 27\r",
+ "9 2 28\r",
+ "9 2 29\r",
+ "9 2 30\r",
+ "9 2 31\r",
+ "9 2 32\r",
+ "9 2 33\r",
+ "9 2 34\r",
+ "9 2 35\r",
+ "9 2 36\r",
+ "9 2 37\r",
+ "9 2 38\r",
+ "9 2 39\r",
+ "9 2 40\r",
+ "9 2 41\r",
+ "9 2 42\r",
+ "9 2 43\r",
+ "9 2 44\r",
+ "9 2 45\r",
+ "9 2 46\r",
+ "9 2 47\r",
+ "9 2 48\r",
+ "9 2 49\r",
+ "9 2 50\r",
+ "9 2 51\r",
+ "9 2 52\r",
+ "9 2 53\r",
+ "9 2 54\r",
+ "9 2 55\r",
+ "9 2 56\r",
+ "9 2 57\r",
+ "9 2 58\r",
+ "9 3 1\r",
+ "9 3 2\r",
+ "9 3 3\r",
+ "9 3 4\r",
+ "9 3 5\r",
+ "9 3 6\r",
+ "9 3 7\r",
+ "9 3 8\r",
+ "9 3 9\r",
+ "9 3 10\r",
+ "9 3 11\r",
+ "9 3 12\r",
+ "9 3 13\r",
+ "9 3 14\r",
+ "9 3 15\r",
+ "9 3 16\r",
+ "9 3 17\r",
+ "9 3 18\r",
+ "9 3 19\r",
+ "9 3 20\r",
+ "9 3 21\r",
+ "9 3 22\r",
+ "9 3 23\r",
+ "9 3 24\r",
+ "9 3 25\r",
+ "9 3 26\r",
+ "9 3 27\r",
+ "9 3 28\r",
+ "9 3 29\r",
+ "9 3 30\r",
+ "9 3 31\r",
+ "9 3 32\r",
+ "9 3 33\r",
+ "9 3 34\r",
+ "9 3 35\r",
+ "9 3 36\r",
+ "9 3 37\r",
+ "9 3 38\r",
+ "9 3 39\r",
+ "9 3 40\r",
+ "9 3 41\r",
+ "9 3 42\r",
+ "9 3 43\r",
+ "9 3 44\r",
+ "9 3 45\r",
+ "9 3 46\r",
+ "9 3 47\r",
+ "9 3 48\r",
+ "9 3 49\r",
+ "9 3 50\r",
+ "9 3 51\r",
+ "9 3 52\r",
+ "9 3 53\r",
+ "9 3 54\r",
+ "9 3 55\r",
+ "9 3 56\r",
+ "9 3 57\r",
+ "9 3 58\r",
+ "9 4 1\r",
+ "9 4 2\r",
+ "9 4 3\r",
+ "9 4 4\r",
+ "9 4 5\r",
+ "9 4 6\r",
+ "9 4 7\r",
+ "9 4 8\r",
+ "9 4 9\r",
+ "9 4 10\r",
+ "9 4 11\r",
+ "9 4 12\r",
+ "9 4 13\r",
+ "9 4 14\r",
+ "9 4 15\r",
+ "9 4 16\r",
+ "9 4 17\r",
+ "9 4 18\r",
+ "9 4 19\r",
+ "9 4 20\r",
+ "9 4 21\r",
+ "9 4 22\r",
+ "9 4 23\r",
+ "9 4 24\r",
+ "9 4 25\r",
+ "9 4 26\r",
+ "9 4 27\r",
+ "9 4 28\r",
+ "9 4 29\r",
+ "9 4 30\r",
+ "9 4 31\r",
+ "9 4 32\r",
+ "9 4 33\r",
+ "9 4 34\r",
+ "9 4 35\r",
+ "9 4 36\r",
+ "9 4 37\r",
+ "9 4 38\r",
+ "9 4 39\r",
+ "9 4 40\r",
+ "9 4 41\r",
+ "9 4 42\r",
+ "9 4 43\r",
+ "9 4 44\r",
+ "9 4 45\r",
+ "9 4 46\r",
+ "9 4 47\r",
+ "9 4 48\r",
+ "9 4 49\r",
+ "9 4 50\r",
+ "9 4 51\r",
+ "9 4 52\r",
+ "9 4 53\r",
+ "9 4 54\r",
+ "9 4 55\r",
+ "9 4 56\r",
+ "9 4 57\r",
+ "9 4 58\r",
+ "9 5 1\r",
+ "9 5 2\r",
+ "9 5 3\r",
+ "9 5 4\r",
+ "9 5 5\r",
+ "9 5 6\r",
+ "9 5 7\r",
+ "9 5 8\r",
+ "9 5 9\r",
+ "9 5 10\r",
+ "9 5 11\r",
+ "9 5 12\r",
+ "9 5 13\r",
+ "9 5 14\r",
+ "9 5 15\r",
+ "9 5 16\r",
+ "9 5 17\r",
+ "9 5 18\r",
+ "9 5 19\r",
+ "9 5 20\r",
+ "9 5 21\r",
+ "9 5 22\r",
+ "9 5 23\r",
+ "9 5 24\r",
+ "9 5 25\r",
+ "9 5 26\r",
+ "9 5 27\r",
+ "9 5 28\r",
+ "9 5 29\r",
+ "9 5 30\r",
+ "9 5 31\r",
+ "9 5 32\r",
+ "9 5 33\r",
+ "9 5 34\r",
+ "9 5 35\r",
+ "9 5 36\r",
+ "9 5 37\r",
+ "9 5 38\r",
+ "9 5 39\r",
+ "9 5 40\r",
+ "9 5 41\r",
+ "9 5 42\r",
+ "9 5 43\r",
+ "9 5 44\r",
+ "9 5 45\r",
+ "9 5 46\r",
+ "9 5 47\r",
+ "9 5 48\r",
+ "9 5 49\r",
+ "9 5 50\r",
+ "9 5 51\r",
+ "9 5 52\r",
+ "9 5 53\r",
+ "9 5 54\r",
+ "9 5 55\r",
+ "9 5 56\r",
+ "9 5 57\r",
+ "9 5 58\r",
+ "9 6 1\r",
+ "9 6 2\r",
+ "9 6 3\r",
+ "9 6 4\r",
+ "9 6 5\r",
+ "9 6 6\r",
+ "9 6 7\r",
+ "9 6 8\r",
+ "9 6 9\r",
+ "9 6 10\r",
+ "9 6 11\r",
+ "9 6 12\r",
+ "9 6 13\r",
+ "9 6 14\r",
+ "9 6 15\r",
+ "9 6 16\r",
+ "9 6 17\r",
+ "9 6 18\r",
+ "9 6 19\r",
+ "9 6 20\r",
+ "9 6 21\r",
+ "9 6 22\r",
+ "9 6 23\r",
+ "9 6 24\r",
+ "9 6 25\r",
+ "9 6 26\r",
+ "9 6 27\r",
+ "9 6 28\r",
+ "9 6 29\r",
+ "9 6 30\r",
+ "9 6 31\r",
+ "9 6 32\r",
+ "9 6 33\r",
+ "9 6 34\r",
+ "9 6 35\r",
+ "9 6 36\r",
+ "9 6 37\r",
+ "9 6 38\r",
+ "9 6 39\r",
+ "9 6 40\r",
+ "9 6 41\r",
+ "9 6 42\r",
+ "9 6 43\r",
+ "9 6 44\r",
+ "9 6 45\r",
+ "9 6 46\r",
+ "9 6 47\r",
+ "9 6 48\r",
+ "9 6 49\r",
+ "9 6 50\r",
+ "9 6 51\r",
+ "9 6 52\r",
+ "9 6 53\r",
+ "9 6 54\r",
+ "9 6 55\r",
+ "9 6 56\r",
+ "9 6 57\r",
+ "9 6 58\r",
+ "9 7 1\r",
+ "9 7 2\r",
+ "9 7 3\r",
+ "9 7 4\r",
+ "9 7 5\r",
+ "9 7 6\r",
+ "9 7 7\r",
+ "9 7 8\r",
+ "9 7 9\r",
+ "9 7 10\r",
+ "9 7 11\r",
+ "9 7 12\r",
+ "9 7 13\r",
+ "9 7 14\r",
+ "9 7 15\r",
+ "9 7 16\r",
+ "9 7 17\r",
+ "9 7 18\r",
+ "9 7 19\r",
+ "9 7 20\r",
+ "9 7 21\r",
+ "9 7 22\r",
+ "9 7 23\r",
+ "9 7 24\r",
+ "9 7 25\r",
+ "9 7 26\r",
+ "9 7 27\r",
+ "9 7 28\r",
+ "9 7 29\r",
+ "9 7 30\r",
+ "9 7 31\r",
+ "9 7 32\r",
+ "9 7 33\r",
+ "9 7 34\r",
+ "9 7 35\r",
+ "9 7 36\r",
+ "9 7 37\r",
+ "9 7 38\r",
+ "9 7 39\r",
+ "9 7 40\r",
+ "9 7 41\r",
+ "9 7 42\r",
+ "9 7 43\r",
+ "9 7 44\r",
+ "9 7 45\r",
+ "9 7 46\r",
+ "9 7 47\r",
+ "9 7 48\r",
+ "9 7 49\r",
+ "9 7 50\r",
+ "9 7 51\r",
+ "9 7 52\r",
+ "9 7 53\r",
+ "9 7 54\r",
+ "9 7 55\r",
+ "9 7 56\r",
+ "9 7 57\r",
+ "9 7 58\r",
+ "9 8 1\r",
+ "9 8 2\r",
+ "9 8 3\r",
+ "9 8 4\r",
+ "9 8 5\r",
+ "9 8 6\r",
+ "9 8 7\r",
+ "9 8 8\r",
+ "9 8 9\r",
+ "9 8 10\r",
+ "9 8 11\r",
+ "9 8 12\r",
+ "9 8 13\r",
+ "9 8 14\r",
+ "9 8 15\r",
+ "9 8 16\r",
+ "9 8 17\r",
+ "9 8 18\r",
+ "9 8 19\r",
+ "9 8 20\r",
+ "9 8 21\r",
+ "9 8 22\r",
+ "9 8 23\r",
+ "9 8 24\r",
+ "9 8 25\r",
+ "9 8 26\r",
+ "9 8 27\r",
+ "9 8 28\r",
+ "9 8 29\r",
+ "9 8 30\r",
+ "9 8 31\r",
+ "9 8 32\r",
+ "9 8 33\r",
+ "9 8 34\r",
+ "9 8 35\r",
+ "9 8 36\r",
+ "9 8 37\r",
+ "9 8 38\r",
+ "9 8 39\r",
+ "9 8 40\r",
+ "9 8 41\r",
+ "9 8 42\r",
+ "9 8 43\r",
+ "9 8 44\r",
+ "9 8 45\r",
+ "9 8 46\r",
+ "9 8 47\r",
+ "9 8 48\r",
+ "9 8 49\r",
+ "9 8 50\r",
+ "9 8 51\r",
+ "9 8 52\r",
+ "9 8 53\r",
+ "9 8 54\r",
+ "9 8 55\r",
+ "9 8 56\r",
+ "9 8 57\r",
+ "9 8 58\r",
+ "9 9 1\r",
+ "9 9 2\r",
+ "9 9 3\r",
+ "9 9 4\r",
+ "9 9 5\r",
+ "9 9 6\r",
+ "9 9 7\r",
+ "9 9 8\r",
+ "9 9 9\r",
+ "9 9 10\r",
+ "9 9 11\r",
+ "9 9 12\r",
+ "9 9 13\r",
+ "9 9 14\r",
+ "9 9 15\r",
+ "9 9 16\r",
+ "9 9 17\r",
+ "9 9 18\r",
+ "9 9 19\r",
+ "9 9 20\r",
+ "9 9 21\r",
+ "9 9 22\r",
+ "9 9 23\r",
+ "9 9 24\r",
+ "9 9 25\r",
+ "9 9 26\r",
+ "9 9 27\r",
+ "9 9 28\r",
+ "9 9 29\r",
+ "9 9 30\r",
+ "9 9 31\r",
+ "9 9 32\r",
+ "9 9 33\r",
+ "9 9 34\r",
+ "9 9 35\r",
+ "9 9 36\r",
+ "9 9 37\r",
+ "9 9 38\r",
+ "9 9 39\r",
+ "9 9 40\r",
+ "9 9 41\r",
+ "9 9 42\r",
+ "9 9 43\r",
+ "9 9 44\r",
+ "9 9 45\r",
+ "9 9 46\r",
+ "9 9 47\r",
+ "9 9 48\r",
+ "9 9 49\r",
+ "9 9 50\r",
+ "9 9 51\r",
+ "9 9 52\r",
+ "9 9 53\r",
+ "9 9 54\r",
+ "9 9 55\r",
+ "9 9 56\r",
+ "9 9 57\r",
+ "9 9 58\r",
+ "9 10 1\r",
+ "9 10 2\r",
+ "9 10 3\r",
+ "9 10 4\r",
+ "9 10 5\r",
+ "9 10 6\r",
+ "9 10 7\r",
+ "9 10 8\r",
+ "9 10 9\r",
+ "9 10 10\r",
+ "9 10 11\r",
+ "9 10 12\r",
+ "9 10 13\r",
+ "9 10 14\r",
+ "9 10 15\r",
+ "9 10 16\r",
+ "9 10 17\r",
+ "9 10 18\r",
+ "9 10 19\r",
+ "9 10 20\r",
+ "9 10 21\r",
+ "9 10 22\r",
+ "9 10 23\r",
+ "9 10 24\r",
+ "9 10 25\r",
+ "9 10 26\r",
+ "9 10 27\r",
+ "9 10 28\r",
+ "9 10 29\r",
+ "9 10 30\r",
+ "9 10 31\r",
+ "9 10 32\r",
+ "9 10 33\r",
+ "9 10 34\r",
+ "9 10 35\r",
+ "9 10 36\r",
+ "9 10 37\r",
+ "9 10 38\r",
+ "9 10 39\r",
+ "9 10 40\r",
+ "9 10 41\r",
+ "9 10 42\r",
+ "9 10 43\r",
+ "9 10 44\r",
+ "9 10 45\r",
+ "9 10 46\r",
+ "9 10 47\r",
+ "9 10 48\r",
+ "9 10 49\r",
+ "9 10 50\r",
+ "9 10 51\r",
+ "9 10 52\r",
+ "9 10 53\r",
+ "9 10 54\r",
+ "9 10 55\r",
+ "9 10 56\r",
+ "9 10 57\r",
+ "9 10 58\r",
+ "9 11 1\r",
+ "9 11 2\r",
+ "9 11 3\r",
+ "9 11 4\r",
+ "9 11 5\r",
+ "9 11 6\r",
+ "9 11 7\r",
+ "9 11 8\r",
+ "9 11 9\r",
+ "9 11 10\r",
+ "9 11 11\r",
+ "9 11 12\r",
+ "9 11 13\r",
+ "9 11 14\r",
+ "9 11 15\r",
+ "9 11 16\r",
+ "9 11 17\r",
+ "9 11 18\r",
+ "9 11 19\r",
+ "9 11 20\r",
+ "9 11 21\r",
+ "9 11 22\r",
+ "9 11 23\r",
+ "9 11 24\r",
+ "9 11 25\r",
+ "9 11 26\r",
+ "9 11 27\r",
+ "9 11 28\r",
+ "9 11 29\r",
+ "9 11 30\r",
+ "9 11 31\r",
+ "9 11 32\r",
+ "9 11 33\r",
+ "9 11 34\r",
+ "9 11 35\r",
+ "9 11 36\r",
+ "9 11 37\r",
+ "9 11 38\r",
+ "9 11 39\r",
+ "9 11 40\r",
+ "9 11 41\r",
+ "9 11 42\r",
+ "9 11 43\r",
+ "9 11 44\r",
+ "9 11 45\r",
+ "9 11 46\r",
+ "9 11 47\r",
+ "9 11 48\r",
+ "9 11 49\r",
+ "9 11 50\r",
+ "9 11 51\r",
+ "9 11 52\r",
+ "9 11 53\r",
+ "9 11 54\r",
+ "9 11 55\r",
+ "9 11 56\r",
+ "9 11 57\r",
+ "9 11 58\r",
+ "9 12 1\r",
+ "9 12 2\r",
+ "9 12 3\r",
+ "9 12 4\r",
+ "9 12 5\r",
+ "9 12 6\r",
+ "9 12 7\r",
+ "9 12 8\r",
+ "9 12 9\r",
+ "9 12 10\r",
+ "9 12 11\r",
+ "9 12 12\r",
+ "9 12 13\r",
+ "9 12 14\r",
+ "9 12 15\r",
+ "9 12 16\r",
+ "9 12 17\r",
+ "9 12 18\r",
+ "9 12 19\r",
+ "9 12 20\r",
+ "9 12 21\r",
+ "9 12 22\r",
+ "9 12 23\r",
+ "9 12 24\r",
+ "9 12 25\r",
+ "9 12 26\r",
+ "9 12 27\r",
+ "9 12 28\r",
+ "9 12 29\r",
+ "9 12 30\r",
+ "9 12 31\r",
+ "9 12 32\r",
+ "9 12 33\r",
+ "9 12 34\r",
+ "9 12 35\r",
+ "9 12 36\r",
+ "9 12 37\r",
+ "9 12 38\r",
+ "9 12 39\r",
+ "9 12 40\r",
+ "9 12 41\r",
+ "9 12 42\r",
+ "9 12 43\r",
+ "9 12 44\r",
+ "9 12 45\r",
+ "9 12 46\r",
+ "9 12 47\r",
+ "9 12 48\r",
+ "9 12 49\r",
+ "9 12 50\r",
+ "9 12 51\r",
+ "9 12 52\r",
+ "9 12 53\r",
+ "9 12 54\r",
+ "9 12 55\r",
+ "9 12 56\r",
+ "9 12 57\r",
+ "9 12 58\r",
+ "9 13 1\r",
+ "9 13 2\r",
+ "9 13 3\r",
+ "9 13 4\r",
+ "9 13 5\r",
+ "9 13 6\r",
+ "9 13 7\r",
+ "9 13 8\r",
+ "9 13 9\r",
+ "9 13 10\r",
+ "9 13 11\r",
+ "9 13 12\r",
+ "9 13 13\r",
+ "9 13 14\r",
+ "9 13 15\r",
+ "9 13 16\r",
+ "9 13 17\r",
+ "9 13 18\r",
+ "9 13 19\r",
+ "9 13 20\r",
+ "9 13 21\r",
+ "9 13 22\r",
+ "9 13 23\r",
+ "9 13 24\r",
+ "9 13 25\r",
+ "9 13 26\r",
+ "9 13 27\r",
+ "9 13 28\r",
+ "9 13 29\r",
+ "9 13 30\r",
+ "9 13 31\r",
+ "9 13 32\r",
+ "9 13 33\r",
+ "9 13 34\r",
+ "9 13 35\r",
+ "9 13 36\r",
+ "9 13 37\r",
+ "9 13 38\r",
+ "9 13 39\r",
+ "9 13 40\r",
+ "9 13 41\r",
+ "9 13 42\r",
+ "9 13 43\r",
+ "9 13 44\r",
+ "9 13 45\r",
+ "9 13 46\r",
+ "9 13 47\r",
+ "9 13 48\r",
+ "9 13 49\r",
+ "9 13 50\r",
+ "9 13 51\r",
+ "9 13 52\r",
+ "9 13 53\r",
+ "9 13 54\r",
+ "9 13 55\r",
+ "9 13 56\r",
+ "9 13 57\r",
+ "9 13 58\r",
+ "9 14 1\r",
+ "9 14 2\r",
+ "9 14 3\r",
+ "9 14 4\r",
+ "9 14 5\r",
+ "9 14 6\r",
+ "9 14 7\r",
+ "9 14 8\r",
+ "9 14 9\r",
+ "9 14 10\r",
+ "9 14 11\r",
+ "9 14 12\r",
+ "9 14 13\r",
+ "9 14 14\r",
+ "9 14 15\r",
+ "9 14 16\r",
+ "9 14 17\r",
+ "9 14 18\r",
+ "9 14 19\r",
+ "9 14 20\r",
+ "9 14 21\r",
+ "9 14 22\r",
+ "9 14 23\r",
+ "9 14 24\r",
+ "9 14 25\r",
+ "9 14 26\r",
+ "9 14 27\r",
+ "9 14 28\r",
+ "9 14 29\r",
+ "9 14 30\r",
+ "9 14 31\r",
+ "9 14 32\r",
+ "9 14 33\r",
+ "9 14 34\r",
+ "9 14 35\r",
+ "9 14 36\r",
+ "9 14 37\r",
+ "9 14 38\r",
+ "9 14 39\r",
+ "9 14 40\r",
+ "9 14 41\r",
+ "9 14 42\r",
+ "9 14 43\r",
+ "9 14 44\r",
+ "9 14 45\r",
+ "9 14 46\r",
+ "9 14 47\r",
+ "9 14 48\r",
+ "9 14 49\r",
+ "9 14 50\r",
+ "9 14 51\r",
+ "9 14 52\r",
+ "9 14 53\r",
+ "9 14 54\r",
+ "9 14 55\r",
+ "9 14 56\r",
+ "9 14 57\r",
+ "9 14 58\r",
+ "9 15 1\r",
+ "9 15 2\r",
+ "9 15 3\r",
+ "9 15 4\r",
+ "9 15 5\r",
+ "9 15 6\r",
+ "9 15 7\r",
+ "9 15 8\r",
+ "9 15 9\r",
+ "9 15 10\r",
+ "9 15 11\r",
+ "9 15 12\r",
+ "9 15 13\r",
+ "9 15 14\r",
+ "9 15 15\r",
+ "9 15 16\r",
+ "9 15 17\r",
+ "9 15 18\r",
+ "9 15 19\r",
+ "9 15 20\r",
+ "9 15 21\r",
+ "9 15 22\r",
+ "9 15 23\r",
+ "9 15 24\r",
+ "9 15 25\r",
+ "9 15 26\r",
+ "9 15 27\r",
+ "9 15 28\r",
+ "9 15 29\r",
+ "9 15 30\r",
+ "9 15 31\r",
+ "9 15 32\r",
+ "9 15 33\r",
+ "9 15 34\r",
+ "9 15 35\r",
+ "9 15 36\r",
+ "9 15 37\r",
+ "9 15 38\r",
+ "9 15 39\r",
+ "9 15 40\r",
+ "9 15 41\r",
+ "9 15 42\r",
+ "9 15 43\r",
+ "9 15 44\r",
+ "9 15 45\r",
+ "9 15 46\r",
+ "9 15 47\r",
+ "9 15 48\r",
+ "9 15 49\r",
+ "9 15 50\r",
+ "9 15 51\r",
+ "9 15 52\r",
+ "9 15 53\r",
+ "9 15 54\r",
+ "9 15 55\r",
+ "9 15 56\r",
+ "9 15 57\r",
+ "9 15 58\r",
+ "9 16 1\r",
+ "9 16 2\r",
+ "9 16 3\r",
+ "9 16 4\r",
+ "9 16 5\r",
+ "9 16 6\r",
+ "9 16 7\r",
+ "9 16 8\r",
+ "9 16 9\r",
+ "9 16 10\r",
+ "9 16 11\r",
+ "9 16 12\r",
+ "9 16 13\r",
+ "9 16 14\r",
+ "9 16 15\r",
+ "9 16 16\r",
+ "9 16 17\r",
+ "9 16 18\r",
+ "9 16 19\r",
+ "9 16 20\r",
+ "9 16 21\r",
+ "9 16 22\r",
+ "9 16 23\r",
+ "9 16 24\r",
+ "9 16 25\r",
+ "9 16 26\r",
+ "9 16 27\r",
+ "9 16 28\r",
+ "9 16 29\r",
+ "9 16 30\r",
+ "9 16 31\r",
+ "9 16 32\r",
+ "9 16 33\r",
+ "9 16 34\r",
+ "9 16 35\r",
+ "9 16 36\r",
+ "9 16 37\r",
+ "9 16 38\r",
+ "9 16 39\r",
+ "9 16 40\r",
+ "9 16 41\r",
+ "9 16 42\r",
+ "9 16 43\r",
+ "9 16 44\r",
+ "9 16 45\r",
+ "9 16 46\r",
+ "9 16 47\r",
+ "9 16 48\r",
+ "9 16 49\r",
+ "9 16 50\r",
+ "9 16 51\r",
+ "9 16 52\r",
+ "9 16 53\r",
+ "9 16 54\r",
+ "9 16 55\r",
+ "9 16 56\r",
+ "9 16 57\r",
+ "9 16 58\r",
+ "9 17 1\r",
+ "9 17 2\r",
+ "9 17 3\r",
+ "9 17 4\r",
+ "9 17 5\r",
+ "9 17 6\r",
+ "9 17 7\r",
+ "9 17 8\r",
+ "9 17 9\r",
+ "9 17 10\r",
+ "9 17 11\r",
+ "9 17 12\r",
+ "9 17 13\r",
+ "9 17 14\r",
+ "9 17 15\r",
+ "9 17 16\r",
+ "9 17 17\r",
+ "9 17 18\r",
+ "9 17 19\r",
+ "9 17 20\r",
+ "9 17 21\r",
+ "9 17 22\r",
+ "9 17 23\r",
+ "9 17 24\r",
+ "9 17 25\r",
+ "9 17 26\r",
+ "9 17 27\r",
+ "9 17 28\r",
+ "9 17 29\r",
+ "9 17 30\r",
+ "9 17 31\r",
+ "9 17 32\r",
+ "9 17 33\r",
+ "9 17 34\r",
+ "9 17 35\r",
+ "9 17 36\r",
+ "9 17 37\r",
+ "9 17 38\r",
+ "9 17 39\r",
+ "9 17 40\r",
+ "9 17 41\r",
+ "9 17 42\r",
+ "9 17 43\r",
+ "9 17 44\r",
+ "9 17 45\r",
+ "9 17 46\r",
+ "9 17 47\r",
+ "9 17 48\r",
+ "9 17 49\r",
+ "9 17 50\r",
+ "9 17 51\r",
+ "9 17 52\r",
+ "9 17 53\r",
+ "9 17 54\r",
+ "9 17 55\r",
+ "9 17 56\r",
+ "9 17 57\r",
+ "9 17 58\r",
+ "9 18 1\r",
+ "9 18 2\r",
+ "9 18 3\r",
+ "9 18 4\r",
+ "9 18 5\r",
+ "9 18 6\r",
+ "9 18 7\r",
+ "9 18 8\r",
+ "9 18 9\r",
+ "9 18 10\r",
+ "9 18 11\r",
+ "9 18 12\r",
+ "9 18 13\r",
+ "9 18 14\r",
+ "9 18 15\r",
+ "9 18 16\r",
+ "9 18 17\r",
+ "9 18 18\r",
+ "9 18 19\r",
+ "9 18 20\r",
+ "9 18 21\r",
+ "9 18 22\r",
+ "9 18 23\r",
+ "9 18 24\r",
+ "9 18 25\r",
+ "9 18 26\r",
+ "9 18 27\r",
+ "9 18 28\r",
+ "9 18 29\r",
+ "9 18 30\r",
+ "9 18 31\r",
+ "9 18 32\r",
+ "9 18 33\r",
+ "9 18 34\r",
+ "9 18 35\r",
+ "9 18 36\r",
+ "9 18 37\r",
+ "9 18 38\r",
+ "9 18 39\r",
+ "9 18 40\r",
+ "9 18 41\r",
+ "9 18 42\r",
+ "9 18 43\r",
+ "9 18 44\r",
+ "9 18 45\r",
+ "9 18 46\r",
+ "9 18 47\r",
+ "9 18 48\r",
+ "9 18 49\r",
+ "9 18 50\r",
+ "9 18 51\r",
+ "9 18 52\r",
+ "9 18 53\r",
+ "9 18 54\r",
+ "9 18 55\r",
+ "9 18 56\r",
+ "9 18 57\r",
+ "9 18 58\r",
+ "9 19 1\r",
+ "9 19 2\r",
+ "9 19 3\r",
+ "9 19 4\r",
+ "9 19 5\r",
+ "9 19 6\r",
+ "9 19 7\r",
+ "9 19 8\r",
+ "9 19 9\r",
+ "9 19 10\r",
+ "9 19 11\r",
+ "9 19 12\r",
+ "9 19 13\r",
+ "9 19 14\r",
+ "9 19 15\r",
+ "9 19 16\r",
+ "9 19 17\r",
+ "9 19 18\r",
+ "9 19 19\r",
+ "9 19 20\r",
+ "9 19 21\r",
+ "9 19 22\r",
+ "9 19 23\r",
+ "9 19 24\r",
+ "9 19 25\r",
+ "9 19 26\r",
+ "9 19 27\r",
+ "9 19 28\r",
+ "9 19 29\r",
+ "9 19 30\r",
+ "9 19 31\r",
+ "9 19 32\r",
+ "9 19 33\r",
+ "9 19 34\r",
+ "9 19 35\r",
+ "9 19 36\r",
+ "9 19 37\r",
+ "9 19 38\r",
+ "9 19 39\r",
+ "9 19 40\r",
+ "9 19 41\r",
+ "9 19 42\r",
+ "9 19 43\r",
+ "9 19 44\r",
+ "9 19 45\r",
+ "9 19 46\r",
+ "9 19 47\r",
+ "9 19 48\r",
+ "9 19 49\r",
+ "9 19 50\r",
+ "9 19 51\r",
+ "9 19 52\r",
+ "9 19 53\r",
+ "9 19 54\r",
+ "9 19 55\r",
+ "9 19 56\r",
+ "9 19 57\r",
+ "9 19 58\r",
+ "9 20 1\r",
+ "9 20 2\r",
+ "9 20 3\r",
+ "9 20 4\r",
+ "9 20 5\r",
+ "9 20 6\r",
+ "9 20 7\r",
+ "9 20 8\r",
+ "9 20 9\r",
+ "9 20 10\r",
+ "9 20 11\r",
+ "9 20 12\r",
+ "9 20 13\r",
+ "9 20 14\r",
+ "9 20 15\r",
+ "9 20 16\r",
+ "9 20 17\r",
+ "9 20 18\r",
+ "9 20 19\r",
+ "9 20 20\r",
+ "9 20 21\r",
+ "9 20 22\r",
+ "9 20 23\r",
+ "9 20 24\r",
+ "9 20 25\r",
+ "9 20 26\r",
+ "9 20 27\r",
+ "9 20 28\r",
+ "9 20 29\r",
+ "9 20 30\r",
+ "9 20 31\r",
+ "9 20 32\r",
+ "9 20 33\r",
+ "9 20 34\r",
+ "9 20 35\r",
+ "9 20 36\r",
+ "9 20 37\r",
+ "9 20 38\r",
+ "9 20 39\r",
+ "9 20 40\r",
+ "9 20 41\r",
+ "9 20 42\r",
+ "9 20 43\r",
+ "9 20 44\r",
+ "9 20 45\r",
+ "9 20 46\r",
+ "9 20 47\r",
+ "9 20 48\r",
+ "9 20 49\r",
+ "9 20 50\r",
+ "9 20 51\r",
+ "9 20 52\r",
+ "9 20 53\r",
+ "9 20 54\r",
+ "9 20 55\r",
+ "9 20 56\r",
+ "9 20 57\r",
+ "9 20 58\r",
+ "9 21 1\r",
+ "9 21 2\r",
+ "9 21 3\r",
+ "9 21 4\r",
+ "9 21 5\r",
+ "9 21 6\r",
+ "9 21 7\r",
+ "9 21 8\r",
+ "9 21 9\r",
+ "9 21 10\r",
+ "9 21 11\r",
+ "9 21 12\r",
+ "9 21 13\r",
+ "9 21 14\r",
+ "9 21 15\r",
+ "9 21 16\r",
+ "9 21 17\r",
+ "9 21 18\r",
+ "9 21 19\r",
+ "9 21 20\r",
+ "9 21 21\r",
+ "9 21 22\r",
+ "9 21 23\r",
+ "9 21 24\r",
+ "9 21 25\r",
+ "9 21 26\r",
+ "9 21 27\r",
+ "9 21 28\r",
+ "9 21 29\r",
+ "9 21 30\r",
+ "9 21 31\r",
+ "9 21 32\r",
+ "9 21 33\r",
+ "9 21 34\r",
+ "9 21 35\r",
+ "9 21 36\r",
+ "9 21 37\r",
+ "9 21 38\r",
+ "9 21 39\r",
+ "9 21 40\r",
+ "9 21 41\r",
+ "9 21 42\r",
+ "9 21 43\r",
+ "9 21 44\r",
+ "9 21 45\r",
+ "9 21 46\r",
+ "9 21 47\r",
+ "9 21 48\r",
+ "9 21 49\r",
+ "9 21 50\r",
+ "9 21 51\r",
+ "9 21 52\r",
+ "9 21 53\r",
+ "9 21 54\r",
+ "9 21 55\r",
+ "9 21 56\r",
+ "9 21 57\r",
+ "9 21 58\r",
+ "9 22 1\r",
+ "9 22 2\r",
+ "9 22 3\r",
+ "9 22 4\r",
+ "9 22 5\r",
+ "9 22 6\r",
+ "9 22 7\r",
+ "9 22 8\r",
+ "9 22 9\r",
+ "9 22 10\r",
+ "9 22 11\r",
+ "9 22 12\r",
+ "9 22 13\r",
+ "9 22 14\r",
+ "9 22 15\r",
+ "9 22 16\r",
+ "9 22 17\r",
+ "9 22 18\r",
+ "9 22 19\r",
+ "9 22 20\r",
+ "9 22 21\r",
+ "9 22 22\r",
+ "9 22 23\r",
+ "9 22 24\r",
+ "9 22 25\r",
+ "9 22 26\r",
+ "9 22 27\r",
+ "9 22 28\r",
+ "9 22 29\r",
+ "9 22 30\r",
+ "9 22 31\r",
+ "9 22 32\r",
+ "9 22 33\r",
+ "9 22 34\r",
+ "9 22 35\r",
+ "9 22 36\r",
+ "9 22 37\r",
+ "9 22 38\r",
+ "9 22 39\r",
+ "9 22 40\r",
+ "9 22 41\r",
+ "9 22 42\r",
+ "9 22 43\r",
+ "9 22 44\r",
+ "9 22 45\r",
+ "9 22 46\r",
+ "9 22 47\r",
+ "9 22 48\r",
+ "9 22 49\r",
+ "9 22 50\r",
+ "9 22 51\r",
+ "9 22 52\r",
+ "9 22 53\r",
+ "9 22 54\r",
+ "9 22 55\r",
+ "9 22 56\r",
+ "9 22 57\r",
+ "9 22 58\r",
+ "9 23 1\r",
+ "9 23 2\r",
+ "9 23 3\r",
+ "9 23 4\r",
+ "9 23 5\r",
+ "9 23 6\r",
+ "9 23 7\r",
+ "9 23 8\r",
+ "9 23 9\r",
+ "9 23 10\r",
+ "9 23 11\r",
+ "9 23 12\r",
+ "9 23 13\r",
+ "9 23 14\r",
+ "9 23 15\r",
+ "9 23 16\r",
+ "9 23 17\r",
+ "9 23 18\r",
+ "9 23 19\r",
+ "9 23 20\r",
+ "9 23 21\r",
+ "9 23 22\r",
+ "9 23 23\r",
+ "9 23 24\r",
+ "9 23 25\r",
+ "9 23 26\r",
+ "9 23 27\r",
+ "9 23 28\r",
+ "9 23 29\r",
+ "9 23 30\r",
+ "9 23 31\r",
+ "9 23 32\r",
+ "9 23 33\r",
+ "9 23 34\r",
+ "9 23 35\r",
+ "9 23 36\r",
+ "9 23 37\r",
+ "9 23 38\r",
+ "9 23 39\r",
+ "9 23 40\r",
+ "9 23 41\r",
+ "9 23 42\r",
+ "9 23 43\r",
+ "9 23 44\r",
+ "9 23 45\r",
+ "9 23 46\r",
+ "9 23 47\r",
+ "9 23 48\r",
+ "9 23 49\r",
+ "9 23 50\r",
+ "9 23 51\r",
+ "9 23 52\r",
+ "9 23 53\r",
+ "9 23 54\r",
+ "9 23 55\r",
+ "9 23 56\r",
+ "9 23 57\r",
+ "9 23 58\r",
+ "9 24 1\r",
+ "9 24 2\r",
+ "9 24 3\r",
+ "9 24 4\r",
+ "9 24 5\r",
+ "9 24 6\r",
+ "9 24 7\r",
+ "9 24 8\r",
+ "9 24 9\r",
+ "9 24 10\r",
+ "9 24 11\r",
+ "9 24 12\r",
+ "9 24 13\r",
+ "9 24 14\r",
+ "9 24 15\r",
+ "9 24 16\r",
+ "9 24 17\r",
+ "9 24 18\r",
+ "9 24 19\r",
+ "9 24 20\r",
+ "9 24 21\r",
+ "9 24 22\r",
+ "9 24 23\r",
+ "9 24 24\r",
+ "9 24 25\r",
+ "9 24 26\r",
+ "9 24 27\r",
+ "9 24 28\r",
+ "9 24 29\r",
+ "9 24 30\r",
+ "9 24 31\r",
+ "9 24 32\r",
+ "9 24 33\r",
+ "9 24 34\r",
+ "9 24 35\r",
+ "9 24 36\r",
+ "9 24 37\r",
+ "9 24 38\r",
+ "9 24 39\r",
+ "9 24 40\r",
+ "9 24 41\r",
+ "9 24 42\r",
+ "9 24 43\r",
+ "9 24 44\r",
+ "9 24 45\r",
+ "9 24 46\r",
+ "9 24 47\r",
+ "9 24 48\r",
+ "9 24 49\r",
+ "9 24 50\r",
+ "9 24 51\r",
+ "9 24 52\r",
+ "9 24 53\r",
+ "9 24 54\r",
+ "9 24 55\r",
+ "9 24 56\r",
+ "9 24 57\r",
+ "9 24 58\r",
+ "9 25 1\r",
+ "9 25 2\r",
+ "9 25 3\r",
+ "9 25 4\r",
+ "9 25 5\r",
+ "9 25 6\r",
+ "9 25 7\r",
+ "9 25 8\r",
+ "9 25 9\r",
+ "9 25 10\r",
+ "9 25 11\r",
+ "9 25 12\r",
+ "9 25 13\r",
+ "9 25 14\r",
+ "9 25 15\r",
+ "9 25 16\r",
+ "9 25 17\r",
+ "9 25 18\r",
+ "9 25 19\r",
+ "9 25 20\r",
+ "9 25 21\r",
+ "9 25 22\r",
+ "9 25 23\r",
+ "9 25 24\r",
+ "9 25 25\r",
+ "9 25 26\r",
+ "9 25 27\r",
+ "9 25 28\r",
+ "9 25 29\r",
+ "9 25 30\r",
+ "9 25 31\r",
+ "9 25 32\r",
+ "9 25 33\r",
+ "9 25 34\r",
+ "9 25 35\r",
+ "9 25 36\r",
+ "9 25 37\r",
+ "9 25 38\r",
+ "9 25 39\r",
+ "9 25 40\r",
+ "9 25 41\r",
+ "9 25 42\r",
+ "9 25 43\r",
+ "9 25 44\r",
+ "9 25 45\r",
+ "9 25 46\r",
+ "9 25 47\r",
+ "9 25 48\r",
+ "9 25 49\r",
+ "9 25 50\r",
+ "9 25 51\r",
+ "9 25 52\r",
+ "9 25 53\r",
+ "9 25 54\r",
+ "9 25 55\r",
+ "9 25 56\r",
+ "9 25 57\r",
+ "9 25 58\r",
+ "9 26 1\r",
+ "9 26 2\r",
+ "9 26 3\r",
+ "9 26 4\r",
+ "9 26 5\r",
+ "9 26 6\r",
+ "9 26 7\r",
+ "9 26 8\r",
+ "9 26 9\r",
+ "9 26 10\r",
+ "9 26 11\r",
+ "9 26 12\r",
+ "9 26 13\r",
+ "9 26 14\r",
+ "9 26 15\r",
+ "9 26 16\r",
+ "9 26 17\r",
+ "9 26 18\r",
+ "9 26 19\r",
+ "9 26 20\r",
+ "9 26 21\r",
+ "9 26 22\r",
+ "9 26 23\r",
+ "9 26 24\r",
+ "9 26 25\r",
+ "9 26 26\r",
+ "9 26 27\r",
+ "9 26 28\r",
+ "9 26 29\r",
+ "9 26 30\r",
+ "9 26 31\r",
+ "9 26 32\r",
+ "9 26 33\r",
+ "9 26 34\r",
+ "9 26 35\r",
+ "9 26 36\r",
+ "9 26 37\r",
+ "9 26 38\r",
+ "9 26 39\r",
+ "9 26 40\r",
+ "9 26 41\r",
+ "9 26 42\r",
+ "9 26 43\r",
+ "9 26 44\r",
+ "9 26 45\r",
+ "9 26 46\r",
+ "9 26 47\r",
+ "9 26 48\r",
+ "9 26 49\r",
+ "9 26 50\r",
+ "9 26 51\r",
+ "9 26 52\r",
+ "9 26 53\r",
+ "9 26 54\r",
+ "9 26 55\r",
+ "9 26 56\r",
+ "9 26 57\r",
+ "9 26 58\r",
+ "9 27 1\r",
+ "9 27 2\r",
+ "9 27 3\r",
+ "9 27 4\r",
+ "9 27 5\r",
+ "9 27 6\r",
+ "9 27 7\r",
+ "9 27 8\r",
+ "9 27 9\r",
+ "9 27 10\r",
+ "9 27 11\r",
+ "9 27 12\r",
+ "9 27 13\r",
+ "9 27 14\r",
+ "9 27 15\r",
+ "9 27 16\r",
+ "9 27 17\r",
+ "9 27 18\r",
+ "9 27 19\r",
+ "9 27 20\r",
+ "9 27 21\r",
+ "9 27 22\r",
+ "9 27 23\r",
+ "9 27 24\r",
+ "9 27 25\r",
+ "9 27 26\r",
+ "9 27 27\r",
+ "9 27 28\r",
+ "9 27 29\r",
+ "9 27 30\r",
+ "9 27 31\r",
+ "9 27 32\r",
+ "9 27 33\r",
+ "9 27 34\r",
+ "9 27 35\r",
+ "9 27 36\r",
+ "9 27 37\r",
+ "9 27 38\r",
+ "9 27 39\r",
+ "9 27 40\r",
+ "9 27 41\r",
+ "9 27 42\r",
+ "9 27 43\r",
+ "9 27 44\r",
+ "9 27 45\r",
+ "9 27 46\r",
+ "9 27 47\r",
+ "9 27 48\r",
+ "9 27 49\r",
+ "9 27 50\r",
+ "9 27 51\r",
+ "9 27 52\r",
+ "9 27 53\r",
+ "9 27 54\r",
+ "9 27 55\r",
+ "9 27 56\r",
+ "9 27 57\r",
+ "9 27 58\r",
+ "9 28 1\r",
+ "9 28 2\r",
+ "9 28 3\r",
+ "9 28 4\r",
+ "9 28 5\r",
+ "9 28 6\r",
+ "9 28 7\r",
+ "9 28 8\r",
+ "9 28 9\r",
+ "9 28 10\r",
+ "9 28 11\r",
+ "9 28 12\r",
+ "9 28 13\r",
+ "9 28 14\r",
+ "9 28 15\r",
+ "9 28 16\r",
+ "9 28 17\r",
+ "9 28 18\r",
+ "9 28 19\r",
+ "9 28 20\r",
+ "9 28 21\r",
+ "9 28 22\r",
+ "9 28 23\r",
+ "9 28 24\r",
+ "9 28 25\r",
+ "9 28 26\r",
+ "9 28 27\r",
+ "9 28 28\r",
+ "9 28 29\r",
+ "9 28 30\r",
+ "9 28 31\r",
+ "9 28 32\r",
+ "9 28 33\r",
+ "9 28 34\r",
+ "9 28 35\r",
+ "9 28 36\r",
+ "9 28 37\r",
+ "9 28 38\r",
+ "9 28 39\r",
+ "9 28 40\r",
+ "9 28 41\r",
+ "9 28 42\r",
+ "9 28 43\r",
+ "9 28 44\r",
+ "9 28 45\r",
+ "9 28 46\r",
+ "9 28 47\r",
+ "9 28 48\r",
+ "9 28 49\r",
+ "9 28 50\r",
+ "9 28 51\r",
+ "9 28 52\r",
+ "9 28 53\r",
+ "9 28 54\r",
+ "9 28 55\r",
+ "9 28 56\r",
+ "9 28 57\r",
+ "9 28 58\r",
+ "9 29 1\r",
+ "9 29 2\r",
+ "9 29 3\r",
+ "9 29 4\r",
+ "9 29 5\r",
+ "9 29 6\r",
+ "9 29 7\r",
+ "9 29 8\r",
+ "9 29 9\r",
+ "9 29 10\r",
+ "9 29 11\r",
+ "9 29 12\r",
+ "9 29 13\r",
+ "9 29 14\r",
+ "9 29 15\r",
+ "9 29 16\r",
+ "9 29 17\r",
+ "9 29 18\r",
+ "9 29 19\r",
+ "9 29 20\r",
+ "9 29 21\r",
+ "9 29 22\r",
+ "9 29 23\r",
+ "9 29 24\r",
+ "9 29 25\r",
+ "9 29 26\r",
+ "9 29 27\r",
+ "9 29 28\r",
+ "9 29 29\r",
+ "9 29 30\r",
+ "9 29 31\r",
+ "9 29 32\r",
+ "9 29 33\r",
+ "9 29 34\r",
+ "9 29 35\r",
+ "9 29 36\r",
+ "9 29 37\r",
+ "9 29 38\r",
+ "9 29 39\r",
+ "9 29 40\r",
+ "9 29 41\r",
+ "9 29 42\r",
+ "9 29 43\r",
+ "9 29 44\r",
+ "9 29 45\r",
+ "9 29 46\r",
+ "9 29 47\r",
+ "9 29 48\r",
+ "9 29 49\r",
+ "9 29 50\r",
+ "9 29 51\r",
+ "9 29 52\r",
+ "9 29 53\r",
+ "9 29 54\r",
+ "9 29 55\r",
+ "9 29 56\r",
+ "9 29 57\r",
+ "9 29 58\r",
+ "9 30 1\r",
+ "9 30 2\r",
+ "9 30 3\r",
+ "9 30 4\r",
+ "9 30 5\r",
+ "9 30 6\r",
+ "9 30 7\r",
+ "9 30 8\r",
+ "9 30 9\r",
+ "9 30 10\r",
+ "9 30 11\r",
+ "9 30 12\r",
+ "9 30 13\r",
+ "9 30 14\r",
+ "9 30 15\r",
+ "9 30 16\r",
+ "9 30 17\r",
+ "9 30 18\r",
+ "9 30 19\r",
+ "9 30 20\r",
+ "9 30 21\r",
+ "9 30 22\r",
+ "9 30 23\r",
+ "9 30 24\r",
+ "9 30 25\r",
+ "9 30 26\r",
+ "9 30 27\r",
+ "9 30 28\r",
+ "9 30 29\r",
+ "9 30 30\r",
+ "9 30 31\r",
+ "9 30 32\r",
+ "9 30 33\r",
+ "9 30 34\r",
+ "9 30 35\r",
+ "9 30 36\r",
+ "9 30 37\r",
+ "9 30 38\r",
+ "9 30 39\r",
+ "9 30 40\r",
+ "9 30 41\r",
+ "9 30 42\r",
+ "9 30 43\r",
+ "9 30 44\r",
+ "9 30 45\r",
+ "9 30 46\r",
+ "9 30 47\r",
+ "9 30 48\r",
+ "9 30 49\r",
+ "9 30 50\r",
+ "9 30 51\r",
+ "9 30 52\r",
+ "9 30 53\r",
+ "9 30 54\r",
+ "9 30 55\r",
+ "9 30 56\r",
+ "9 30 57\r",
+ "9 30 58\r",
+ "9 31 1\r",
+ "9 31 2\r",
+ "9 31 3\r",
+ "9 31 4\r",
+ "9 31 5\r",
+ "9 31 6\r",
+ "9 31 7\r",
+ "9 31 8\r",
+ "9 31 9\r",
+ "9 31 10\r",
+ "9 31 11\r",
+ "9 31 12\r",
+ "9 31 13\r",
+ "9 31 14\r",
+ "9 31 15\r",
+ "9 31 16\r",
+ "9 31 17\r",
+ "9 31 18\r",
+ "9 31 19\r",
+ "9 31 20\r",
+ "9 31 21\r",
+ "9 31 22\r",
+ "9 31 23\r",
+ "9 31 24\r",
+ "9 31 25\r",
+ "9 31 26\r",
+ "9 31 27\r",
+ "9 31 28\r",
+ "9 31 29\r",
+ "9 31 30\r",
+ "9 31 31\r",
+ "9 31 32\r",
+ "9 31 33\r",
+ "9 31 34\r",
+ "9 31 35\r",
+ "9 31 36\r",
+ "9 31 37\r",
+ "9 31 38\r",
+ "9 31 39\r",
+ "9 31 40\r",
+ "9 31 41\r",
+ "9 31 42\r",
+ "9 31 43\r",
+ "9 31 44\r",
+ "9 31 45\r",
+ "9 31 46\r",
+ "9 31 47\r",
+ "9 31 48\r",
+ "9 31 49\r",
+ "9 31 50\r",
+ "9 31 51\r",
+ "9 31 52\r",
+ "9 31 53\r",
+ "9 31 54\r",
+ "9 31 55\r",
+ "9 31 56\r",
+ "9 31 57\r",
+ "9 31 58\r",
+ "9 32 1\r",
+ "9 32 2\r",
+ "9 32 3\r",
+ "9 32 4\r",
+ "9 32 5\r",
+ "9 32 6\r",
+ "9 32 7\r",
+ "9 32 8\r",
+ "9 32 9\r",
+ "9 32 10\r",
+ "9 32 11\r",
+ "9 32 12\r",
+ "9 32 13\r",
+ "9 32 14\r",
+ "9 32 15\r",
+ "9 32 16\r",
+ "9 32 17\r",
+ "9 32 18\r",
+ "9 32 19\r",
+ "9 32 20\r",
+ "9 32 21\r",
+ "9 32 22\r",
+ "9 32 23\r",
+ "9 32 24\r",
+ "9 32 25\r",
+ "9 32 26\r",
+ "9 32 27\r",
+ "9 32 28\r",
+ "9 32 29\r",
+ "9 32 30\r",
+ "9 32 31\r",
+ "9 32 32\r",
+ "9 32 33\r",
+ "9 32 34\r",
+ "9 32 35\r",
+ "9 32 36\r",
+ "9 32 37\r",
+ "9 32 38\r",
+ "9 32 39\r",
+ "9 32 40\r",
+ "9 32 41\r",
+ "9 32 42\r",
+ "9 32 43\r",
+ "9 32 44\r",
+ "9 32 45\r",
+ "9 32 46\r",
+ "9 32 47\r",
+ "9 32 48\r",
+ "9 32 49\r",
+ "9 32 50\r",
+ "9 32 51\r",
+ "9 32 52\r",
+ "9 32 53\r",
+ "9 32 54\r",
+ "9 32 55\r",
+ "9 32 56\r",
+ "9 32 57\r",
+ "9 32 58\r",
+ "9 33 1\r",
+ "9 33 2\r",
+ "9 33 3\r",
+ "9 33 4\r",
+ "9 33 5\r",
+ "9 33 6\r",
+ "9 33 7\r",
+ "9 33 8"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\r",
+ "9 33 9\r",
+ "9 33 10\r",
+ "9 33 11\r",
+ "9 33 12\r",
+ "9 33 13\r",
+ "9 33 14\r",
+ "9 33 15\r",
+ "9 33 16\r",
+ "9 33 17\r",
+ "9 33 18\r",
+ "9 33 19\r",
+ "9 33 20\r",
+ "9 33 21\r",
+ "9 33 22\r",
+ "9 33 23\r",
+ "9 33 24\r",
+ "9 33 25\r",
+ "9 33 26\r",
+ "9 33 27\r",
+ "9 33 28\r",
+ "9 33 29\r",
+ "9 33 30\r",
+ "9 33 31\r",
+ "9 33 32\r",
+ "9 33 33\r",
+ "9 33 34\r",
+ "9 33 35\r",
+ "9 33 36\r",
+ "9 33 37\r",
+ "9 33 38\r",
+ "9 33 39\r",
+ "9 33 40\r",
+ "9 33 41\r",
+ "9 33 42\r",
+ "9 33 43\r",
+ "9 33 44\r",
+ "9 33 45\r",
+ "9 33 46\r",
+ "9 33 47\r",
+ "9 33 48\r",
+ "9 33 49\r",
+ "9 33 50\r",
+ "9 33 51\r",
+ "9 33 52\r",
+ "9 33 53\r",
+ "9 33 54\r",
+ "9 33 55\r",
+ "9 33 56\r",
+ "9 33 57\r",
+ "9 33 58\r",
+ "9 34 1\r",
+ "9 34 2\r",
+ "9 34 3\r",
+ "9 34 4\r",
+ "9 34 5\r",
+ "9 34 6\r",
+ "9 34 7\r",
+ "9 34 8\r",
+ "9 34 9\r",
+ "9 34 10\r",
+ "9 34 11\r",
+ "9 34 12\r",
+ "9 34 13\r",
+ "9 34 14\r",
+ "9 34 15\r",
+ "9 34 16\r",
+ "9 34 17\r",
+ "9 34 18\r",
+ "9 34 19\r",
+ "9 34 20\r",
+ "9 34 21\r",
+ "9 34 22\r",
+ "9 34 23\r",
+ "9 34 24\r",
+ "9 34 25\r",
+ "9 34 26\r",
+ "9 34 27\r",
+ "9 34 28\r",
+ "9 34 29\r",
+ "9 34 30\r",
+ "9 34 31\r",
+ "9 34 32\r",
+ "9 34 33\r",
+ "9 34 34\r",
+ "9 34 35\r",
+ "9 34 36\r",
+ "9 34 37\r",
+ "9 34 38\r",
+ "9 34 39\r",
+ "9 34 40\r",
+ "9 34 41\r",
+ "9 34 42\r",
+ "9 34 43\r",
+ "9 34 44\r",
+ "9 34 45\r",
+ "9 34 46\r",
+ "9 34 47\r",
+ "9 34 48\r",
+ "9 34 49\r",
+ "9 34 50\r",
+ "9 34 51\r",
+ "9 34 52\r",
+ "9 34 53\r",
+ "9 34 54\r",
+ "9 34 55\r",
+ "9 34 56\r",
+ "9 34 57\r",
+ "9 34 58\r",
+ "9 35 1\r",
+ "9 35 2\r",
+ "9 35 3\r",
+ "9 35 4\r",
+ "9 35 5\r",
+ "9 35 6\r",
+ "9 35 7\r",
+ "9 35 8\r",
+ "9 35 9\r",
+ "9 35 10\r",
+ "9 35 11\r",
+ "9 35 12\r",
+ "9 35 13\r",
+ "9 35 14\r",
+ "9 35 15\r",
+ "9 35 16\r",
+ "9 35 17\r",
+ "9 35 18\r",
+ "9 35 19\r",
+ "9 35 20\r",
+ "9 35 21\r",
+ "9 35 22\r",
+ "9 35 23\r",
+ "9 35 24\r",
+ "9 35 25\r",
+ "9 35 26\r",
+ "9 35 27\r",
+ "9 35 28\r",
+ "9 35 29\r",
+ "9 35 30\r",
+ "9 35 31\r",
+ "9 35 32\r",
+ "9 35 33\r",
+ "9 35 34\r",
+ "9 35 35\r",
+ "9 35 36\r",
+ "9 35 37\r",
+ "9 35 38\r",
+ "9 35 39\r",
+ "9 35 40\r",
+ "9 35 41\r",
+ "9 35 42\r",
+ "9 35 43\r",
+ "9 35 44\r",
+ "9 35 45\r",
+ "9 35 46\r",
+ "9 35 47\r",
+ "9 35 48\r",
+ "9 35 49\r",
+ "9 35 50\r",
+ "9 35 51\r",
+ "9 35 52\r",
+ "9 35 53\r",
+ "9 35 54\r",
+ "9 35 55\r",
+ "9 35 56\r",
+ "9 35 57\r",
+ "9 35 58\r",
+ "9 36 1\r",
+ "9 36 2\r",
+ "9 36 3\r",
+ "9 36 4\r",
+ "9 36 5\r",
+ "9 36 6\r",
+ "9 36 7\r",
+ "9 36 8\r",
+ "9 36 9\r",
+ "9 36 10\r",
+ "9 36 11\r",
+ "9 36 12\r",
+ "9 36 13\r",
+ "9 36 14\r",
+ "9 36 15\r",
+ "9 36 16\r",
+ "9 36 17\r",
+ "9 36 18\r",
+ "9 36 19\r",
+ "9 36 20\r",
+ "9 36 21\r",
+ "9 36 22\r",
+ "9 36 23\r",
+ "9 36 24\r",
+ "9 36 25\r",
+ "9 36 26\r",
+ "9 36 27\r",
+ "9 36 28\r",
+ "9 36 29\r",
+ "9 36 30\r",
+ "9 36 31\r",
+ "9 36 32\r",
+ "9 36 33\r",
+ "9 36 34\r",
+ "9 36 35\r",
+ "9 36 36\r",
+ "9 36 37\r",
+ "9 36 38\r",
+ "9 36 39\r",
+ "9 36 40\r",
+ "9 36 41\r",
+ "9 36 42\r",
+ "9 36 43\r",
+ "9 36 44\r",
+ "9 36 45\r",
+ "9 36 46\r",
+ "9 36 47\r",
+ "9 36 48\r",
+ "9 36 49\r",
+ "9 36 50\r",
+ "9 36 51\r",
+ "9 36 52\r",
+ "9 36 53\r",
+ "9 36 54\r",
+ "9 36 55\r",
+ "9 36 56\r",
+ "9 36 57\r",
+ "9 36 58\r",
+ "9 37 1\r",
+ "9 37 2\r",
+ "9 37 3\r",
+ "9 37 4\r",
+ "9 37 5\r",
+ "9 37 6\r",
+ "9 37 7\r",
+ "9 37 8\r",
+ "9 37 9\r",
+ "9 37 10\r",
+ "9 37 11\r",
+ "9 37 12\r",
+ "9 37 13\r",
+ "9 37 14\r",
+ "9 37 15\r",
+ "9 37 16\r",
+ "9 37 17\r",
+ "9 37 18\r",
+ "9 37 19\r",
+ "9 37 20\r",
+ "9 37 21\r",
+ "9 37 22\r",
+ "9 37 23\r",
+ "9 37 24\r",
+ "9 37 25\r",
+ "9 37 26\r",
+ "9 37 27\r",
+ "9 37 28\r",
+ "9 37 29\r",
+ "9 37 30\r",
+ "9 37 31\r",
+ "9 37 32\r",
+ "9 37 33\r",
+ "9 37 34\r",
+ "9 37 35\r",
+ "9 37 36\r",
+ "9 37 37\r",
+ "9 37 38\r",
+ "9 37 39\r",
+ "9 37 40\r",
+ "9 37 41\r",
+ "9 37 42\r",
+ "9 37 43\r",
+ "9 37 44\r",
+ "9 37 45\r",
+ "9 37 46\r",
+ "9 37 47\r",
+ "9 37 48\r",
+ "9 37 49\r",
+ "9 37 50\r",
+ "9 37 51\r",
+ "9 37 52\r",
+ "9 37 53\r",
+ "9 37 54\r",
+ "9 37 55\r",
+ "9 37 56\r",
+ "9 37 57\r",
+ "9 37 58\r",
+ "9 38 1\r",
+ "9 38 2\r",
+ "9 38 3\r",
+ "9 38 4\r",
+ "9 38 5\r",
+ "9 38 6\r",
+ "9 38 7\r",
+ "9 38 8\r",
+ "9 38 9\r",
+ "9 38 10\r",
+ "9 38 11\r",
+ "9 38 12\r",
+ "9 38 13\r",
+ "9 38 14\r",
+ "9 38 15\r",
+ "9 38 16\r",
+ "9 38 17\r",
+ "9 38 18\r",
+ "9 38 19\r",
+ "9 38 20\r",
+ "9 38 21\r",
+ "9 38 22\r",
+ "9 38 23\r",
+ "9 38 24\r",
+ "9 38 25\r",
+ "9 38 26\r",
+ "9 38 27\r",
+ "9 38 28\r",
+ "9 38 29\r",
+ "9 38 30\r",
+ "9 38 31\r",
+ "9 38 32\r",
+ "9 38 33\r",
+ "9 38 34\r",
+ "9 38 35\r",
+ "9 38 36\r",
+ "9 38 37\r",
+ "9 38 38\r",
+ "9 38 39\r",
+ "9 38 40\r",
+ "9 38 41\r",
+ "9 38 42\r",
+ "9 38 43\r",
+ "9 38 44\r",
+ "9 38 45\r",
+ "9 38 46\r",
+ "9 38 47\r",
+ "9 38 48\r",
+ "9 38 49\r",
+ "9 38 50\r",
+ "9 38 51\r",
+ "9 38 52\r",
+ "9 38 53\r",
+ "9 38 54\r",
+ "9 38 55\r",
+ "9 38 56\r",
+ "9 38 57\r",
+ "9 38 58\r",
+ "9 39 1\r",
+ "9 39 2\r",
+ "9 39 3\r",
+ "9 39 4\r",
+ "9 39 5\r",
+ "9 39 6\r",
+ "9 39 7\r",
+ "9 39 8\r",
+ "9 39 9\r",
+ "9 39 10\r",
+ "9 39 11\r",
+ "9 39 12\r",
+ "9 39 13\r",
+ "9 39 14\r",
+ "9 39 15\r",
+ "9 39 16\r",
+ "9 39 17\r",
+ "9 39 18\r",
+ "9 39 19\r",
+ "9 39 20\r",
+ "9 39 21\r",
+ "9 39 22\r",
+ "9 39 23\r",
+ "9 39 24\r",
+ "9 39 25\r",
+ "9 39 26\r",
+ "9 39 27\r",
+ "9 39 28\r",
+ "9 39 29\r",
+ "9 39 30\r",
+ "9 39 31\r",
+ "9 39 32\r",
+ "9 39 33\r",
+ "9 39 34\r",
+ "9 39 35\r",
+ "9 39 36\r",
+ "9 39 37\r",
+ "9 39 38\r",
+ "9 39 39\r",
+ "9 39 40\r",
+ "9 39 41\r",
+ "9 39 42\r",
+ "9 39 43\r",
+ "9 39 44\r",
+ "9 39 45\r",
+ "9 39 46\r",
+ "9 39 47\r",
+ "9 39 48\r",
+ "9 39 49\r",
+ "9 39 50\r",
+ "9 39 51\r",
+ "9 39 52\r",
+ "9 39 53\r",
+ "9 39 54\r",
+ "9 39 55\r",
+ "9 39 56\r",
+ "9 39 57\r",
+ "9 39 58\r",
+ "9 40 1\r",
+ "9 40 2\r",
+ "9 40 3\r",
+ "9 40 4\r",
+ "9 40 5\r",
+ "9 40 6\r",
+ "9 40 7\r",
+ "9 40 8\r",
+ "9 40 9\r",
+ "9 40 10\r",
+ "9 40 11\r",
+ "9 40 12\r",
+ "9 40 13\r",
+ "9 40 14\r",
+ "9 40 15\r",
+ "9 40 16\r",
+ "9 40 17\r",
+ "9 40 18\r",
+ "9 40 19\r",
+ "9 40 20\r",
+ "9 40 21\r",
+ "9 40 22\r",
+ "9 40 23\r",
+ "9 40 24\r",
+ "9 40 25\r",
+ "9 40 26\r",
+ "9 40 27\r",
+ "9 40 28\r",
+ "9 40 29\r",
+ "9 40 30\r",
+ "9 40 31\r",
+ "9 40 32\r",
+ "9 40 33\r",
+ "9 40 34\r",
+ "9 40 35\r",
+ "9 40 36\r",
+ "9 40 37\r",
+ "9 40 38\r",
+ "9 40 39\r",
+ "9 40 40\r",
+ "9 40 41\r",
+ "9 40 42\r",
+ "9 40 43\r",
+ "9 40 44\r",
+ "9 40 45\r",
+ "9 40 46\r",
+ "9 40 47\r",
+ "9 40 48\r",
+ "9 40 49\r",
+ "9 40 50\r",
+ "9 40 51\r",
+ "9 40 52\r",
+ "9 40 53\r",
+ "9 40 54\r",
+ "9 40 55\r",
+ "9 40 56\r",
+ "9 40 57\r",
+ "9 40 58\r",
+ "9 41 1\r",
+ "9 41 2\r",
+ "9 41 3\r",
+ "9 41 4\r",
+ "9 41 5\r",
+ "9 41 6\r",
+ "9 41 7\r",
+ "9 41 8\r",
+ "9 41 9\r",
+ "9 41 10\r",
+ "9 41 11\r",
+ "9 41 12\r",
+ "9 41 13\r",
+ "9 41 14\r",
+ "9 41 15\r",
+ "9 41 16\r",
+ "9 41 17\r",
+ "9 41 18\r",
+ "9 41 19\r",
+ "9 41 20\r",
+ "9 41 21\r",
+ "9 41 22\r",
+ "9 41 23\r",
+ "9 41 24\r",
+ "9 41 25\r",
+ "9 41 26\r",
+ "9 41 27\r",
+ "9 41 28\r",
+ "9 41 29\r",
+ "9 41 30\r",
+ "9 41 31\r",
+ "9 41 32\r",
+ "9 41 33\r",
+ "9 41 34\r",
+ "9 41 35\r",
+ "9 41 36\r",
+ "9 41 37\r",
+ "9 41 38\r",
+ "9 41 39\r",
+ "9 41 40\r",
+ "9 41 41\r",
+ "9 41 42\r",
+ "9 41 43\r",
+ "9 41 44\r",
+ "9 41 45\r",
+ "9 41 46\r",
+ "9 41 47\r",
+ "9 41 48\r",
+ "9 41 49\r",
+ "9 41 50\r",
+ "9 41 51\r",
+ "9 41 52\r",
+ "9 41 53\r",
+ "9 41 54\r",
+ "9 41 55\r",
+ "9 41 56\r",
+ "9 41 57\r",
+ "9 41 58\r",
+ "9 42 1\r",
+ "9 42 2\r",
+ "9 42 3\r",
+ "9 42 4\r",
+ "9 42 5\r",
+ "9 42 6\r",
+ "9 42 7\r",
+ "9 42 8\r",
+ "9 42 9\r",
+ "9 42 10\r",
+ "9 42 11\r",
+ "9 42 12\r",
+ "9 42 13\r",
+ "9 42 14\r",
+ "9 42 15\r",
+ "9 42 16\r",
+ "9 42 17\r",
+ "9 42 18\r",
+ "9 42 19\r",
+ "9 42 20\r",
+ "9 42 21\r",
+ "9 42 22\r",
+ "9 42 23\r",
+ "9 42 24\r",
+ "9 42 25\r",
+ "9 42 26\r",
+ "9 42 27\r",
+ "9 42 28\r",
+ "9 42 29\r",
+ "9 42 30\r",
+ "9 42 31\r",
+ "9 42 32\r",
+ "9 42 33\r",
+ "9 42 34\r",
+ "9 42 35\r",
+ "9 42 36\r",
+ "9 42 37\r",
+ "9 42 38\r",
+ "9 42 39\r",
+ "9 42 40\r",
+ "9 42 41\r",
+ "9 42 42\r",
+ "9 42 43\r",
+ "9 42 44\r",
+ "9 42 45\r",
+ "9 42 46\r",
+ "9 42 47\r",
+ "9 42 48\r",
+ "9 42 49\r",
+ "9 42 50\r",
+ "9 42 51\r",
+ "9 42 52\r",
+ "9 42 53\r",
+ "9 42 54\r",
+ "9 42 55\r",
+ "9 42 56\r",
+ "9 42 57\r",
+ "9 42 58\r",
+ "9 43 1\r",
+ "9 43 2\r",
+ "9 43 3\r",
+ "9 43 4\r",
+ "9 43 5\r",
+ "9 43 6\r",
+ "9 43 7\r",
+ "9 43 8\r",
+ "9 43 9\r",
+ "9 43 10\r",
+ "9 43 11\r",
+ "9 43 12\r",
+ "9 43 13\r",
+ "9 43 14\r",
+ "9 43 15\r",
+ "9 43 16\r",
+ "9 43 17\r",
+ "9 43 18\r",
+ "9 43 19\r",
+ "9 43 20\r",
+ "9 43 21\r",
+ "9 43 22\r",
+ "9 43 23\r",
+ "9 43 24\r",
+ "9 43 25\r",
+ "9 43 26\r",
+ "9 43 27\r",
+ "9 43 28\r",
+ "9 43 29\r",
+ "9 43 30\r",
+ "9 43 31\r",
+ "9 43 32\r",
+ "9 43 33\r",
+ "9 43 34\r",
+ "9 43 35\r",
+ "9 43 36\r",
+ "9 43 37\r",
+ "9 43 38\r",
+ "9 43 39\r",
+ "9 43 40\r",
+ "9 43 41\r",
+ "9 43 42\r",
+ "9 43 43\r",
+ "9 43 44\r",
+ "9 43 45\r",
+ "9 43 46\r",
+ "9 43 47\r",
+ "9 43 48\r",
+ "9 43 49\r",
+ "9 43 50\r",
+ "9 43 51\r",
+ "9 43 52\r",
+ "9 43 53\r",
+ "9 43 54\r",
+ "9 43 55\r",
+ "9 43 56\r",
+ "9 43 57\r",
+ "9 43 58\r",
+ "9 44 1\r",
+ "9 44 2\r",
+ "9 44 3\r",
+ "9 44 4\r",
+ "9 44 5\r",
+ "9 44 6\r",
+ "9 44 7\r",
+ "9 44 8\r",
+ "9 44 9\r",
+ "9 44 10\r",
+ "9 44 11\r",
+ "9 44 12\r",
+ "9 44 13\r",
+ "9 44 14\r",
+ "9 44 15\r",
+ "9 44 16\r",
+ "9 44 17\r",
+ "9 44 18\r",
+ "9 44 19\r",
+ "9 44 20\r",
+ "9 44 21\r",
+ "9 44 22\r",
+ "9 44 23\r",
+ "9 44 24\r",
+ "9 44 25\r",
+ "9 44 26\r",
+ "9 44 27\r",
+ "9 44 28\r",
+ "9 44 29\r",
+ "9 44 30\r",
+ "9 44 31\r",
+ "9 44 32\r",
+ "9 44 33\r",
+ "9 44 34\r",
+ "9 44 35\r",
+ "9 44 36\r",
+ "9 44 37\r",
+ "9 44 38\r",
+ "9 44 39\r",
+ "9 44 40\r",
+ "9 44 41\r",
+ "9 44 42\r",
+ "9 44 43\r",
+ "9 44 44\r",
+ "9 44 45\r",
+ "9 44 46\r",
+ "9 44 47\r",
+ "9 44 48\r",
+ "9 44 49\r",
+ "9 44 50\r",
+ "9 44 51\r",
+ "9 44 52\r",
+ "9 44 53\r",
+ "9 44 54\r",
+ "9 44 55\r",
+ "9 44 56\r",
+ "9 44 57\r",
+ "9 44 58\r",
+ "9 45 1\r",
+ "9 45 2\r",
+ "9 45 3\r",
+ "9 45 4\r",
+ "9 45 5\r",
+ "9 45 6\r",
+ "9 45 7\r",
+ "9 45 8\r",
+ "9 45 9\r",
+ "9 45 10\r",
+ "9 45 11\r",
+ "9 45 12\r",
+ "9 45 13\r",
+ "9 45 14\r",
+ "9 45 15\r",
+ "9 45 16\r",
+ "9 45 17\r",
+ "9 45 18\r",
+ "9 45 19\r",
+ "9 45 20\r",
+ "9 45 21\r",
+ "9 45 22\r",
+ "9 45 23\r",
+ "9 45 24\r",
+ "9 45 25\r",
+ "9 45 26\r",
+ "9 45 27\r",
+ "9 45 28\r",
+ "9 45 29\r",
+ "9 45 30\r",
+ "9 45 31\r",
+ "9 45 32\r",
+ "9 45 33\r",
+ "9 45 34\r",
+ "9 45 35\r",
+ "9 45 36\r",
+ "9 45 37\r",
+ "9 45 38\r",
+ "9 45 39\r",
+ "9 45 40\r",
+ "9 45 41\r",
+ "9 45 42\r",
+ "9 45 43\r",
+ "9 45 44\r",
+ "9 45 45\r",
+ "9 45 46\r",
+ "9 45 47\r",
+ "9 45 48\r",
+ "9 45 49\r",
+ "9 45 50\r",
+ "9 45 51\r",
+ "9 45 52\r",
+ "9 45 53\r",
+ "9 45 54\r",
+ "9 45 55\r",
+ "9 45 56\r",
+ "9 45 57\r",
+ "9 45 58\r",
+ "9 46 1\r",
+ "9 46 2\r",
+ "9 46 3\r",
+ "9 46 4\r",
+ "9 46 5\r",
+ "9 46 6\r",
+ "9 46 7\r",
+ "9 46 8\r",
+ "9 46 9\r",
+ "9 46 10\r",
+ "9 46 11\r",
+ "9 46 12\r",
+ "9 46 13\r",
+ "9 46 14\r",
+ "9 46 15\r",
+ "9 46 16\r",
+ "9 46 17\r",
+ "9 46 18\r",
+ "9 46 19\r",
+ "9 46 20\r",
+ "9 46 21\r",
+ "9 46 22\r",
+ "9 46 23\r",
+ "9 46 24\r",
+ "9 46 25\r",
+ "9 46 26\r",
+ "9 46 27\r",
+ "9 46 28\r",
+ "9 46 29\r",
+ "9 46 30\r",
+ "9 46 31\r",
+ "9 46 32\r",
+ "9 46 33\r",
+ "9 46 34\r",
+ "9 46 35\r",
+ "9 46 36\r",
+ "9 46 37\r",
+ "9 46 38\r",
+ "9 46 39\r",
+ "9 46 40\r",
+ "9 46 41\r",
+ "9 46 42\r",
+ "9 46 43\r",
+ "9 46 44\r",
+ "9 46 45\r",
+ "9 46 46\r",
+ "9 46 47\r",
+ "9 46 48\r",
+ "9 46 49\r",
+ "9 46 50\r",
+ "9 46 51\r",
+ "9 46 52\r",
+ "9 46 53\r",
+ "9 46 54\r",
+ "9 46 55\r",
+ "9 46 56\r",
+ "9 46 57\r",
+ "9 46 58\r",
+ "9 47 1\r",
+ "9 47 2\r",
+ "9 47 3\r",
+ "9 47 4\r",
+ "9 47 5\r",
+ "9 47 6\r",
+ "9 47 7\r",
+ "9 47 8\r",
+ "9 47 9\r",
+ "9 47 10\r",
+ "9 47 11\r",
+ "9 47 12\r",
+ "9 47 13\r",
+ "9 47 14\r",
+ "9 47 15\r",
+ "9 47 16\r",
+ "9 47 17\r",
+ "9 47 18\r",
+ "9 47 19\r",
+ "9 47 20\r",
+ "9 47 21\r",
+ "9 47 22\r",
+ "9 47 23\r",
+ "9 47 24\r",
+ "9 47 25\r",
+ "9 47 26\r",
+ "9 47 27\r",
+ "9 47 28\r",
+ "9 47 29\r",
+ "9 47 30\r",
+ "9 47 31\r",
+ "9 47 32\r",
+ "9 47 33\r",
+ "9 47 34\r",
+ "9 47 35\r",
+ "9 47 36\r",
+ "9 47 37\r",
+ "9 47 38\r",
+ "9 47 39\r",
+ "9 47 40\r",
+ "9 47 41\r",
+ "9 47 42\r",
+ "9 47 43\r",
+ "9 47 44\r",
+ "9 47 45\r",
+ "9 47 46\r",
+ "9 47 47\r",
+ "9 47 48\r",
+ "9 47 49\r",
+ "9 47 50\r",
+ "9 47 51\r",
+ "9 47 52\r",
+ "9 47 53\r",
+ "9 47 54\r",
+ "9 47 55\r",
+ "9 47 56\r",
+ "9 47 57\r",
+ "9 47 58\r",
+ "9 48 1\r",
+ "9 48 2\r",
+ "9 48 3\r",
+ "9 48 4\r",
+ "9 48 5\r",
+ "9 48 6\r",
+ "9 48 7\r",
+ "9 48 8\r",
+ "9 48 9\r",
+ "9 48 10\r",
+ "9 48 11\r",
+ "9 48 12\r",
+ "9 48 13\r",
+ "9 48 14\r",
+ "9 48 15\r",
+ "9 48 16\r",
+ "9 48 17\r",
+ "9 48 18\r",
+ "9 48 19\r",
+ "9 48 20\r",
+ "9 48 21\r",
+ "9 48 22\r",
+ "9 48 23\r",
+ "9 48 24\r",
+ "9 48 25\r",
+ "9 48 26\r",
+ "9 48 27\r",
+ "9 48 28\r",
+ "9 48 29\r",
+ "9 48 30\r",
+ "9 48 31\r",
+ "9 48 32\r",
+ "9 48 33\r",
+ "9 48 34\r",
+ "9 48 35\r",
+ "9 48 36\r",
+ "9 48 37\r",
+ "9 48 38\r",
+ "9 48 39\r",
+ "9 48 40\r",
+ "9 48 41\r",
+ "9 48 42\r",
+ "9 48 43\r",
+ "9 48 44\r",
+ "9 48 45\r",
+ "9 48 46\r",
+ "9 48 47\r",
+ "9 48 48\r",
+ "9 48 49\r",
+ "9 48 50\r",
+ "9 48 51\r",
+ "9 48 52\r",
+ "9 48 53\r",
+ "9 48 54\r",
+ "9 48 55\r",
+ "9 48 56\r",
+ "9 48 57\r",
+ "9 48 58\r",
+ "9 49 1\r",
+ "9 49 2\r",
+ "9 49 3\r",
+ "9 49 4\r",
+ "9 49 5\r",
+ "9 49 6\r",
+ "9 49 7\r",
+ "9 49 8\r",
+ "9 49 9\r",
+ "9 49 10\r",
+ "9 49 11\r",
+ "9 49 12\r",
+ "9 49 13\r",
+ "9 49 14\r",
+ "9 49 15\r",
+ "9 49 16\r",
+ "9 49 17\r",
+ "9 49 18\r",
+ "9 49 19\r",
+ "9 49 20\r",
+ "9 49 21\r",
+ "9 49 22\r",
+ "9 49 23\r",
+ "9 49 24\r",
+ "9 49 25\r",
+ "9 49 26\r",
+ "9 49 27\r",
+ "9 49 28\r",
+ "9 49 29\r",
+ "9 49 30\r",
+ "9 49 31\r",
+ "9 49 32\r",
+ "9 49 33\r",
+ "9 49 34\r",
+ "9 49 35\r",
+ "9 49 36\r",
+ "9 49 37\r",
+ "9 49 38\r",
+ "9 49 39\r",
+ "9 49 40\r",
+ "9 49 41\r",
+ "9 49 42\r",
+ "9 49 43\r",
+ "9 49 44\r",
+ "9 49 45\r",
+ "9 49 46\r",
+ "9 49 47\r",
+ "9 49 48\r",
+ "9 49 49\r",
+ "9 49 50\r",
+ "9 49 51\r",
+ "9 49 52\r",
+ "9 49 53\r",
+ "9 49 54\r",
+ "9 49 55\r",
+ "9 49 56\r",
+ "9 49 57\r",
+ "9 49 58\r",
+ "9 50 1\r",
+ "9 50 2\r",
+ "9 50 3\r",
+ "9 50 4\r",
+ "9 50 5\r",
+ "9 50 6\r",
+ "9 50 7\r",
+ "9 50 8\r",
+ "9 50 9\r",
+ "9 50 10\r",
+ "9 50 11\r",
+ "9 50 12\r",
+ "9 50 13\r",
+ "9 50 14\r",
+ "9 50 15\r",
+ "9 50 16\r",
+ "9 50 17\r",
+ "9 50 18\r",
+ "9 50 19\r",
+ "9 50 20\r",
+ "9 50 21\r",
+ "9 50 22\r",
+ "9 50 23\r",
+ "9 50 24\r",
+ "9 50 25\r",
+ "9 50 26\r",
+ "9 50 27\r",
+ "9 50 28\r",
+ "9 50 29\r",
+ "9 50 30\r",
+ "9 50 31\r",
+ "9 50 32\r",
+ "9 50 33\r",
+ "9 50 34\r",
+ "9 50 35\r",
+ "9 50 36\r",
+ "9 50 37\r",
+ "9 50 38\r",
+ "9 50 39\r",
+ "9 50 40\r",
+ "9 50 41\r",
+ "9 50 42\r",
+ "9 50 43\r",
+ "9 50 44\r",
+ "9 50 45\r",
+ "9 50 46\r",
+ "9 50 47\r",
+ "9 50 48\r",
+ "9 50 49\r",
+ "9 50 50\r",
+ "9 50 51\r",
+ "9 50 52\r",
+ "9 50 53\r",
+ "9 50 54\r",
+ "9 50 55\r",
+ "9 50 56\r",
+ "9 50 57\r",
+ "9 50 58\r",
+ "9 51 1\r",
+ "9 51 2\r",
+ "9 51 3\r",
+ "9 51 4\r",
+ "9 51 5\r",
+ "9 51 6\r",
+ "9 51 7\r",
+ "9 51 8\r",
+ "9 51 9\r",
+ "9 51 10\r",
+ "9 51 11\r",
+ "9 51 12\r",
+ "9 51 13\r",
+ "9 51 14\r",
+ "9 51 15\r",
+ "9 51 16\r",
+ "9 51 17\r",
+ "9 51 18\r",
+ "9 51 19\r",
+ "9 51 20\r",
+ "9 51 21\r",
+ "9 51 22\r",
+ "9 51 23\r",
+ "9 51 24\r",
+ "9 51 25\r",
+ "9 51 26\r",
+ "9 51 27\r",
+ "9 51 28\r",
+ "9 51 29\r",
+ "9 51 30\r",
+ "9 51 31\r",
+ "9 51 32\r",
+ "9 51 33\r",
+ "9 51 34\r",
+ "9 51 35\r",
+ "9 51 36\r",
+ "9 51 37\r",
+ "9 51 38\r",
+ "9 51 39\r",
+ "9 51 40\r",
+ "9 51 41\r",
+ "9 51 42\r",
+ "9 51 43\r",
+ "9 51 44\r",
+ "9 51 45\r",
+ "9 51 46\r",
+ "9 51 47\r",
+ "9 51 48\r",
+ "9 51 49\r",
+ "9 51 50\r",
+ "9 51 51\r",
+ "9 51 52\r",
+ "9 51 53\r",
+ "9 51 54\r",
+ "9 51 55\r",
+ "9 51 56\r",
+ "9 51 57\r",
+ "9 51 58\r",
+ "9 52 1\r",
+ "9 52 2\r",
+ "9 52 3\r",
+ "9 52 4\r",
+ "9 52 5\r",
+ "9 52 6\r",
+ "9 52 7\r",
+ "9 52 8\r",
+ "9 52 9\r",
+ "9 52 10\r",
+ "9 52 11\r",
+ "9 52 12\r",
+ "9 52 13\r",
+ "9 52 14\r",
+ "9 52 15\r",
+ "9 52 16\r",
+ "9 52 17\r",
+ "9 52 18\r",
+ "9 52 19\r",
+ "9 52 20\r",
+ "9 52 21\r",
+ "9 52 22\r",
+ "9 52 23\r",
+ "9 52 24\r",
+ "9 52 25\r",
+ "9 52 26\r",
+ "9 52 27\r",
+ "9 52 28\r",
+ "9 52 29\r",
+ "9 52 30\r",
+ "9 52 31\r",
+ "9 52 32\r",
+ "9 52 33\r",
+ "9 52 34\r",
+ "9 52 35\r",
+ "9 52 36\r",
+ "9 52 37\r",
+ "9 52 38\r",
+ "9 52 39\r",
+ "9 52 40\r",
+ "9 52 41\r",
+ "9 52 42\r",
+ "9 52 43\r",
+ "9 52 44\r",
+ "9 52 45\r",
+ "9 52 46\r",
+ "9 52 47\r",
+ "9 52 48\r",
+ "9 52 49\r",
+ "9 52 50\r",
+ "9 52 51\r",
+ "9 52 52\r",
+ "9 52 53\r",
+ "9 52 54\r",
+ "9 52 55\r",
+ "9 52 56\r",
+ "9 52 57\r",
+ "9 52 58\r",
+ "9 53 1\r",
+ "9 53 2\r",
+ "9 53 3\r",
+ "9 53 4\r",
+ "9 53 5\r",
+ "9 53 6\r",
+ "9 53 7\r",
+ "9 53 8\r",
+ "9 53 9\r",
+ "9 53 10\r",
+ "9 53 11\r",
+ "9 53 12\r",
+ "9 53 13\r",
+ "9 53 14\r",
+ "9 53 15\r",
+ "9 53 16\r",
+ "9 53 17\r",
+ "9 53 18\r",
+ "9 53 19\r",
+ "9 53 20\r",
+ "9 53 21\r",
+ "9 53 22\r",
+ "9 53 23\r",
+ "9 53 24\r",
+ "9 53 25\r",
+ "9 53 26\r",
+ "9 53 27\r",
+ "9 53 28\r",
+ "9 53 29\r",
+ "9 53 30\r",
+ "9 53 31\r",
+ "9 53 32\r",
+ "9 53 33\r",
+ "9 53 34\r",
+ "9 53 35\r",
+ "9 53 36\r",
+ "9 53 37\r",
+ "9 53 38\r",
+ "9 53 39\r",
+ "9 53 40\r",
+ "9 53 41\r",
+ "9 53 42\r",
+ "9 53 43\r",
+ "9 53 44\r",
+ "9 53 45\r",
+ "9 53 46\r",
+ "9 53 47\r",
+ "9 53 48\r",
+ "9 53 49\r",
+ "9 53 50\r",
+ "9 53 51\r",
+ "9 53 52\r",
+ "9 53 53\r",
+ "9 53 54\r",
+ "9 53 55\r",
+ "9 53 56\r",
+ "9 53 57\r",
+ "9 53 58\r",
+ "9 54 1\r",
+ "9 54 2\r",
+ "9 54 3\r",
+ "9 54 4\r",
+ "9 54 5\r",
+ "9 54 6\r",
+ "9 54 7\r",
+ "9 54 8\r",
+ "9 54 9\r",
+ "9 54 10\r",
+ "9 54 11\r",
+ "9 54 12\r",
+ "9 54 13\r",
+ "9 54 14\r",
+ "9 54 15\r",
+ "9 54 16\r",
+ "9 54 17\r",
+ "9 54 18\r",
+ "9 54 19\r",
+ "9 54 20\r",
+ "9 54 21\r",
+ "9 54 22\r",
+ "9 54 23\r",
+ "9 54 24\r",
+ "9 54 25\r",
+ "9 54 26\r",
+ "9 54 27\r",
+ "9 54 28\r",
+ "9 54 29\r",
+ "9 54 30\r",
+ "9 54 31\r",
+ "9 54 32\r",
+ "9 54 33\r",
+ "9 54 34\r",
+ "9 54 35\r",
+ "9 54 36\r",
+ "9 54 37\r",
+ "9 54 38\r",
+ "9 54 39\r",
+ "9 54 40\r",
+ "9 54 41\r",
+ "9 54 42\r",
+ "9 54 43\r",
+ "9 54 44\r",
+ "9 54 45\r",
+ "9 54 46\r",
+ "9 54 47\r",
+ "9 54 48\r",
+ "9 54 49\r",
+ "9 54 50\r",
+ "9 54 51\r",
+ "9 54 52\r",
+ "9 54 53\r",
+ "9 54 54\r",
+ "9 54 55\r",
+ "9 54 56\r",
+ "9 54 57\r",
+ "9 54 58\r",
+ "9 55 1\r",
+ "9 55 2\r",
+ "9 55 3\r",
+ "9 55 4\r",
+ "9 55 5\r",
+ "9 55 6\r",
+ "9 55 7\r",
+ "9 55 8\r",
+ "9 55 9\r",
+ "9 55 10\r",
+ "9 55 11\r",
+ "9 55 12\r",
+ "9 55 13\r",
+ "9 55 14\r",
+ "9 55 15\r",
+ "9 55 16\r",
+ "9 55 17\r",
+ "9 55 18\r",
+ "9 55 19\r",
+ "9 55 20\r",
+ "9 55 21\r",
+ "9 55 22\r",
+ "9 55 23\r",
+ "9 55 24\r",
+ "9 55 25\r",
+ "9 55 26\r",
+ "9 55 27\r",
+ "9 55 28\r",
+ "9 55 29\r",
+ "9 55 30\r",
+ "9 55 31\r",
+ "9 55 32\r",
+ "9 55 33\r",
+ "9 55 34\r",
+ "9 55 35\r",
+ "9 55 36\r",
+ "9 55 37\r",
+ "9 55 38\r",
+ "9 55 39\r",
+ "9 55 40\r",
+ "9 55 41\r",
+ "9 55 42\r",
+ "9 55 43\r",
+ "9 55 44\r",
+ "9 55 45\r",
+ "9 55 46\r",
+ "9 55 47\r",
+ "9 55 48\r",
+ "9 55 49\r",
+ "9 55 50\r",
+ "9 55 51\r",
+ "9 55 52\r",
+ "9 55 53\r",
+ "9 55 54\r",
+ "9 55 55\r",
+ "9 55 56\r",
+ "9 55 57\r",
+ "9 55 58\r",
+ "9 56 1\r",
+ "9 56 2\r",
+ "9 56 3\r",
+ "9 56 4\r",
+ "9 56 5\r",
+ "9 56 6\r",
+ "9 56 7\r",
+ "9 56 8\r",
+ "9 56 9\r",
+ "9 56 10\r",
+ "9 56 11\r",
+ "9 56 12\r",
+ "9 56 13\r",
+ "9 56 14\r",
+ "9 56 15\r",
+ "9 56 16\r",
+ "9 56 17\r",
+ "9 56 18\r",
+ "9 56 19\r",
+ "9 56 20\r",
+ "9 56 21\r",
+ "9 56 22\r",
+ "9 56 23\r",
+ "9 56 24\r",
+ "9 56 25\r",
+ "9 56 26\r",
+ "9 56 27\r",
+ "9 56 28\r",
+ "9 56 29\r",
+ "9 56 30\r",
+ "9 56 31\r",
+ "9 56 32\r",
+ "9 56 33\r",
+ "9 56 34\r",
+ "9 56 35\r",
+ "9 56 36\r",
+ "9 56 37\r",
+ "9 56 38\r",
+ "9 56 39\r",
+ "9 56 40\r",
+ "9 56 41\r",
+ "9 56 42\r",
+ "9 56 43\r",
+ "9 56 44\r",
+ "9 56 45\r",
+ "9 56 46\r",
+ "9 56 47\r",
+ "9 56 48\r",
+ "9 56 49\r",
+ "9 56 50\r",
+ "9 56 51\r",
+ "9 56 52\r",
+ "9 56 53\r",
+ "9 56 54\r",
+ "9 56 55\r",
+ "9 56 56\r",
+ "9 56 57\r",
+ "9 56 58\r",
+ "9 57 1\r",
+ "9 57 2\r",
+ "9 57 3\r",
+ "9 57 4\r",
+ "9 57 5\r",
+ "9 57 6\r",
+ "9 57 7\r",
+ "9 57 8\r",
+ "9 57 9\r",
+ "9 57 10\r",
+ "9 57 11\r",
+ "9 57 12\r",
+ "9 57 13\r",
+ "9 57 14\r",
+ "9 57 15\r",
+ "9 57 16\r",
+ "9 57 17\r",
+ "9 57 18\r",
+ "9 57 19\r",
+ "9 57 20\r",
+ "9 57 21\r",
+ "9 57 22\r",
+ "9 57 23\r",
+ "9 57 24\r",
+ "9 57 25\r",
+ "9 57 26\r",
+ "9 57 27\r",
+ "9 57 28\r",
+ "9 57 29\r",
+ "9 57 30\r",
+ "9 57 31\r",
+ "9 57 32\r",
+ "9 57 33\r",
+ "9 57 34\r",
+ "9 57 35\r",
+ "9 57 36\r",
+ "9 57 37\r",
+ "9 57 38\r",
+ "9 57 39\r",
+ "9 57 40\r",
+ "9 57 41\r",
+ "9 57 42\r",
+ "9 57 43\r",
+ "9 57 44\r",
+ "9 57 45\r",
+ "9 57 46\r",
+ "9 57 47\r",
+ "9 57 48\r",
+ "9 57 49\r",
+ "9 57 50\r",
+ "9 57 51\r",
+ "9 57 52\r",
+ "9 57 53\r",
+ "9 57 54\r",
+ "9 57 55\r",
+ "9 57 56\r",
+ "9 57 57\r",
+ "9 57 58\r",
+ "9 58 1\r",
+ "9 58 2\r",
+ "9 58 3\r",
+ "9 58 4\r",
+ "9 58 5\r",
+ "9 58 6\r",
+ "9 58 7\r",
+ "9 58 8\r",
+ "9 58 9\r",
+ "9 58 10\r",
+ "9 58 11\r",
+ "9 58 12\r",
+ "9 58 13\r",
+ "9 58 14\r",
+ "9 58 15\r",
+ "9 58 16\r",
+ "9 58 17\r",
+ "9 58 18\r",
+ "9 58 19\r",
+ "9 58 20\r",
+ "9 58 21\r",
+ "9 58 22\r",
+ "9 58 23\r",
+ "9 58 24\r",
+ "9 58 25\r",
+ "9 58 26\r",
+ "9 58 27\r",
+ "9 58 28\r",
+ "9 58 29\r",
+ "9 58 30\r",
+ "9 58 31\r",
+ "9 58 32\r",
+ "9 58 33\r",
+ "9 58 34\r",
+ "9 58 35\r",
+ "9 58 36\r",
+ "9 58 37\r",
+ "9 58 38\r",
+ "9 58 39\r",
+ "9 58 40\r",
+ "9 58 41\r",
+ "9 58 42\r",
+ "9 58 43\r",
+ "9 58 44\r",
+ "9 58 45\r",
+ "9 58 46\r",
+ "9 58 47\r",
+ "9 58 48\r",
+ "9 58 49\r",
+ "9 58 50\r",
+ "9 58 51\r",
+ "9 58 52\r",
+ "9 58 53\r",
+ "9 58 54\r",
+ "9 58 55\r",
+ "9 58 56\r",
+ "9 58 57\r",
+ "9 58 58\r",
+ "10 1 1\r",
+ "10 1 2\r",
+ "10 1 3\r",
+ "10 1 4\r",
+ "10 1 5\r",
+ "10 1 6\r",
+ "10 1 7\r",
+ "10 1 8\r",
+ "10 1 9\r",
+ "10 1 10\r",
+ "10 1 11\r",
+ "10 1 12\r",
+ "10 1 13\r",
+ "10 1 14\r",
+ "10 1 15\r",
+ "10 1 16\r",
+ "10 1 17\r",
+ "10 1 18\r",
+ "10 1 19\r",
+ "10 1 20\r",
+ "10 1 21\r",
+ "10 1 22\r",
+ "10 1 23\r",
+ "10 1 24\r",
+ "10 1 25\r",
+ "10 1 26\r",
+ "10 1 27\r",
+ "10 1 28\r",
+ "10 1 29\r",
+ "10 1 30\r",
+ "10 1 31\r",
+ "10 1 32\r",
+ "10 1 33\r",
+ "10 1 34\r",
+ "10 1 35\r",
+ "10 1 36\r",
+ "10 1 37\r",
+ "10 1 38\r",
+ "10 1 39\r",
+ "10 1 40\r",
+ "10 1 41\r",
+ "10 1 42\r",
+ "10 1 43\r",
+ "10 1 44\r",
+ "10 1 45\r",
+ "10 1 46\r",
+ "10 1 47\r",
+ "10 1 48\r",
+ "10 1 49\r",
+ "10 1 50\r",
+ "10 1 51\r",
+ "10 1 52\r",
+ "10 1 53\r",
+ "10 1 54\r",
+ "10 1 55\r",
+ "10 1 56\r",
+ "10 1 57\r",
+ "10 1 58\r",
+ "10 2 1\r",
+ "10 2 2\r",
+ "10 2 3\r",
+ "10 2 4\r",
+ "10 2 5\r",
+ "10 2 6\r",
+ "10 2 7\r",
+ "10 2 8\r",
+ "10 2 9\r",
+ "10 2 10\r",
+ "10 2 11\r",
+ "10 2 12\r",
+ "10 2 13\r",
+ "10 2 14\r",
+ "10 2 15\r",
+ "10 2 16\r",
+ "10 2 17\r",
+ "10 2 18\r",
+ "10 2 19\r",
+ "10 2 20\r",
+ "10 2 21\r",
+ "10 2 22\r",
+ "10 2 23\r",
+ "10 2 24\r",
+ "10 2 25\r",
+ "10 2 26\r",
+ "10 2 27\r",
+ "10 2 28\r",
+ "10 2 29\r",
+ "10 2 30\r",
+ "10 2 31\r",
+ "10 2 32\r",
+ "10 2 33\r",
+ "10 2 34\r",
+ "10 2 35\r",
+ "10 2 36\r",
+ "10 2 37\r",
+ "10 2 38\r",
+ "10 2 39\r",
+ "10 2 40\r",
+ "10 2 41\r",
+ "10 2 42\r",
+ "10 2 43\r",
+ "10 2 44\r",
+ "10 2 45\r",
+ "10 2 46\r",
+ "10 2 47\r",
+ "10 2 48\r",
+ "10 2 49\r",
+ "10 2 50\r",
+ "10 2 51\r",
+ "10 2 52\r",
+ "10 2 53\r",
+ "10 2 54\r",
+ "10 2 55\r",
+ "10 2 56\r",
+ "10 2 57\r",
+ "10 2 58\r",
+ "10 3 1\r",
+ "10 3 2\r",
+ "10 3 3\r",
+ "10 3 4\r",
+ "10 3 5\r",
+ "10 3 6\r",
+ "10 3 7\r",
+ "10 3 8\r",
+ "10 3 9\r",
+ "10 3 10\r",
+ "10 3 11\r",
+ "10 3 12\r",
+ "10 3 13\r",
+ "10 3 14\r",
+ "10 3 15\r",
+ "10 3 16\r",
+ "10 3 17\r",
+ "10 3 18\r",
+ "10 3 19\r",
+ "10 3 20\r",
+ "10 3 21\r",
+ "10 3 22\r",
+ "10 3 23\r",
+ "10 3 24\r",
+ "10 3 25\r",
+ "10 3 26\r",
+ "10 3 27\r",
+ "10 3 28\r",
+ "10 3 29\r",
+ "10 3 30\r",
+ "10 3 31\r",
+ "10 3 32\r",
+ "10 3 33\r",
+ "10 3 34\r",
+ "10 3 35\r",
+ "10 3 36\r",
+ "10 3 37\r",
+ "10 3 38\r",
+ "10 3 39\r",
+ "10 3 40\r",
+ "10 3 41\r",
+ "10 3 42\r",
+ "10 3 43\r",
+ "10 3 44\r",
+ "10 3 45\r",
+ "10 3 46\r",
+ "10 3 47\r",
+ "10 3 48\r",
+ "10 3 49\r",
+ "10 3 50\r",
+ "10 3 51\r",
+ "10 3 52\r",
+ "10 3 53\r",
+ "10 3 54\r",
+ "10 3 55\r",
+ "10 3 56\r",
+ "10 3 57\r",
+ "10 3 58\r",
+ "10 4 1\r",
+ "10 4 2\r",
+ "10 4 3\r",
+ "10 4 4\r",
+ "10 4 5\r",
+ "10 4 6\r",
+ "10 4 7\r",
+ "10 4 8\r",
+ "10 4 9\r",
+ "10 4 10\r",
+ "10 4 11\r",
+ "10 4 12\r",
+ "10 4 13\r",
+ "10 4 14\r",
+ "10 4 15\r",
+ "10 4 16\r",
+ "10 4 17\r",
+ "10 4 18\r",
+ "10 4 19\r",
+ "10 4 20\r",
+ "10 4 21\r",
+ "10 4 22\r",
+ "10 4 23\r",
+ "10 4 24\r",
+ "10 4 25\r",
+ "10 4 26\r",
+ "10 4 27\r",
+ "10 4 28\r",
+ "10 4 29\r",
+ "10 4 30\r",
+ "10 4 31\r",
+ "10 4 32\r",
+ "10 4 33\r",
+ "10 4 34\r",
+ "10 4 35\r",
+ "10 4 36\r",
+ "10 4 37\r",
+ "10 4 38\r",
+ "10 4 39\r",
+ "10 4 40\r",
+ "10 4 41\r",
+ "10 4 42\r",
+ "10 4 43\r",
+ "10 4 44\r",
+ "10 4 45\r",
+ "10 4 46\r",
+ "10 4 47\r",
+ "10 4 48\r",
+ "10 4 49\r",
+ "10 4 50\r",
+ "10 4 51\r",
+ "10 4 52\r",
+ "10 4 53\r",
+ "10 4 54\r",
+ "10 4 55\r",
+ "10 4 56\r",
+ "10 4 57\r",
+ "10 4 58\r",
+ "10 5 1\r",
+ "10 5 2\r",
+ "10 5 3\r",
+ "10 5 4\r",
+ "10 5 5\r",
+ "10 5 6\r",
+ "10 5 7\r",
+ "10 5 8\r",
+ "10 5 9\r",
+ "10 5 10\r",
+ "10 5 11\r",
+ "10 5 12\r",
+ "10 5 13\r",
+ "10 5 14\r",
+ "10 5 15\r",
+ "10 5 16\r",
+ "10 5 17\r",
+ "10 5 18\r",
+ "10 5 19\r",
+ "10 5 20\r",
+ "10 5 21\r",
+ "10 5 22\r",
+ "10 5 23\r",
+ "10 5 24\r",
+ "10 5 25\r",
+ "10 5 26\r",
+ "10 5 27\r",
+ "10 5 28\r",
+ "10 5 29\r",
+ "10 5 30\r",
+ "10 5 31\r",
+ "10 5 32\r",
+ "10 5 33\r",
+ "10 5 34\r",
+ "10 5 35\r",
+ "10 5 36\r",
+ "10 5 37\r",
+ "10 5 38\r",
+ "10 5 39\r",
+ "10 5 40\r",
+ "10 5 41\r",
+ "10 5 42\r",
+ "10 5 43\r",
+ "10 5 44\r",
+ "10 5 45\r",
+ "10 5 46\r",
+ "10 5 47\r",
+ "10 5 48\r",
+ "10 5 49\r",
+ "10 5 50\r",
+ "10 5 51\r",
+ "10 5 52\r",
+ "10 5 53\r",
+ "10 5 54\r",
+ "10 5 55\r",
+ "10 5 56\r",
+ "10 5 57\r",
+ "10 5 58\r",
+ "10 6 1\r",
+ "10 6 2\r",
+ "10 6 3\r",
+ "10 6 4\r",
+ "10 6 5\r",
+ "10 6 6\r",
+ "10 6 7\r",
+ "10 6 8\r",
+ "10 6 9\r",
+ "10 6 10\r",
+ "10 6 11\r",
+ "10 6 12\r",
+ "10 6 13\r",
+ "10 6 14\r",
+ "10 6 15\r",
+ "10 6 16\r",
+ "10 6 17\r",
+ "10 6 18\r",
+ "10 6 19\r",
+ "10 6 20\r",
+ "10 6 21\r",
+ "10 6 22\r",
+ "10 6 23\r",
+ "10 6 24\r",
+ "10 6 25\r",
+ "10 6 26\r",
+ "10 6 27\r",
+ "10 6 28\r",
+ "10 6 29\r",
+ "10 6 30\r",
+ "10 6 31\r",
+ "10 6 32\r",
+ "10 6 33\r",
+ "10 6 34\r",
+ "10 6 35\r",
+ "10 6 36\r",
+ "10 6 37\r",
+ "10 6 38\r",
+ "10 6 39\r",
+ "10 6 40\r",
+ "10 6 41\r",
+ "10 6 42\r",
+ "10 6 43\r",
+ "10 6 44\r",
+ "10 6 45\r",
+ "10 6 46\r",
+ "10 6 47\r",
+ "10 6 48\r",
+ "10 6 49\r",
+ "10 6 50\r",
+ "10 6 51\r",
+ "10 6 52\r",
+ "10 6 53\r",
+ "10 6 54\r",
+ "10 6 55\r",
+ "10 6 56\r",
+ "10 6 57\r",
+ "10 6 58\r",
+ "10 7 1\r",
+ "10 7 2\r",
+ "10 7 3\r",
+ "10 7 4\r",
+ "10 7 5\r",
+ "10 7 6\r",
+ "10 7 7\r",
+ "10 7 8\r",
+ "10 7 9\r",
+ "10 7 10\r",
+ "10 7 11\r",
+ "10 7 12\r",
+ "10 7 13\r",
+ "10 7 14\r",
+ "10 7 15\r",
+ "10 7 16\r",
+ "10 7 17\r",
+ "10 7 18\r",
+ "10 7 19\r",
+ "10 7 20\r",
+ "10 7 21\r",
+ "10 7 22\r",
+ "10 7 23\r",
+ "10 7 24\r",
+ "10 7 25\r",
+ "10 7 26\r",
+ "10 7 27\r",
+ "10 7 28\r",
+ "10 7 29\r",
+ "10 7 30\r",
+ "10 7 31\r",
+ "10 7 32\r",
+ "10 7 33\r",
+ "10 7 34\r",
+ "10 7 35\r",
+ "10 7 36\r",
+ "10 7 37\r",
+ "10 7 38\r",
+ "10 7 39\r",
+ "10 7 40\r",
+ "10 7 41\r",
+ "10 7 42\r",
+ "10 7 43\r",
+ "10 7 44\r",
+ "10 7 45\r",
+ "10 7 46\r",
+ "10 7 47\r",
+ "10 7 48\r",
+ "10 7 49\r",
+ "10 7 50\r",
+ "10 7 51\r",
+ "10 7 52\r",
+ "10 7 53\r",
+ "10 7 54\r",
+ "10 7 55\r",
+ "10 7 56\r",
+ "10 7 57\r",
+ "10 7 58\r",
+ "10 8 1\r",
+ "10 8 2\r",
+ "10 8 3\r",
+ "10 8 4\r",
+ "10 8 5\r",
+ "10 8 6\r",
+ "10 8 7\r",
+ "10 8 8\r",
+ "10 8 9\r",
+ "10 8 10\r",
+ "10 8 11\r",
+ "10 8 12\r",
+ "10 8 13\r",
+ "10 8 14\r",
+ "10 8 15\r",
+ "10 8 16\r",
+ "10 8 17\r",
+ "10 8 18\r",
+ "10 8 19\r",
+ "10 8 20\r",
+ "10 8 21\r",
+ "10 8 22\r",
+ "10 8 23\r",
+ "10 8 24\r",
+ "10 8 25\r",
+ "10 8 26\r",
+ "10 8 27\r",
+ "10 8 28\r",
+ "10 8 29\r",
+ "10 8 30\r",
+ "10 8 31\r",
+ "10 8 32\r",
+ "10 8 33\r",
+ "10 8 34\r",
+ "10 8 35\r",
+ "10 8 36\r",
+ "10 8 37\r",
+ "10 8 38\r",
+ "10 8 39\r",
+ "10 8 40\r",
+ "10 8 41\r",
+ "10 8 42\r",
+ "10 8 43\r",
+ "10 8 44\r",
+ "10 8 45\r",
+ "10 8 46\r",
+ "10 8 47\r",
+ "10 8 48\r",
+ "10 8 49\r",
+ "10 8 50\r",
+ "10 8 51\r",
+ "10 8 52\r",
+ "10 8 53\r",
+ "10 8 54\r",
+ "10 8 55\r",
+ "10 8 56\r",
+ "10 8 57\r",
+ "10 8 58\r",
+ "10 9 1\r",
+ "10 9 2\r",
+ "10 9 3\r",
+ "10 9 4\r",
+ "10 9 5\r",
+ "10 9 6\r",
+ "10 9 7\r",
+ "10 9 8\r",
+ "10 9 9\r",
+ "10 9 10\r",
+ "10 9 11\r",
+ "10 9 12\r",
+ "10 9 13\r",
+ "10 9 14\r",
+ "10 9 15\r",
+ "10 9 16\r",
+ "10 9 17\r",
+ "10 9 18\r",
+ "10 9 19\r",
+ "10 9 20\r",
+ "10 9 21\r",
+ "10 9 22\r",
+ "10 9 23\r",
+ "10 9 24\r",
+ "10 9 25\r",
+ "10 9 26\r",
+ "10 9 27\r",
+ "10 9 28\r",
+ "10 9 29\r",
+ "10 9 30\r",
+ "10 9 31\r",
+ "10 9 32\r",
+ "10 9 33\r",
+ "10 9 34\r",
+ "10 9 35\r",
+ "10 9 36\r",
+ "10 9 37\r",
+ "10 9 38\r",
+ "10 9 39\r",
+ "10 9 40\r",
+ "10 9 41\r",
+ "10 9 42\r",
+ "10 9 43\r",
+ "10 9 44\r",
+ "10 9 45\r",
+ "10 9 46\r",
+ "10 9 47\r",
+ "10 9 48\r",
+ "10 9 49\r",
+ "10 9 50\r",
+ "10 9 51\r",
+ "10 9 52\r",
+ "10 9 53\r",
+ "10 9 54\r",
+ "10 9 55\r",
+ "10 9 56\r",
+ "10 9 57\r",
+ "10 9 58\r",
+ "10 10 1\r",
+ "10 10 2\r",
+ "10 10 3\r",
+ "10 10 4\r",
+ "10 10 5\r",
+ "10 10 6\r",
+ "10 10 7\r",
+ "10 10 8\r",
+ "10 10 9\r",
+ "10 10 10\r",
+ "10 10 11\r",
+ "10 10 12\r",
+ "10 10 13\r",
+ "10 10 14\r",
+ "10 10 15\r",
+ "10 10 16\r",
+ "10 10 17\r",
+ "10 10 18\r",
+ "10 10 19\r",
+ "10 10 20\r",
+ "10 10 21\r",
+ "10 10 22\r",
+ "10 10 23\r",
+ "10 10 24\r",
+ "10 10 25\r",
+ "10 10 26\r",
+ "10 10 27\r",
+ "10 10 28\r",
+ "10 10 29\r",
+ "10 10 30\r",
+ "10 10 31\r",
+ "10 10 32\r",
+ "10 10 33\r",
+ "10 10 34\r",
+ "10 10 35\r",
+ "10 10 36\r",
+ "10 10 37\r",
+ "10 10 38\r",
+ "10 10 39\r",
+ "10 10 40\r",
+ "10 10 41\r",
+ "10 10 42\r",
+ "10 10 43\r",
+ "10 10 44\r",
+ "10 10 45\r",
+ "10 10 46\r",
+ "10 10 47\r",
+ "10 10 48\r",
+ "10 10 49\r",
+ "10 10 50\r",
+ "10 10 51\r",
+ "10 10 52\r",
+ "10 10 53\r",
+ "10 10 54\r",
+ "10 10 55\r",
+ "10 10 56\r",
+ "10 10 57\r",
+ "10 10 58\r",
+ "10 11 1\r",
+ "10 11 2\r",
+ "10 11 3\r",
+ "10 11 4\r",
+ "10 11 5\r",
+ "10 11 6\r",
+ "10 11 7\r",
+ "10 11 8\r",
+ "10 11 9\r",
+ "10 11 10\r",
+ "10 11 11\r",
+ "10 11 12\r",
+ "10 11 13\r",
+ "10 11 14\r",
+ "10 11 15\r",
+ "10 11 16\r",
+ "10 11 17\r",
+ "10 11 18\r",
+ "10 11 19\r",
+ "10 11 20\r",
+ "10 11 21\r",
+ "10 11 22\r",
+ "10 11 23\r",
+ "10 11 24\r",
+ "10 11 25\r",
+ "10 11 26\r",
+ "10 11 27\r",
+ "10 11 28\r",
+ "10 11 29\r",
+ "10 11 30\r",
+ "10 11 31\r",
+ "10 11 32\r",
+ "10 11 33\r",
+ "10 11 34\r",
+ "10 11 35\r",
+ "10 11 36\r",
+ "10 11 37\r",
+ "10 11 38\r",
+ "10 11 39\r",
+ "10 11 40\r",
+ "10 11 41\r",
+ "10 11 42\r",
+ "10 11 43\r",
+ "10 11 44\r",
+ "10 11 45\r",
+ "10 11 46\r",
+ "10 11 47\r",
+ "10 11 48\r",
+ "10 11 49\r",
+ "10 11 50\r",
+ "10 11 51\r",
+ "10 11 52\r",
+ "10 11 53\r",
+ "10 11 54\r",
+ "10 11 55\r",
+ "10 11 56\r",
+ "10 11 57\r",
+ "10 11 58\r",
+ "10 12 1\r",
+ "10 12 2\r",
+ "10 12 3\r",
+ "10 12 4\r",
+ "10 12 5\r",
+ "10 12 6\r",
+ "10 12 7\r",
+ "10 12 8\r",
+ "10 12 9\r",
+ "10 12 10\r",
+ "10 12 11\r",
+ "10 12 12\r",
+ "10 12 13\r",
+ "10 12 14\r",
+ "10 12 15\r",
+ "10 12 16\r",
+ "10 12 17\r",
+ "10 12 18\r",
+ "10 12 19\r",
+ "10 12 20\r",
+ "10 12 21\r",
+ "10 12 22\r",
+ "10 12 23\r",
+ "10 12 24\r",
+ "10 12 25\r",
+ "10 12 26\r",
+ "10 12 27\r",
+ "10 12 28\r",
+ "10 12 29\r",
+ "10 12 30\r",
+ "10 12 31\r",
+ "10 12 32\r",
+ "10 12 33\r",
+ "10 12 34\r",
+ "10 12 35\r",
+ "10 12 36\r",
+ "10 12 37\r",
+ "10 12 38\r",
+ "10 12 39\r",
+ "10 12 40\r",
+ "10 12 41\r",
+ "10 12 42\r",
+ "10 12 43\r",
+ "10 12 44\r",
+ "10 12 45\r",
+ "10 12 46\r",
+ "10 12 47\r",
+ "10 12 48\r",
+ "10 12 49\r",
+ "10 12 50\r",
+ "10 12 51\r",
+ "10 12 52\r",
+ "10 12 53\r",
+ "10 12 54\r",
+ "10 12 55\r",
+ "10 12 56\r",
+ "10 12 57\r",
+ "10 12 58\r",
+ "10 13 1\r",
+ "10 13 2\r",
+ "10 13 3\r",
+ "10 13 4\r",
+ "10 13 5\r",
+ "10 13 6\r",
+ "10 13 7\r",
+ "10 13 8\r",
+ "10 13 9\r",
+ "10 13 10\r",
+ "10 13 11\r",
+ "10 13 12\r",
+ "10 13 13\r",
+ "10 13 14\r",
+ "10 13 15\r",
+ "10 13 16\r",
+ "10 13 17\r",
+ "10 13 18\r",
+ "10 13 19\r",
+ "10 13 20\r",
+ "10 13 21\r",
+ "10 13 22\r",
+ "10 13 23\r",
+ "10 13 24\r",
+ "10 13 25\r",
+ "10 13 26\r",
+ "10 13 27\r",
+ "10 13 28\r",
+ "10 13 29\r",
+ "10 13 30\r",
+ "10 13 31\r",
+ "10 13 32\r",
+ "10 13 33\r",
+ "10 13 34\r",
+ "10 13 35\r",
+ "10 13 36\r",
+ "10 13 37\r",
+ "10 13 38\r",
+ "10 13 39\r",
+ "10 13 40\r",
+ "10 13 41\r",
+ "10 13 42\r",
+ "10 13 43\r",
+ "10 13 44\r",
+ "10 13 45\r",
+ "10 13 46\r",
+ "10 13 47\r",
+ "10 13 48\r",
+ "10 13 49\r",
+ "10 13 50\r",
+ "10 13 51\r",
+ "10 13 52\r",
+ "10 13 53\r",
+ "10 13 54\r",
+ "10 13 55\r",
+ "10 13 56\r",
+ "10 13 57\r",
+ "10 13 58\r",
+ "10 14 1\r",
+ "10 14 2\r",
+ "10 14 3\r",
+ "10 14 4\r",
+ "10 14 5\r",
+ "10 14 6\r",
+ "10 14 7\r",
+ "10 14 8\r",
+ "10 14 9\r",
+ "10 14 10\r",
+ "10 14 11\r",
+ "10 14 12\r",
+ "10 14 13\r",
+ "10 14 14\r",
+ "10 14 15\r",
+ "10 14 16\r",
+ "10 14 17\r",
+ "10 14 18\r",
+ "10 14 19\r",
+ "10 14 20\r",
+ "10 14 21\r",
+ "10 14 22\r",
+ "10 14 23\r",
+ "10 14 24\r",
+ "10 14 25\r",
+ "10 14 26\r",
+ "10 14 27\r",
+ "10 14 28\r",
+ "10 14 29\r",
+ "10 14 30\r",
+ "10 14 31\r",
+ "10 14 32\r",
+ "10 14 33\r",
+ "10 14 34\r",
+ "10 14 35\r",
+ "10 14 36\r",
+ "10 14 37\r",
+ "10 14 38\r",
+ "10 14 39\r",
+ "10 14 40\r",
+ "10 14 41\r",
+ "10 14 42\r",
+ "10 14 43\r",
+ "10 14 44\r",
+ "10 14 45\r",
+ "10 14 46\r",
+ "10 14 47\r",
+ "10 14 48\r",
+ "10 14 49\r",
+ "10 14 50\r",
+ "10 14 51\r",
+ "10 14 52\r",
+ "10 14 53\r",
+ "10 14 54\r",
+ "10 14 55\r",
+ "10 14 56\r",
+ "10 14 57\r",
+ "10 14 58\r",
+ "10 15 1\r",
+ "10 15 2\r",
+ "10 15 3\r",
+ "10 15 4\r",
+ "10 15 5\r",
+ "10 15 6\r",
+ "10 15 7\r",
+ "10 15 8\r",
+ "10 15 9\r",
+ "10 15 10\r",
+ "10 15 11\r",
+ "10 15 12\r",
+ "10 15 13\r",
+ "10 15 14\r",
+ "10 15 15\r",
+ "10 15 16\r",
+ "10 15 17\r",
+ "10 15 18\r",
+ "10 15 19\r",
+ "10 15 20\r",
+ "10 15 21\r",
+ "10 15 22\r",
+ "10 15 23\r",
+ "10 15 24\r",
+ "10 15 25\r",
+ "10 15 26\r",
+ "10 15 27\r",
+ "10 15 28\r",
+ "10 15 29\r",
+ "10 15 30\r",
+ "10 15 31\r",
+ "10 15 32\r",
+ "10 15 33\r",
+ "10 15 34\r",
+ "10 15 35\r",
+ "10 15 36\r",
+ "10 15 37\r",
+ "10 15 38\r",
+ "10 15 39\r",
+ "10 15 40\r",
+ "10 15 41\r",
+ "10 15 42\r",
+ "10 15 43\r",
+ "10 15 44\r",
+ "10 15 45\r",
+ "10 15 46\r",
+ "10 15 47\r",
+ "10 15 48\r",
+ "10 15 49\r",
+ "10 15 50\r",
+ "10 15 51\r",
+ "10 15 52\r",
+ "10 15 53\r",
+ "10 15 54\r",
+ "10 15 55\r",
+ "10 15 56\r",
+ "10 15 57\r",
+ "10 15 58\r",
+ "10 16 1\r",
+ "10 16 2\r",
+ "10 16 3\r",
+ "10 16 4\r",
+ "10 16 5\r",
+ "10 16 6\r",
+ "10 16 7\r",
+ "10 16 8\r",
+ "10 16 9\r",
+ "10 16 10\r",
+ "10 16 11\r",
+ "10 16 12\r",
+ "10 16 13\r",
+ "10 16 14\r",
+ "10 16 15\r",
+ "10 16 16\r",
+ "10 16 17\r",
+ "10 16 18\r",
+ "10 16 19\r",
+ "10 16 20\r",
+ "10 16 21\r",
+ "10 16 22\r",
+ "10 16 23\r",
+ "10 16 24\r",
+ "10 16 25\r",
+ "10 16 26\r",
+ "10 16 27\r",
+ "10 16 28\r",
+ "10 16 29\r",
+ "10 16 30\r",
+ "10 16 31\r",
+ "10 16 32\r",
+ "10 16 33\r",
+ "10 16 34\r",
+ "10 16 35\r",
+ "10 16 36\r",
+ "10 16 37\r",
+ "10 16 38\r",
+ "10 16 39\r",
+ "10 16 40\r",
+ "10 16 41\r",
+ "10 16 42\r",
+ "10 16 43\r",
+ "10 16 44\r",
+ "10 16 45\r",
+ "10 16 46\r",
+ "10 16 47\r",
+ "10 16 48\r",
+ "10 16 49\r",
+ "10 16 50\r",
+ "10 16 51\r",
+ "10 16 52\r",
+ "10 16 53\r",
+ "10 16 54\r",
+ "10 16 55\r",
+ "10 16 56\r",
+ "10 16 57\r",
+ "10 16 58\r",
+ "10 17 1\r",
+ "10 17 2\r",
+ "10 17 3\r",
+ "10 17 4\r",
+ "10 17 5\r",
+ "10 17 6\r",
+ "10 17 7\r",
+ "10 17 8\r",
+ "10 17 9\r",
+ "10 17 10\r",
+ "10 17 11\r",
+ "10 17 12\r",
+ "10 17 13\r",
+ "10 17 14\r",
+ "10 17 15\r",
+ "10 17 16\r",
+ "10 17 17\r",
+ "10 17 18\r",
+ "10 17 19\r",
+ "10 17 20\r",
+ "10 17 21\r",
+ "10 17 22\r",
+ "10 17 23\r",
+ "10 17 24\r",
+ "10 17 25\r",
+ "10 17 26\r",
+ "10 17 27\r",
+ "10 17 28\r",
+ "10 17 29\r",
+ "10 17 30\r",
+ "10 17 31\r",
+ "10 17 32\r",
+ "10 17 33\r",
+ "10 17 34\r",
+ "10 17 35\r",
+ "10 17 36\r",
+ "10 17 37\r",
+ "10 17 38\r",
+ "10 17 39\r",
+ "10 17 40\r",
+ "10 17 41\r",
+ "10 17 42\r",
+ "10 17 43\r",
+ "10 17 44\r",
+ "10 17 45\r",
+ "10 17 46\r",
+ "10 17 47\r",
+ "10 17 48\r",
+ "10 17 49\r",
+ "10 17 50\r",
+ "10 17 51\r",
+ "10 17 52\r",
+ "10 17 53\r",
+ "10 17 54\r",
+ "10 17 55\r",
+ "10 17 56\r",
+ "10 17 57\r",
+ "10 17 58\r",
+ "10 18 1\r",
+ "10 18 2\r",
+ "10 18 3\r",
+ "10 18 4\r",
+ "10 18 5\r",
+ "10 18 6\r",
+ "10 18 7\r",
+ "10 18 8\r",
+ "10 18 9\r",
+ "10 18 10\r",
+ "10 18 11\r",
+ "10 18 12\r",
+ "10 18 13\r",
+ "10 18 14\r",
+ "10 18 15\r",
+ "10 18 16\r",
+ "10 18 17\r",
+ "10 18 18\r",
+ "10 18 19\r",
+ "10 18 20\r",
+ "10 18 21\r",
+ "10 18 22\r",
+ "10 18 23\r",
+ "10 18 24\r",
+ "10 18 25\r",
+ "10 18 26\r",
+ "10 18 27\r",
+ "10 18 28\r",
+ "10 18 29\r",
+ "10 18 30\r",
+ "10 18 31\r",
+ "10 18 32\r",
+ "10 18 33\r",
+ "10 18 34\r",
+ "10 18 35\r",
+ "10 18 36\r",
+ "10 18 37\r",
+ "10 18 38\r",
+ "10 18 39\r",
+ "10 18 40\r",
+ "10 18 41\r",
+ "10 18 42\r",
+ "10 18 43\r",
+ "10 18 44\r",
+ "10 18 45\r",
+ "10 18 46\r",
+ "10 18 47\r",
+ "10 18 48\r",
+ "10 18 49\r",
+ "10 18 50\r",
+ "10 18 51\r",
+ "10 18 52\r",
+ "10 18 53\r",
+ "10 18 54\r",
+ "10 18 55\r",
+ "10 18 56\r",
+ "10 18 57\r",
+ "10 18 58\r",
+ "10 19 1\r",
+ "10 19 2\r",
+ "10 19 3\r",
+ "10 19 4\r",
+ "10 19 5\r",
+ "10 19 6\r",
+ "10 19 7\r",
+ "10 19 8\r",
+ "10 19 9\r",
+ "10 19 10\r",
+ "10 19 11\r",
+ "10 19 12\r",
+ "10 19 13\r",
+ "10 19 14\r",
+ "10 19 15\r",
+ "10 19 16\r",
+ "10 19 17\r",
+ "10 19 18\r",
+ "10 19 19\r",
+ "10 19 20\r",
+ "10 19 21\r",
+ "10 19 22\r",
+ "10 19 23\r",
+ "10 19 24\r",
+ "10 19 25\r",
+ "10 19 26\r",
+ "10 19 27\r",
+ "10 19 28\r",
+ "10 19 29\r",
+ "10 19 30\r",
+ "10 19 31\r",
+ "10 19 32\r",
+ "10 19 33\r",
+ "10 19 34\r",
+ "10 19 35\r",
+ "10 19 36\r",
+ "10 19 37\r",
+ "10 19 38\r",
+ "10 19 39\r",
+ "10 19 40\r",
+ "10 19 41\r",
+ "10 19 42\r",
+ "10 19 43\r",
+ "10 19 44\r",
+ "10 19 45\r",
+ "10 19 46\r",
+ "10 19 47\r",
+ "10 19 48\r",
+ "10 19 49\r",
+ "10 19 50\r",
+ "10 19 51\r",
+ "10 19 52\r",
+ "10 19 53\r",
+ "10 19 54\r",
+ "10 19 55\r",
+ "10 19 56\r",
+ "10 19 57\r",
+ "10 19 58\r",
+ "10 20 1\r",
+ "10 20 2\r",
+ "10 20 3\r",
+ "10 20 4\r",
+ "10 20 5\r",
+ "10 20 6\r",
+ "10 20 7\r",
+ "10 20 8\r",
+ "10 20 9\r",
+ "10 20 10\r",
+ "10 20 11\r",
+ "10 20 12\r",
+ "10 20 13\r",
+ "10 20 14\r",
+ "10 20 15\r",
+ "10 20 16\r",
+ "10 20 17\r",
+ "10 20 18\r",
+ "10 20 19\r",
+ "10 20 20\r",
+ "10 20 21\r",
+ "10 20 22\r",
+ "10 20 23\r",
+ "10 20 24\r",
+ "10 20 25\r",
+ "10 20 26\r",
+ "10 20 27\r",
+ "10 20 28\r",
+ "10 20 29\r",
+ "10 20 30\r",
+ "10 20 31"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\r",
+ "10 20 32\r",
+ "10 20 33\r",
+ "10 20 34\r",
+ "10 20 35\r",
+ "10 20 36\r",
+ "10 20 37\r",
+ "10 20 38\r",
+ "10 20 39\r",
+ "10 20 40\r",
+ "10 20 41\r",
+ "10 20 42\r",
+ "10 20 43\r",
+ "10 20 44\r",
+ "10 20 45\r",
+ "10 20 46\r",
+ "10 20 47\r",
+ "10 20 48\r",
+ "10 20 49\r",
+ "10 20 50\r",
+ "10 20 51\r",
+ "10 20 52\r",
+ "10 20 53\r",
+ "10 20 54\r",
+ "10 20 55\r",
+ "10 20 56\r",
+ "10 20 57\r",
+ "10 20 58\r",
+ "10 21 1\r",
+ "10 21 2\r",
+ "10 21 3\r",
+ "10 21 4\r",
+ "10 21 5\r",
+ "10 21 6\r",
+ "10 21 7\r",
+ "10 21 8\r",
+ "10 21 9\r",
+ "10 21 10\r",
+ "10 21 11\r",
+ "10 21 12\r",
+ "10 21 13\r",
+ "10 21 14\r",
+ "10 21 15\r",
+ "10 21 16\r",
+ "10 21 17\r",
+ "10 21 18\r",
+ "10 21 19\r",
+ "10 21 20\r",
+ "10 21 21\r",
+ "10 21 22\r",
+ "10 21 23\r",
+ "10 21 24\r",
+ "10 21 25\r",
+ "10 21 26\r",
+ "10 21 27\r",
+ "10 21 28\r",
+ "10 21 29\r",
+ "10 21 30\r",
+ "10 21 31\r",
+ "10 21 32\r",
+ "10 21 33\r",
+ "10 21 34\r",
+ "10 21 35\r",
+ "10 21 36\r",
+ "10 21 37\r",
+ "10 21 38\r",
+ "10 21 39\r",
+ "10 21 40\r",
+ "10 21 41\r",
+ "10 21 42\r",
+ "10 21 43\r",
+ "10 21 44\r",
+ "10 21 45\r",
+ "10 21 46\r",
+ "10 21 47\r",
+ "10 21 48\r",
+ "10 21 49\r",
+ "10 21 50\r",
+ "10 21 51\r",
+ "10 21 52\r",
+ "10 21 53\r",
+ "10 21 54\r",
+ "10 21 55\r",
+ "10 21 56\r",
+ "10 21 57\r",
+ "10 21 58\r",
+ "10 22 1\r",
+ "10 22 2\r",
+ "10 22 3\r",
+ "10 22 4\r",
+ "10 22 5\r",
+ "10 22 6\r",
+ "10 22 7\r",
+ "10 22 8\r",
+ "10 22 9\r",
+ "10 22 10\r",
+ "10 22 11\r",
+ "10 22 12\r",
+ "10 22 13\r",
+ "10 22 14\r",
+ "10 22 15\r",
+ "10 22 16\r",
+ "10 22 17\r",
+ "10 22 18\r",
+ "10 22 19\r",
+ "10 22 20\r",
+ "10 22 21\r",
+ "10 22 22\r",
+ "10 22 23\r",
+ "10 22 24\r",
+ "10 22 25\r",
+ "10 22 26\r",
+ "10 22 27\r",
+ "10 22 28\r",
+ "10 22 29\r",
+ "10 22 30\r",
+ "10 22 31\r",
+ "10 22 32\r",
+ "10 22 33\r",
+ "10 22 34\r",
+ "10 22 35\r",
+ "10 22 36\r",
+ "10 22 37\r",
+ "10 22 38\r",
+ "10 22 39\r",
+ "10 22 40\r",
+ "10 22 41\r",
+ "10 22 42\r",
+ "10 22 43\r",
+ "10 22 44\r",
+ "10 22 45\r",
+ "10 22 46\r",
+ "10 22 47\r",
+ "10 22 48\r",
+ "10 22 49\r",
+ "10 22 50\r",
+ "10 22 51\r",
+ "10 22 52\r",
+ "10 22 53\r",
+ "10 22 54\r",
+ "10 22 55\r",
+ "10 22 56\r",
+ "10 22 57\r",
+ "10 22 58\r",
+ "10 23 1\r",
+ "10 23 2\r",
+ "10 23 3\r",
+ "10 23 4\r",
+ "10 23 5\r",
+ "10 23 6\r",
+ "10 23 7\r",
+ "10 23 8\r",
+ "10 23 9\r",
+ "10 23 10\r",
+ "10 23 11\r",
+ "10 23 12\r",
+ "10 23 13\r",
+ "10 23 14\r",
+ "10 23 15\r",
+ "10 23 16\r",
+ "10 23 17\r",
+ "10 23 18\r",
+ "10 23 19\r",
+ "10 23 20\r",
+ "10 23 21\r",
+ "10 23 22\r",
+ "10 23 23\r",
+ "10 23 24\r",
+ "10 23 25\r",
+ "10 23 26\r",
+ "10 23 27\r",
+ "10 23 28\r",
+ "10 23 29\r",
+ "10 23 30\r",
+ "10 23 31\r",
+ "10 23 32\r",
+ "10 23 33\r",
+ "10 23 34\r",
+ "10 23 35\r",
+ "10 23 36\r",
+ "10 23 37\r",
+ "10 23 38\r",
+ "10 23 39\r",
+ "10 23 40\r",
+ "10 23 41\r",
+ "10 23 42\r",
+ "10 23 43\r",
+ "10 23 44\r",
+ "10 23 45\r",
+ "10 23 46\r",
+ "10 23 47\r",
+ "10 23 48\r",
+ "10 23 49\r",
+ "10 23 50\r",
+ "10 23 51\r",
+ "10 23 52\r",
+ "10 23 53\r",
+ "10 23 54\r",
+ "10 23 55\r",
+ "10 23 56\r",
+ "10 23 57\r",
+ "10 23 58\r",
+ "10 24 1\r",
+ "10 24 2\r",
+ "10 24 3\r",
+ "10 24 4\r",
+ "10 24 5\r",
+ "10 24 6\r",
+ "10 24 7\r",
+ "10 24 8\r",
+ "10 24 9\r",
+ "10 24 10\r",
+ "10 24 11\r",
+ "10 24 12\r",
+ "10 24 13\r",
+ "10 24 14\r",
+ "10 24 15\r",
+ "10 24 16\r",
+ "10 24 17\r",
+ "10 24 18\r",
+ "10 24 19\r",
+ "10 24 20\r",
+ "10 24 21\r",
+ "10 24 22\r",
+ "10 24 23\r",
+ "10 24 24\r",
+ "10 24 25\r",
+ "10 24 26\r",
+ "10 24 27\r",
+ "10 24 28\r",
+ "10 24 29\r",
+ "10 24 30\r",
+ "10 24 31\r",
+ "10 24 32\r",
+ "10 24 33\r",
+ "10 24 34\r",
+ "10 24 35\r",
+ "10 24 36\r",
+ "10 24 37\r",
+ "10 24 38\r",
+ "10 24 39\r",
+ "10 24 40\r",
+ "10 24 41\r",
+ "10 24 42\r",
+ "10 24 43\r",
+ "10 24 44\r",
+ "10 24 45\r",
+ "10 24 46\r",
+ "10 24 47\r",
+ "10 24 48\r",
+ "10 24 49\r",
+ "10 24 50\r",
+ "10 24 51\r",
+ "10 24 52\r",
+ "10 24 53\r",
+ "10 24 54\r",
+ "10 24 55\r",
+ "10 24 56\r",
+ "10 24 57\r",
+ "10 24 58\r",
+ "10 25 1\r",
+ "10 25 2\r",
+ "10 25 3\r",
+ "10 25 4\r",
+ "10 25 5\r",
+ "10 25 6\r",
+ "10 25 7\r",
+ "10 25 8\r",
+ "10 25 9\r",
+ "10 25 10\r",
+ "10 25 11\r",
+ "10 25 12\r",
+ "10 25 13\r",
+ "10 25 14\r",
+ "10 25 15\r",
+ "10 25 16\r",
+ "10 25 17\r",
+ "10 25 18\r",
+ "10 25 19\r",
+ "10 25 20\r",
+ "10 25 21\r",
+ "10 25 22\r",
+ "10 25 23\r",
+ "10 25 24\r",
+ "10 25 25\r",
+ "10 25 26\r",
+ "10 25 27\r",
+ "10 25 28\r",
+ "10 25 29\r",
+ "10 25 30\r",
+ "10 25 31\r",
+ "10 25 32\r",
+ "10 25 33\r",
+ "10 25 34\r",
+ "10 25 35\r",
+ "10 25 36\r",
+ "10 25 37\r",
+ "10 25 38\r",
+ "10 25 39\r",
+ "10 25 40\r",
+ "10 25 41\r",
+ "10 25 42\r",
+ "10 25 43\r",
+ "10 25 44\r",
+ "10 25 45\r",
+ "10 25 46\r",
+ "10 25 47\r",
+ "10 25 48\r",
+ "10 25 49\r",
+ "10 25 50\r",
+ "10 25 51\r",
+ "10 25 52\r",
+ "10 25 53\r",
+ "10 25 54\r",
+ "10 25 55\r",
+ "10 25 56\r",
+ "10 25 57\r",
+ "10 25 58\r",
+ "10 26 1\r",
+ "10 26 2\r",
+ "10 26 3\r",
+ "10 26 4\r",
+ "10 26 5\r",
+ "10 26 6\r",
+ "10 26 7\r",
+ "10 26 8\r",
+ "10 26 9\r",
+ "10 26 10\r",
+ "10 26 11\r",
+ "10 26 12\r",
+ "10 26 13\r",
+ "10 26 14\r",
+ "10 26 15\r",
+ "10 26 16\r",
+ "10 26 17\r",
+ "10 26 18\r",
+ "10 26 19\r",
+ "10 26 20\r",
+ "10 26 21\r",
+ "10 26 22\r",
+ "10 26 23\r",
+ "10 26 24\r",
+ "10 26 25\r",
+ "10 26 26\r",
+ "10 26 27\r",
+ "10 26 28\r",
+ "10 26 29\r",
+ "10 26 30\r",
+ "10 26 31\r",
+ "10 26 32\r",
+ "10 26 33\r",
+ "10 26 34\r",
+ "10 26 35\r",
+ "10 26 36\r",
+ "10 26 37\r",
+ "10 26 38\r",
+ "10 26 39\r",
+ "10 26 40\r",
+ "10 26 41\r",
+ "10 26 42\r",
+ "10 26 43\r",
+ "10 26 44\r",
+ "10 26 45\r",
+ "10 26 46\r",
+ "10 26 47\r",
+ "10 26 48\r",
+ "10 26 49\r",
+ "10 26 50\r",
+ "10 26 51\r",
+ "10 26 52\r",
+ "10 26 53\r",
+ "10 26 54\r",
+ "10 26 55\r",
+ "10 26 56\r",
+ "10 26 57\r",
+ "10 26 58\r",
+ "10 27 1\r",
+ "10 27 2\r",
+ "10 27 3\r",
+ "10 27 4\r",
+ "10 27 5\r",
+ "10 27 6\r",
+ "10 27 7\r",
+ "10 27 8\r",
+ "10 27 9\r",
+ "10 27 10\r",
+ "10 27 11\r",
+ "10 27 12\r",
+ "10 27 13\r",
+ "10 27 14\r",
+ "10 27 15\r",
+ "10 27 16\r",
+ "10 27 17\r",
+ "10 27 18\r",
+ "10 27 19\r",
+ "10 27 20\r",
+ "10 27 21\r",
+ "10 27 22\r",
+ "10 27 23\r",
+ "10 27 24\r",
+ "10 27 25\r",
+ "10 27 26\r",
+ "10 27 27\r",
+ "10 27 28\r",
+ "10 27 29\r",
+ "10 27 30\r",
+ "10 27 31\r",
+ "10 27 32\r",
+ "10 27 33\r",
+ "10 27 34\r",
+ "10 27 35\r",
+ "10 27 36\r",
+ "10 27 37\r",
+ "10 27 38\r",
+ "10 27 39\r",
+ "10 27 40\r",
+ "10 27 41\r",
+ "10 27 42\r",
+ "10 27 43\r",
+ "10 27 44\r",
+ "10 27 45\r",
+ "10 27 46\r",
+ "10 27 47\r",
+ "10 27 48\r",
+ "10 27 49\r",
+ "10 27 50\r",
+ "10 27 51\r",
+ "10 27 52\r",
+ "10 27 53\r",
+ "10 27 54\r",
+ "10 27 55\r",
+ "10 27 56\r",
+ "10 27 57\r",
+ "10 27 58\r",
+ "10 28 1\r",
+ "10 28 2\r",
+ "10 28 3\r",
+ "10 28 4\r",
+ "10 28 5\r",
+ "10 28 6\r",
+ "10 28 7\r",
+ "10 28 8\r",
+ "10 28 9\r",
+ "10 28 10\r",
+ "10 28 11\r",
+ "10 28 12\r",
+ "10 28 13\r",
+ "10 28 14\r",
+ "10 28 15\r",
+ "10 28 16\r",
+ "10 28 17\r",
+ "10 28 18\r",
+ "10 28 19\r",
+ "10 28 20\r",
+ "10 28 21\r",
+ "10 28 22\r",
+ "10 28 23\r",
+ "10 28 24\r",
+ "10 28 25\r",
+ "10 28 26\r",
+ "10 28 27\r",
+ "10 28 28\r",
+ "10 28 29\r",
+ "10 28 30\r",
+ "10 28 31\r",
+ "10 28 32\r",
+ "10 28 33\r",
+ "10 28 34\r",
+ "10 28 35\r",
+ "10 28 36\r",
+ "10 28 37\r",
+ "10 28 38\r",
+ "10 28 39\r",
+ "10 28 40\r",
+ "10 28 41\r",
+ "10 28 42\r",
+ "10 28 43\r",
+ "10 28 44\r",
+ "10 28 45\r",
+ "10 28 46\r",
+ "10 28 47\r",
+ "10 28 48\r",
+ "10 28 49\r",
+ "10 28 50\r",
+ "10 28 51\r",
+ "10 28 52\r",
+ "10 28 53\r",
+ "10 28 54\r",
+ "10 28 55\r",
+ "10 28 56\r",
+ "10 28 57\r",
+ "10 28 58\r",
+ "10 29 1\r",
+ "10 29 2\r",
+ "10 29 3\r",
+ "10 29 4\r",
+ "10 29 5\r",
+ "10 29 6\r",
+ "10 29 7\r",
+ "10 29 8\r",
+ "10 29 9\r",
+ "10 29 10\r",
+ "10 29 11\r",
+ "10 29 12\r",
+ "10 29 13\r",
+ "10 29 14\r",
+ "10 29 15\r",
+ "10 29 16\r",
+ "10 29 17\r",
+ "10 29 18\r",
+ "10 29 19\r",
+ "10 29 20\r",
+ "10 29 21\r",
+ "10 29 22\r",
+ "10 29 23\r",
+ "10 29 24\r",
+ "10 29 25\r",
+ "10 29 26\r",
+ "10 29 27\r",
+ "10 29 28\r",
+ "10 29 29\r",
+ "10 29 30\r",
+ "10 29 31\r",
+ "10 29 32\r",
+ "10 29 33\r",
+ "10 29 34\r",
+ "10 29 35\r",
+ "10 29 36\r",
+ "10 29 37\r",
+ "10 29 38\r",
+ "10 29 39\r",
+ "10 29 40\r",
+ "10 29 41\r",
+ "10 29 42\r",
+ "10 29 43\r",
+ "10 29 44\r",
+ "10 29 45\r",
+ "10 29 46\r",
+ "10 29 47\r",
+ "10 29 48\r",
+ "10 29 49\r",
+ "10 29 50\r",
+ "10 29 51\r",
+ "10 29 52\r",
+ "10 29 53\r",
+ "10 29 54\r",
+ "10 29 55\r",
+ "10 29 56\r",
+ "10 29 57\r",
+ "10 29 58\r",
+ "10 30 1\r",
+ "10 30 2\r",
+ "10 30 3\r",
+ "10 30 4\r",
+ "10 30 5\r",
+ "10 30 6\r",
+ "10 30 7\r",
+ "10 30 8\r",
+ "10 30 9\r",
+ "10 30 10\r",
+ "10 30 11\r",
+ "10 30 12\r",
+ "10 30 13\r",
+ "10 30 14\r",
+ "10 30 15\r",
+ "10 30 16\r",
+ "10 30 17\r",
+ "10 30 18\r",
+ "10 30 19\r",
+ "10 30 20\r",
+ "10 30 21\r",
+ "10 30 22\r",
+ "10 30 23\r",
+ "10 30 24\r",
+ "10 30 25\r",
+ "10 30 26\r",
+ "10 30 27\r",
+ "10 30 28\r",
+ "10 30 29\r",
+ "10 30 30\r",
+ "10 30 31\r",
+ "10 30 32\r",
+ "10 30 33\r",
+ "10 30 34\r",
+ "10 30 35\r",
+ "10 30 36\r",
+ "10 30 37\r",
+ "10 30 38\r",
+ "10 30 39\r",
+ "10 30 40\r",
+ "10 30 41\r",
+ "10 30 42\r",
+ "10 30 43\r",
+ "10 30 44\r",
+ "10 30 45\r",
+ "10 30 46\r",
+ "10 30 47\r",
+ "10 30 48\r",
+ "10 30 49\r",
+ "10 30 50\r",
+ "10 30 51\r",
+ "10 30 52\r",
+ "10 30 53\r",
+ "10 30 54\r",
+ "10 30 55\r",
+ "10 30 56\r",
+ "10 30 57\r",
+ "10 30 58\r",
+ "10 31 1\r",
+ "10 31 2\r",
+ "10 31 3\r",
+ "10 31 4\r",
+ "10 31 5\r",
+ "10 31 6\r",
+ "10 31 7\r",
+ "10 31 8\r",
+ "10 31 9\r",
+ "10 31 10\r",
+ "10 31 11\r",
+ "10 31 12\r",
+ "10 31 13\r",
+ "10 31 14\r",
+ "10 31 15\r",
+ "10 31 16\r",
+ "10 31 17\r",
+ "10 31 18\r",
+ "10 31 19\r",
+ "10 31 20\r",
+ "10 31 21\r",
+ "10 31 22\r",
+ "10 31 23\r",
+ "10 31 24\r",
+ "10 31 25\r",
+ "10 31 26\r",
+ "10 31 27\r",
+ "10 31 28\r",
+ "10 31 29\r",
+ "10 31 30\r",
+ "10 31 31\r",
+ "10 31 32\r",
+ "10 31 33\r",
+ "10 31 34\r",
+ "10 31 35\r",
+ "10 31 36\r",
+ "10 31 37\r",
+ "10 31 38\r",
+ "10 31 39\r",
+ "10 31 40\r",
+ "10 31 41\r",
+ "10 31 42\r",
+ "10 31 43\r",
+ "10 31 44\r",
+ "10 31 45\r",
+ "10 31 46\r",
+ "10 31 47\r",
+ "10 31 48\r",
+ "10 31 49\r",
+ "10 31 50\r",
+ "10 31 51\r",
+ "10 31 52\r",
+ "10 31 53\r",
+ "10 31 54\r",
+ "10 31 55\r",
+ "10 31 56\r",
+ "10 31 57\r",
+ "10 31 58\r",
+ "10 32 1\r",
+ "10 32 2\r",
+ "10 32 3\r",
+ "10 32 4\r",
+ "10 32 5\r",
+ "10 32 6\r",
+ "10 32 7\r",
+ "10 32 8\r",
+ "10 32 9\r",
+ "10 32 10\r",
+ "10 32 11\r",
+ "10 32 12\r",
+ "10 32 13\r",
+ "10 32 14\r",
+ "10 32 15\r",
+ "10 32 16\r",
+ "10 32 17\r",
+ "10 32 18\r",
+ "10 32 19\r",
+ "10 32 20\r",
+ "10 32 21\r",
+ "10 32 22\r",
+ "10 32 23\r",
+ "10 32 24\r",
+ "10 32 25\r",
+ "10 32 26\r",
+ "10 32 27\r",
+ "10 32 28\r",
+ "10 32 29\r",
+ "10 32 30\r",
+ "10 32 31\r",
+ "10 32 32\r",
+ "10 32 33\r",
+ "10 32 34\r",
+ "10 32 35\r",
+ "10 32 36\r",
+ "10 32 37\r",
+ "10 32 38\r",
+ "10 32 39\r",
+ "10 32 40\r",
+ "10 32 41\r",
+ "10 32 42\r",
+ "10 32 43\r",
+ "10 32 44\r",
+ "10 32 45\r",
+ "10 32 46\r",
+ "10 32 47\r",
+ "10 32 48\r",
+ "10 32 49\r",
+ "10 32 50\r",
+ "10 32 51\r",
+ "10 32 52\r",
+ "10 32 53\r",
+ "10 32 54\r",
+ "10 32 55\r",
+ "10 32 56\r",
+ "10 32 57\r",
+ "10 32 58\r",
+ "10 33 1\r",
+ "10 33 2\r",
+ "10 33 3\r",
+ "10 33 4\r",
+ "10 33 5\r",
+ "10 33 6\r",
+ "10 33 7\r",
+ "10 33 8\r",
+ "10 33 9\r",
+ "10 33 10\r",
+ "10 33 11\r",
+ "10 33 12\r",
+ "10 33 13\r",
+ "10 33 14\r",
+ "10 33 15\r",
+ "10 33 16\r",
+ "10 33 17\r",
+ "10 33 18\r",
+ "10 33 19\r",
+ "10 33 20\r",
+ "10 33 21\r",
+ "10 33 22\r",
+ "10 33 23\r",
+ "10 33 24\r",
+ "10 33 25\r",
+ "10 33 26\r",
+ "10 33 27\r",
+ "10 33 28\r",
+ "10 33 29\r",
+ "10 33 30\r",
+ "10 33 31\r",
+ "10 33 32\r",
+ "10 33 33\r",
+ "10 33 34\r",
+ "10 33 35\r",
+ "10 33 36\r",
+ "10 33 37\r",
+ "10 33 38\r",
+ "10 33 39\r",
+ "10 33 40\r",
+ "10 33 41\r",
+ "10 33 42\r",
+ "10 33 43\r",
+ "10 33 44\r",
+ "10 33 45\r",
+ "10 33 46\r",
+ "10 33 47\r",
+ "10 33 48\r",
+ "10 33 49\r",
+ "10 33 50\r",
+ "10 33 51\r",
+ "10 33 52\r",
+ "10 33 53\r",
+ "10 33 54\r",
+ "10 33 55\r",
+ "10 33 56\r",
+ "10 33 57\r",
+ "10 33 58\r",
+ "10 34 1\r",
+ "10 34 2\r",
+ "10 34 3\r",
+ "10 34 4\r",
+ "10 34 5\r",
+ "10 34 6\r",
+ "10 34 7\r",
+ "10 34 8\r",
+ "10 34 9\r",
+ "10 34 10\r",
+ "10 34 11\r",
+ "10 34 12\r",
+ "10 34 13\r",
+ "10 34 14\r",
+ "10 34 15\r",
+ "10 34 16\r",
+ "10 34 17\r",
+ "10 34 18\r",
+ "10 34 19\r",
+ "10 34 20\r",
+ "10 34 21\r",
+ "10 34 22\r",
+ "10 34 23\r",
+ "10 34 24\r",
+ "10 34 25\r",
+ "10 34 26\r",
+ "10 34 27\r",
+ "10 34 28\r",
+ "10 34 29\r",
+ "10 34 30\r",
+ "10 34 31\r",
+ "10 34 32\r",
+ "10 34 33\r",
+ "10 34 34\r",
+ "10 34 35\r",
+ "10 34 36\r",
+ "10 34 37\r",
+ "10 34 38\r",
+ "10 34 39\r",
+ "10 34 40\r",
+ "10 34 41\r",
+ "10 34 42\r",
+ "10 34 43\r",
+ "10 34 44\r",
+ "10 34 45\r",
+ "10 34 46\r",
+ "10 34 47\r",
+ "10 34 48\r",
+ "10 34 49\r",
+ "10 34 50\r",
+ "10 34 51\r",
+ "10 34 52\r",
+ "10 34 53\r",
+ "10 34 54\r",
+ "10 34 55\r",
+ "10 34 56\r",
+ "10 34 57\r",
+ "10 34 58\r",
+ "10 35 1\r",
+ "10 35 2\r",
+ "10 35 3\r",
+ "10 35 4\r",
+ "10 35 5\r",
+ "10 35 6\r",
+ "10 35 7\r",
+ "10 35 8\r",
+ "10 35 9\r",
+ "10 35 10\r",
+ "10 35 11\r",
+ "10 35 12\r",
+ "10 35 13\r",
+ "10 35 14\r",
+ "10 35 15\r",
+ "10 35 16\r",
+ "10 35 17\r",
+ "10 35 18\r",
+ "10 35 19\r",
+ "10 35 20\r",
+ "10 35 21\r",
+ "10 35 22\r",
+ "10 35 23\r",
+ "10 35 24\r",
+ "10 35 25\r",
+ "10 35 26\r",
+ "10 35 27\r",
+ "10 35 28\r",
+ "10 35 29\r",
+ "10 35 30\r",
+ "10 35 31\r",
+ "10 35 32\r",
+ "10 35 33\r",
+ "10 35 34\r",
+ "10 35 35\r",
+ "10 35 36\r",
+ "10 35 37\r",
+ "10 35 38\r",
+ "10 35 39\r",
+ "10 35 40\r",
+ "10 35 41\r",
+ "10 35 42\r",
+ "10 35 43\r",
+ "10 35 44\r",
+ "10 35 45\r",
+ "10 35 46\r",
+ "10 35 47\r",
+ "10 35 48\r",
+ "10 35 49\r",
+ "10 35 50\r",
+ "10 35 51\r",
+ "10 35 52\r",
+ "10 35 53\r",
+ "10 35 54\r",
+ "10 35 55\r",
+ "10 35 56\r",
+ "10 35 57\r",
+ "10 35 58\r",
+ "10 36 1\r",
+ "10 36 2\r",
+ "10 36 3\r",
+ "10 36 4\r",
+ "10 36 5\r",
+ "10 36 6\r",
+ "10 36 7\r",
+ "10 36 8\r",
+ "10 36 9\r",
+ "10 36 10\r",
+ "10 36 11\r",
+ "10 36 12\r",
+ "10 36 13\r",
+ "10 36 14\r",
+ "10 36 15\r",
+ "10 36 16\r",
+ "10 36 17\r",
+ "10 36 18\r",
+ "10 36 19\r",
+ "10 36 20\r",
+ "10 36 21\r",
+ "10 36 22\r",
+ "10 36 23\r",
+ "10 36 24\r",
+ "10 36 25\r",
+ "10 36 26\r",
+ "10 36 27\r",
+ "10 36 28\r",
+ "10 36 29\r",
+ "10 36 30\r",
+ "10 36 31\r",
+ "10 36 32\r",
+ "10 36 33\r",
+ "10 36 34\r",
+ "10 36 35\r",
+ "10 36 36\r",
+ "10 36 37\r",
+ "10 36 38\r",
+ "10 36 39\r",
+ "10 36 40\r",
+ "10 36 41\r",
+ "10 36 42\r",
+ "10 36 43\r",
+ "10 36 44\r",
+ "10 36 45\r",
+ "10 36 46\r",
+ "10 36 47\r",
+ "10 36 48\r",
+ "10 36 49\r",
+ "10 36 50\r",
+ "10 36 51\r",
+ "10 36 52\r",
+ "10 36 53\r",
+ "10 36 54\r",
+ "10 36 55\r",
+ "10 36 56\r",
+ "10 36 57\r",
+ "10 36 58\r",
+ "10 37 1\r",
+ "10 37 2\r",
+ "10 37 3\r",
+ "10 37 4\r",
+ "10 37 5\r",
+ "10 37 6\r",
+ "10 37 7\r",
+ "10 37 8\r",
+ "10 37 9\r",
+ "10 37 10\r",
+ "10 37 11\r",
+ "10 37 12\r",
+ "10 37 13\r",
+ "10 37 14\r",
+ "10 37 15\r",
+ "10 37 16\r",
+ "10 37 17\r",
+ "10 37 18\r",
+ "10 37 19\r",
+ "10 37 20\r",
+ "10 37 21\r",
+ "10 37 22\r",
+ "10 37 23\r",
+ "10 37 24\r",
+ "10 37 25\r",
+ "10 37 26\r",
+ "10 37 27\r",
+ "10 37 28\r",
+ "10 37 29\r",
+ "10 37 30\r",
+ "10 37 31\r",
+ "10 37 32\r",
+ "10 37 33\r",
+ "10 37 34\r",
+ "10 37 35\r",
+ "10 37 36\r",
+ "10 37 37\r",
+ "10 37 38\r",
+ "10 37 39\r",
+ "10 37 40\r",
+ "10 37 41\r",
+ "10 37 42\r",
+ "10 37 43\r",
+ "10 37 44\r",
+ "10 37 45\r",
+ "10 37 46\r",
+ "10 37 47\r",
+ "10 37 48\r",
+ "10 37 49\r",
+ "10 37 50\r",
+ "10 37 51\r",
+ "10 37 52\r",
+ "10 37 53\r",
+ "10 37 54\r",
+ "10 37 55\r",
+ "10 37 56\r",
+ "10 37 57\r",
+ "10 37 58\r",
+ "10 38 1\r",
+ "10 38 2\r",
+ "10 38 3\r",
+ "10 38 4\r",
+ "10 38 5\r",
+ "10 38 6\r",
+ "10 38 7\r",
+ "10 38 8\r",
+ "10 38 9\r",
+ "10 38 10\r",
+ "10 38 11\r",
+ "10 38 12\r",
+ "10 38 13\r",
+ "10 38 14\r",
+ "10 38 15\r",
+ "10 38 16\r",
+ "10 38 17\r",
+ "10 38 18\r",
+ "10 38 19\r",
+ "10 38 20\r",
+ "10 38 21\r",
+ "10 38 22\r",
+ "10 38 23\r",
+ "10 38 24\r",
+ "10 38 25\r",
+ "10 38 26\r",
+ "10 38 27\r",
+ "10 38 28\r",
+ "10 38 29\r",
+ "10 38 30\r",
+ "10 38 31\r",
+ "10 38 32\r",
+ "10 38 33\r",
+ "10 38 34\r",
+ "10 38 35\r",
+ "10 38 36\r",
+ "10 38 37\r",
+ "10 38 38\r",
+ "10 38 39\r",
+ "10 38 40\r",
+ "10 38 41\r",
+ "10 38 42\r",
+ "10 38 43\r",
+ "10 38 44\r",
+ "10 38 45\r",
+ "10 38 46\r",
+ "10 38 47\r",
+ "10 38 48\r",
+ "10 38 49\r",
+ "10 38 50\r",
+ "10 38 51\r",
+ "10 38 52\r",
+ "10 38 53\r",
+ "10 38 54\r",
+ "10 38 55\r",
+ "10 38 56\r",
+ "10 38 57\r",
+ "10 38 58\r",
+ "10 39 1\r",
+ "10 39 2\r",
+ "10 39 3\r",
+ "10 39 4\r",
+ "10 39 5\r",
+ "10 39 6\r",
+ "10 39 7\r",
+ "10 39 8\r",
+ "10 39 9\r",
+ "10 39 10\r",
+ "10 39 11\r",
+ "10 39 12\r",
+ "10 39 13\r",
+ "10 39 14\r",
+ "10 39 15\r",
+ "10 39 16\r",
+ "10 39 17\r",
+ "10 39 18\r",
+ "10 39 19\r",
+ "10 39 20\r",
+ "10 39 21\r",
+ "10 39 22\r",
+ "10 39 23\r",
+ "10 39 24\r",
+ "10 39 25\r",
+ "10 39 26\r",
+ "10 39 27\r",
+ "10 39 28\r",
+ "10 39 29\r",
+ "10 39 30\r",
+ "10 39 31\r",
+ "10 39 32\r",
+ "10 39 33\r",
+ "10 39 34\r",
+ "10 39 35\r",
+ "10 39 36\r",
+ "10 39 37\r",
+ "10 39 38\r",
+ "10 39 39\r",
+ "10 39 40\r",
+ "10 39 41\r",
+ "10 39 42\r",
+ "10 39 43\r",
+ "10 39 44\r",
+ "10 39 45\r",
+ "10 39 46\r",
+ "10 39 47\r",
+ "10 39 48\r",
+ "10 39 49\r",
+ "10 39 50\r",
+ "10 39 51\r",
+ "10 39 52\r",
+ "10 39 53\r",
+ "10 39 54\r",
+ "10 39 55\r",
+ "10 39 56\r",
+ "10 39 57\r",
+ "10 39 58\r",
+ "10 40 1\r",
+ "10 40 2\r",
+ "10 40 3\r",
+ "10 40 4\r",
+ "10 40 5\r",
+ "10 40 6\r",
+ "10 40 7\r",
+ "10 40 8\r",
+ "10 40 9\r",
+ "10 40 10\r",
+ "10 40 11\r",
+ "10 40 12\r",
+ "10 40 13\r",
+ "10 40 14\r",
+ "10 40 15\r",
+ "10 40 16\r",
+ "10 40 17\r",
+ "10 40 18\r",
+ "10 40 19\r",
+ "10 40 20\r",
+ "10 40 21\r",
+ "10 40 22\r",
+ "10 40 23\r",
+ "10 40 24\r",
+ "10 40 25\r",
+ "10 40 26\r",
+ "10 40 27\r",
+ "10 40 28\r",
+ "10 40 29\r",
+ "10 40 30\r",
+ "10 40 31\r",
+ "10 40 32\r",
+ "10 40 33\r",
+ "10 40 34\r",
+ "10 40 35\r",
+ "10 40 36\r",
+ "10 40 37\r",
+ "10 40 38\r",
+ "10 40 39\r",
+ "10 40 40\r",
+ "10 40 41\r",
+ "10 40 42\r",
+ "10 40 43\r",
+ "10 40 44\r",
+ "10 40 45\r",
+ "10 40 46\r",
+ "10 40 47\r",
+ "10 40 48\r",
+ "10 40 49\r",
+ "10 40 50\r",
+ "10 40 51\r",
+ "10 40 52\r",
+ "10 40 53\r",
+ "10 40 54\r",
+ "10 40 55\r",
+ "10 40 56\r",
+ "10 40 57\r",
+ "10 40 58\r",
+ "10 41 1\r",
+ "10 41 2\r",
+ "10 41 3\r",
+ "10 41 4\r",
+ "10 41 5\r",
+ "10 41 6\r",
+ "10 41 7\r",
+ "10 41 8\r",
+ "10 41 9\r",
+ "10 41 10\r",
+ "10 41 11\r",
+ "10 41 12\r",
+ "10 41 13\r",
+ "10 41 14\r",
+ "10 41 15\r",
+ "10 41 16\r",
+ "10 41 17\r",
+ "10 41 18\r",
+ "10 41 19\r",
+ "10 41 20\r",
+ "10 41 21\r",
+ "10 41 22\r",
+ "10 41 23\r",
+ "10 41 24\r",
+ "10 41 25\r",
+ "10 41 26\r",
+ "10 41 27\r",
+ "10 41 28\r",
+ "10 41 29\r",
+ "10 41 30\r",
+ "10 41 31\r",
+ "10 41 32\r",
+ "10 41 33\r",
+ "10 41 34\r",
+ "10 41 35\r",
+ "10 41 36\r",
+ "10 41 37\r",
+ "10 41 38\r",
+ "10 41 39\r",
+ "10 41 40\r",
+ "10 41 41\r",
+ "10 41 42\r",
+ "10 41 43\r",
+ "10 41 44\r",
+ "10 41 45\r",
+ "10 41 46\r",
+ "10 41 47\r",
+ "10 41 48\r",
+ "10 41 49\r",
+ "10 41 50\r",
+ "10 41 51\r",
+ "10 41 52\r",
+ "10 41 53\r",
+ "10 41 54\r",
+ "10 41 55\r",
+ "10 41 56\r",
+ "10 41 57\r",
+ "10 41 58\r",
+ "10 42 1\r",
+ "10 42 2\r",
+ "10 42 3\r",
+ "10 42 4\r",
+ "10 42 5\r",
+ "10 42 6\r",
+ "10 42 7\r",
+ "10 42 8\r",
+ "10 42 9\r",
+ "10 42 10\r",
+ "10 42 11\r",
+ "10 42 12\r",
+ "10 42 13\r",
+ "10 42 14\r",
+ "10 42 15\r",
+ "10 42 16\r",
+ "10 42 17\r",
+ "10 42 18\r",
+ "10 42 19\r",
+ "10 42 20\r",
+ "10 42 21\r",
+ "10 42 22\r",
+ "10 42 23\r",
+ "10 42 24\r",
+ "10 42 25\r",
+ "10 42 26\r",
+ "10 42 27\r",
+ "10 42 28\r",
+ "10 42 29\r",
+ "10 42 30\r",
+ "10 42 31\r",
+ "10 42 32\r",
+ "10 42 33\r",
+ "10 42 34\r",
+ "10 42 35\r",
+ "10 42 36\r",
+ "10 42 37\r",
+ "10 42 38\r",
+ "10 42 39\r",
+ "10 42 40\r",
+ "10 42 41\r",
+ "10 42 42\r",
+ "10 42 43\r",
+ "10 42 44\r",
+ "10 42 45\r",
+ "10 42 46\r",
+ "10 42 47\r",
+ "10 42 48\r",
+ "10 42 49\r",
+ "10 42 50\r",
+ "10 42 51\r",
+ "10 42 52\r",
+ "10 42 53\r",
+ "10 42 54\r",
+ "10 42 55\r",
+ "10 42 56\r",
+ "10 42 57\r",
+ "10 42 58\r",
+ "10 43 1\r",
+ "10 43 2\r",
+ "10 43 3\r",
+ "10 43 4\r",
+ "10 43 5\r",
+ "10 43 6\r",
+ "10 43 7\r",
+ "10 43 8\r",
+ "10 43 9\r",
+ "10 43 10\r",
+ "10 43 11\r",
+ "10 43 12\r",
+ "10 43 13\r",
+ "10 43 14\r",
+ "10 43 15\r",
+ "10 43 16\r",
+ "10 43 17\r",
+ "10 43 18\r",
+ "10 43 19\r",
+ "10 43 20\r",
+ "10 43 21\r",
+ "10 43 22\r",
+ "10 43 23\r",
+ "10 43 24\r",
+ "10 43 25\r",
+ "10 43 26\r",
+ "10 43 27\r",
+ "10 43 28\r",
+ "10 43 29\r",
+ "10 43 30\r",
+ "10 43 31\r",
+ "10 43 32\r",
+ "10 43 33\r",
+ "10 43 34\r",
+ "10 43 35\r",
+ "10 43 36\r",
+ "10 43 37\r",
+ "10 43 38\r",
+ "10 43 39\r",
+ "10 43 40\r",
+ "10 43 41\r",
+ "10 43 42\r",
+ "10 43 43\r",
+ "10 43 44\r",
+ "10 43 45\r",
+ "10 43 46\r",
+ "10 43 47\r",
+ "10 43 48\r",
+ "10 43 49\r",
+ "10 43 50\r",
+ "10 43 51\r",
+ "10 43 52\r",
+ "10 43 53\r",
+ "10 43 54\r",
+ "10 43 55\r",
+ "10 43 56\r",
+ "10 43 57\r",
+ "10 43 58\r",
+ "10 44 1\r",
+ "10 44 2\r",
+ "10 44 3\r",
+ "10 44 4\r",
+ "10 44 5\r",
+ "10 44 6\r",
+ "10 44 7\r",
+ "10 44 8\r",
+ "10 44 9\r",
+ "10 44 10\r",
+ "10 44 11\r",
+ "10 44 12\r",
+ "10 44 13\r",
+ "10 44 14\r",
+ "10 44 15\r",
+ "10 44 16\r",
+ "10 44 17\r",
+ "10 44 18\r",
+ "10 44 19\r",
+ "10 44 20\r",
+ "10 44 21\r",
+ "10 44 22\r",
+ "10 44 23\r",
+ "10 44 24\r",
+ "10 44 25\r",
+ "10 44 26\r",
+ "10 44 27\r",
+ "10 44 28\r",
+ "10 44 29\r",
+ "10 44 30\r",
+ "10 44 31\r",
+ "10 44 32\r",
+ "10 44 33\r",
+ "10 44 34\r",
+ "10 44 35\r",
+ "10 44 36\r",
+ "10 44 37\r",
+ "10 44 38\r",
+ "10 44 39\r",
+ "10 44 40\r",
+ "10 44 41\r",
+ "10 44 42\r",
+ "10 44 43\r",
+ "10 44 44\r",
+ "10 44 45\r",
+ "10 44 46\r",
+ "10 44 47\r",
+ "10 44 48\r",
+ "10 44 49\r",
+ "10 44 50\r",
+ "10 44 51\r",
+ "10 44 52\r",
+ "10 44 53\r",
+ "10 44 54\r",
+ "10 44 55\r",
+ "10 44 56\r",
+ "10 44 57\r",
+ "10 44 58\r",
+ "10 45 1\r",
+ "10 45 2\r",
+ "10 45 3\r",
+ "10 45 4\r",
+ "10 45 5\r",
+ "10 45 6\r",
+ "10 45 7\r",
+ "10 45 8\r",
+ "10 45 9\r",
+ "10 45 10\r",
+ "10 45 11\r",
+ "10 45 12\r",
+ "10 45 13\r",
+ "10 45 14\r",
+ "10 45 15\r",
+ "10 45 16\r",
+ "10 45 17\r",
+ "10 45 18\r",
+ "10 45 19\r",
+ "10 45 20\r",
+ "10 45 21\r",
+ "10 45 22\r",
+ "10 45 23\r",
+ "10 45 24\r",
+ "10 45 25\r",
+ "10 45 26\r",
+ "10 45 27\r",
+ "10 45 28\r",
+ "10 45 29\r",
+ "10 45 30\r",
+ "10 45 31\r",
+ "10 45 32\r",
+ "10 45 33\r",
+ "10 45 34\r",
+ "10 45 35\r",
+ "10 45 36\r",
+ "10 45 37\r",
+ "10 45 38\r",
+ "10 45 39\r",
+ "10 45 40\r",
+ "10 45 41\r",
+ "10 45 42\r",
+ "10 45 43\r",
+ "10 45 44\r",
+ "10 45 45\r",
+ "10 45 46\r",
+ "10 45 47\r",
+ "10 45 48\r",
+ "10 45 49\r",
+ "10 45 50\r",
+ "10 45 51\r",
+ "10 45 52\r",
+ "10 45 53\r",
+ "10 45 54\r",
+ "10 45 55\r",
+ "10 45 56\r",
+ "10 45 57\r",
+ "10 45 58\r",
+ "10 46 1\r",
+ "10 46 2\r",
+ "10 46 3\r",
+ "10 46 4\r",
+ "10 46 5\r",
+ "10 46 6\r",
+ "10 46 7\r",
+ "10 46 8\r",
+ "10 46 9\r",
+ "10 46 10\r",
+ "10 46 11\r",
+ "10 46 12\r",
+ "10 46 13\r",
+ "10 46 14\r",
+ "10 46 15\r",
+ "10 46 16\r",
+ "10 46 17\r",
+ "10 46 18\r",
+ "10 46 19\r",
+ "10 46 20\r",
+ "10 46 21\r",
+ "10 46 22\r",
+ "10 46 23\r",
+ "10 46 24\r",
+ "10 46 25\r",
+ "10 46 26\r",
+ "10 46 27\r",
+ "10 46 28\r",
+ "10 46 29\r",
+ "10 46 30\r",
+ "10 46 31\r",
+ "10 46 32\r",
+ "10 46 33\r",
+ "10 46 34\r",
+ "10 46 35\r",
+ "10 46 36\r",
+ "10 46 37\r",
+ "10 46 38\r",
+ "10 46 39\r",
+ "10 46 40\r",
+ "10 46 41\r",
+ "10 46 42\r",
+ "10 46 43\r",
+ "10 46 44\r",
+ "10 46 45\r",
+ "10 46 46\r",
+ "10 46 47\r",
+ "10 46 48\r",
+ "10 46 49\r",
+ "10 46 50\r",
+ "10 46 51\r",
+ "10 46 52\r",
+ "10 46 53\r",
+ "10 46 54\r",
+ "10 46 55\r",
+ "10 46 56\r",
+ "10 46 57\r",
+ "10 46 58\r",
+ "10 47 1\r",
+ "10 47 2\r",
+ "10 47 3\r",
+ "10 47 4\r",
+ "10 47 5\r",
+ "10 47 6\r",
+ "10 47 7\r",
+ "10 47 8\r",
+ "10 47 9\r",
+ "10 47 10\r",
+ "10 47 11\r",
+ "10 47 12\r",
+ "10 47 13\r",
+ "10 47 14\r",
+ "10 47 15\r",
+ "10 47 16\r",
+ "10 47 17\r",
+ "10 47 18\r",
+ "10 47 19\r",
+ "10 47 20\r",
+ "10 47 21\r",
+ "10 47 22\r",
+ "10 47 23\r",
+ "10 47 24\r",
+ "10 47 25\r",
+ "10 47 26\r",
+ "10 47 27\r",
+ "10 47 28\r",
+ "10 47 29\r",
+ "10 47 30\r",
+ "10 47 31\r",
+ "10 47 32\r",
+ "10 47 33\r",
+ "10 47 34\r",
+ "10 47 35\r",
+ "10 47 36\r",
+ "10 47 37\r",
+ "10 47 38\r",
+ "10 47 39\r",
+ "10 47 40\r",
+ "10 47 41\r",
+ "10 47 42\r",
+ "10 47 43\r",
+ "10 47 44\r",
+ "10 47 45\r",
+ "10 47 46\r",
+ "10 47 47\r",
+ "10 47 48\r",
+ "10 47 49\r",
+ "10 47 50\r",
+ "10 47 51\r",
+ "10 47 52\r",
+ "10 47 53\r",
+ "10 47 54\r",
+ "10 47 55\r",
+ "10 47 56\r",
+ "10 47 57\r",
+ "10 47 58\r",
+ "10 48 1\r",
+ "10 48 2\r",
+ "10 48 3\r",
+ "10 48 4\r",
+ "10 48 5\r",
+ "10 48 6\r",
+ "10 48 7\r",
+ "10 48 8\r",
+ "10 48 9\r",
+ "10 48 10\r",
+ "10 48 11\r",
+ "10 48 12\r",
+ "10 48 13\r",
+ "10 48 14\r",
+ "10 48 15\r",
+ "10 48 16\r",
+ "10 48 17\r",
+ "10 48 18\r",
+ "10 48 19\r",
+ "10 48 20\r",
+ "10 48 21\r",
+ "10 48 22\r",
+ "10 48 23\r",
+ "10 48 24\r",
+ "10 48 25\r",
+ "10 48 26\r",
+ "10 48 27\r",
+ "10 48 28\r",
+ "10 48 29\r",
+ "10 48 30\r",
+ "10 48 31\r",
+ "10 48 32\r",
+ "10 48 33\r",
+ "10 48 34\r",
+ "10 48 35\r",
+ "10 48 36\r",
+ "10 48 37\r",
+ "10 48 38\r",
+ "10 48 39\r",
+ "10 48 40\r",
+ "10 48 41\r",
+ "10 48 42\r",
+ "10 48 43\r",
+ "10 48 44\r",
+ "10 48 45\r",
+ "10 48 46\r",
+ "10 48 47\r",
+ "10 48 48\r",
+ "10 48 49\r",
+ "10 48 50\r",
+ "10 48 51\r",
+ "10 48 52\r",
+ "10 48 53\r",
+ "10 48 54\r",
+ "10 48 55\r",
+ "10 48 56\r",
+ "10 48 57\r",
+ "10 48 58\r",
+ "10 49 1\r",
+ "10 49 2\r",
+ "10 49 3\r",
+ "10 49 4\r",
+ "10 49 5\r",
+ "10 49 6\r",
+ "10 49 7\r",
+ "10 49 8\r",
+ "10 49 9\r",
+ "10 49 10\r",
+ "10 49 11\r",
+ "10 49 12\r",
+ "10 49 13\r",
+ "10 49 14\r",
+ "10 49 15\r",
+ "10 49 16\r",
+ "10 49 17\r",
+ "10 49 18\r",
+ "10 49 19\r",
+ "10 49 20\r",
+ "10 49 21\r",
+ "10 49 22\r",
+ "10 49 23\r",
+ "10 49 24\r",
+ "10 49 25\r",
+ "10 49 26\r",
+ "10 49 27\r",
+ "10 49 28\r",
+ "10 49 29\r",
+ "10 49 30\r",
+ "10 49 31\r",
+ "10 49 32\r",
+ "10 49 33\r",
+ "10 49 34\r",
+ "10 49 35\r",
+ "10 49 36\r",
+ "10 49 37\r",
+ "10 49 38\r",
+ "10 49 39\r",
+ "10 49 40\r",
+ "10 49 41\r",
+ "10 49 42\r",
+ "10 49 43\r",
+ "10 49 44\r",
+ "10 49 45\r",
+ "10 49 46\r",
+ "10 49 47\r",
+ "10 49 48\r",
+ "10 49 49\r",
+ "10 49 50\r",
+ "10 49 51\r",
+ "10 49 52\r",
+ "10 49 53\r",
+ "10 49 54\r",
+ "10 49 55\r",
+ "10 49 56\r",
+ "10 49 57\r",
+ "10 49 58\r",
+ "10 50 1\r",
+ "10 50 2\r",
+ "10 50 3\r",
+ "10 50 4\r",
+ "10 50 5\r",
+ "10 50 6\r",
+ "10 50 7\r",
+ "10 50 8\r",
+ "10 50 9\r",
+ "10 50 10\r",
+ "10 50 11\r",
+ "10 50 12\r",
+ "10 50 13\r",
+ "10 50 14\r",
+ "10 50 15\r",
+ "10 50 16\r",
+ "10 50 17\r",
+ "10 50 18\r",
+ "10 50 19\r",
+ "10 50 20\r",
+ "10 50 21\r",
+ "10 50 22\r",
+ "10 50 23\r",
+ "10 50 24\r",
+ "10 50 25\r",
+ "10 50 26\r",
+ "10 50 27\r",
+ "10 50 28\r",
+ "10 50 29\r",
+ "10 50 30\r",
+ "10 50 31\r",
+ "10 50 32\r",
+ "10 50 33\r",
+ "10 50 34\r",
+ "10 50 35\r",
+ "10 50 36\r",
+ "10 50 37\r",
+ "10 50 38\r",
+ "10 50 39\r",
+ "10 50 40\r",
+ "10 50 41\r",
+ "10 50 42\r",
+ "10 50 43\r",
+ "10 50 44\r",
+ "10 50 45\r",
+ "10 50 46\r",
+ "10 50 47\r",
+ "10 50 48\r",
+ "10 50 49\r",
+ "10 50 50\r",
+ "10 50 51\r",
+ "10 50 52\r",
+ "10 50 53\r",
+ "10 50 54\r",
+ "10 50 55\r",
+ "10 50 56\r",
+ "10 50 57\r",
+ "10 50 58\r",
+ "10 51 1\r",
+ "10 51 2\r",
+ "10 51 3\r",
+ "10 51 4\r",
+ "10 51 5\r",
+ "10 51 6\r",
+ "10 51 7\r",
+ "10 51 8\r",
+ "10 51 9\r",
+ "10 51 10\r",
+ "10 51 11\r",
+ "10 51 12\r",
+ "10 51 13\r",
+ "10 51 14\r",
+ "10 51 15\r",
+ "10 51 16\r",
+ "10 51 17\r",
+ "10 51 18\r",
+ "10 51 19\r",
+ "10 51 20\r",
+ "10 51 21\r",
+ "10 51 22\r",
+ "10 51 23\r",
+ "10 51 24\r",
+ "10 51 25\r",
+ "10 51 26\r",
+ "10 51 27\r",
+ "10 51 28\r",
+ "10 51 29\r",
+ "10 51 30\r",
+ "10 51 31\r",
+ "10 51 32\r",
+ "10 51 33\r",
+ "10 51 34\r",
+ "10 51 35\r",
+ "10 51 36\r",
+ "10 51 37\r",
+ "10 51 38\r",
+ "10 51 39\r",
+ "10 51 40\r",
+ "10 51 41\r",
+ "10 51 42\r",
+ "10 51 43\r",
+ "10 51 44\r",
+ "10 51 45\r",
+ "10 51 46\r",
+ "10 51 47\r",
+ "10 51 48\r",
+ "10 51 49\r",
+ "10 51 50\r",
+ "10 51 51\r",
+ "10 51 52\r",
+ "10 51 53\r",
+ "10 51 54\r",
+ "10 51 55\r",
+ "10 51 56\r",
+ "10 51 57\r",
+ "10 51 58\r",
+ "10 52 1\r",
+ "10 52 2\r",
+ "10 52 3\r",
+ "10 52 4\r",
+ "10 52 5\r",
+ "10 52 6\r",
+ "10 52 7\r",
+ "10 52 8\r",
+ "10 52 9\r",
+ "10 52 10\r",
+ "10 52 11\r",
+ "10 52 12\r",
+ "10 52 13\r",
+ "10 52 14\r",
+ "10 52 15\r",
+ "10 52 16\r",
+ "10 52 17\r",
+ "10 52 18\r",
+ "10 52 19\r",
+ "10 52 20\r",
+ "10 52 21\r",
+ "10 52 22\r",
+ "10 52 23\r",
+ "10 52 24\r",
+ "10 52 25\r",
+ "10 52 26\r",
+ "10 52 27\r",
+ "10 52 28\r",
+ "10 52 29\r",
+ "10 52 30\r",
+ "10 52 31\r",
+ "10 52 32\r",
+ "10 52 33\r",
+ "10 52 34\r",
+ "10 52 35\r",
+ "10 52 36\r",
+ "10 52 37\r",
+ "10 52 38\r",
+ "10 52 39\r",
+ "10 52 40\r",
+ "10 52 41\r",
+ "10 52 42\r",
+ "10 52 43\r",
+ "10 52 44\r",
+ "10 52 45\r",
+ "10 52 46\r",
+ "10 52 47\r",
+ "10 52 48\r",
+ "10 52 49\r",
+ "10 52 50\r",
+ "10 52 51\r",
+ "10 52 52\r",
+ "10 52 53\r",
+ "10 52 54\r",
+ "10 52 55\r",
+ "10 52 56\r",
+ "10 52 57\r",
+ "10 52 58\r",
+ "10 53 1\r",
+ "10 53 2\r",
+ "10 53 3\r",
+ "10 53 4\r",
+ "10 53 5\r",
+ "10 53 6\r",
+ "10 53 7\r",
+ "10 53 8\r",
+ "10 53 9\r",
+ "10 53 10\r",
+ "10 53 11\r",
+ "10 53 12\r",
+ "10 53 13\r",
+ "10 53 14\r",
+ "10 53 15\r",
+ "10 53 16\r",
+ "10 53 17\r",
+ "10 53 18\r",
+ "10 53 19\r",
+ "10 53 20\r",
+ "10 53 21\r",
+ "10 53 22\r",
+ "10 53 23\r",
+ "10 53 24\r",
+ "10 53 25\r",
+ "10 53 26\r",
+ "10 53 27\r",
+ "10 53 28\r",
+ "10 53 29\r",
+ "10 53 30\r",
+ "10 53 31\r",
+ "10 53 32\r",
+ "10 53 33\r",
+ "10 53 34\r",
+ "10 53 35\r",
+ "10 53 36\r",
+ "10 53 37\r",
+ "10 53 38\r",
+ "10 53 39\r",
+ "10 53 40\r",
+ "10 53 41\r",
+ "10 53 42\r",
+ "10 53 43\r",
+ "10 53 44\r",
+ "10 53 45\r",
+ "10 53 46\r",
+ "10 53 47\r",
+ "10 53 48\r",
+ "10 53 49\r",
+ "10 53 50\r",
+ "10 53 51\r",
+ "10 53 52\r",
+ "10 53 53\r",
+ "10 53 54\r",
+ "10 53 55\r",
+ "10 53 56\r",
+ "10 53 57\r",
+ "10 53 58\r",
+ "10 54 1\r",
+ "10 54 2\r",
+ "10 54 3\r",
+ "10 54 4\r",
+ "10 54 5\r",
+ "10 54 6\r",
+ "10 54 7\r",
+ "10 54 8\r",
+ "10 54 9\r",
+ "10 54 10\r",
+ "10 54 11\r",
+ "10 54 12\r",
+ "10 54 13\r",
+ "10 54 14\r",
+ "10 54 15\r",
+ "10 54 16\r",
+ "10 54 17\r",
+ "10 54 18\r",
+ "10 54 19\r",
+ "10 54 20\r",
+ "10 54 21\r",
+ "10 54 22\r",
+ "10 54 23\r",
+ "10 54 24\r",
+ "10 54 25\r",
+ "10 54 26\r",
+ "10 54 27\r",
+ "10 54 28\r",
+ "10 54 29\r",
+ "10 54 30\r",
+ "10 54 31\r",
+ "10 54 32\r",
+ "10 54 33\r",
+ "10 54 34\r",
+ "10 54 35\r",
+ "10 54 36\r",
+ "10 54 37\r",
+ "10 54 38\r",
+ "10 54 39\r",
+ "10 54 40\r",
+ "10 54 41\r",
+ "10 54 42\r",
+ "10 54 43\r",
+ "10 54 44\r",
+ "10 54 45\r",
+ "10 54 46\r",
+ "10 54 47\r",
+ "10 54 48\r",
+ "10 54 49\r",
+ "10 54 50\r",
+ "10 54 51\r",
+ "10 54 52\r",
+ "10 54 53\r",
+ "10 54 54\r",
+ "10 54 55\r",
+ "10 54 56\r",
+ "10 54 57\r",
+ "10 54 58\r",
+ "10 55 1\r",
+ "10 55 2\r",
+ "10 55 3\r",
+ "10 55 4\r",
+ "10 55 5\r",
+ "10 55 6\r",
+ "10 55 7\r",
+ "10 55 8\r",
+ "10 55 9\r",
+ "10 55 10\r",
+ "10 55 11\r",
+ "10 55 12\r",
+ "10 55 13\r",
+ "10 55 14\r",
+ "10 55 15\r",
+ "10 55 16\r",
+ "10 55 17\r",
+ "10 55 18\r",
+ "10 55 19\r",
+ "10 55 20\r",
+ "10 55 21\r",
+ "10 55 22\r",
+ "10 55 23\r",
+ "10 55 24\r",
+ "10 55 25\r",
+ "10 55 26\r",
+ "10 55 27\r",
+ "10 55 28\r",
+ "10 55 29\r",
+ "10 55 30\r",
+ "10 55 31\r",
+ "10 55 32\r",
+ "10 55 33\r",
+ "10 55 34\r",
+ "10 55 35\r",
+ "10 55 36\r",
+ "10 55 37\r",
+ "10 55 38\r",
+ "10 55 39\r",
+ "10 55 40\r",
+ "10 55 41\r",
+ "10 55 42\r",
+ "10 55 43\r",
+ "10 55 44\r",
+ "10 55 45\r",
+ "10 55 46\r",
+ "10 55 47\r",
+ "10 55 48\r",
+ "10 55 49\r",
+ "10 55 50\r",
+ "10 55 51\r",
+ "10 55 52\r",
+ "10 55 53\r",
+ "10 55 54\r",
+ "10 55 55\r",
+ "10 55 56\r",
+ "10 55 57\r",
+ "10 55 58\r",
+ "10 56 1\r",
+ "10 56 2\r",
+ "10 56 3\r",
+ "10 56 4\r",
+ "10 56 5\r",
+ "10 56 6\r",
+ "10 56 7\r",
+ "10 56 8\r",
+ "10 56 9\r",
+ "10 56 10\r",
+ "10 56 11\r",
+ "10 56 12\r",
+ "10 56 13\r",
+ "10 56 14\r",
+ "10 56 15\r",
+ "10 56 16\r",
+ "10 56 17\r",
+ "10 56 18\r",
+ "10 56 19\r",
+ "10 56 20\r",
+ "10 56 21\r",
+ "10 56 22\r",
+ "10 56 23\r",
+ "10 56 24\r",
+ "10 56 25\r",
+ "10 56 26\r",
+ "10 56 27\r",
+ "10 56 28\r",
+ "10 56 29\r",
+ "10 56 30\r",
+ "10 56 31\r",
+ "10 56 32\r",
+ "10 56 33\r",
+ "10 56 34\r",
+ "10 56 35\r",
+ "10 56 36\r",
+ "10 56 37\r",
+ "10 56 38\r",
+ "10 56 39\r",
+ "10 56 40\r",
+ "10 56 41\r",
+ "10 56 42\r",
+ "10 56 43\r",
+ "10 56 44\r",
+ "10 56 45\r",
+ "10 56 46\r",
+ "10 56 47\r",
+ "10 56 48\r",
+ "10 56 49\r",
+ "10 56 50\r",
+ "10 56 51\r",
+ "10 56 52\r",
+ "10 56 53\r",
+ "10 56 54\r",
+ "10 56 55\r",
+ "10 56 56\r",
+ "10 56 57\r",
+ "10 56 58\r",
+ "10 57 1\r",
+ "10 57 2\r",
+ "10 57 3\r",
+ "10 57 4\r",
+ "10 57 5\r",
+ "10 57 6\r",
+ "10 57 7\r",
+ "10 57 8\r",
+ "10 57 9\r",
+ "10 57 10\r",
+ "10 57 11\r",
+ "10 57 12\r",
+ "10 57 13\r",
+ "10 57 14\r",
+ "10 57 15\r",
+ "10 57 16\r",
+ "10 57 17\r",
+ "10 57 18\r",
+ "10 57 19\r",
+ "10 57 20\r",
+ "10 57 21\r",
+ "10 57 22\r",
+ "10 57 23\r",
+ "10 57 24\r",
+ "10 57 25\r",
+ "10 57 26\r",
+ "10 57 27\r",
+ "10 57 28\r",
+ "10 57 29\r",
+ "10 57 30\r",
+ "10 57 31\r",
+ "10 57 32\r",
+ "10 57 33\r",
+ "10 57 34\r",
+ "10 57 35\r",
+ "10 57 36\r",
+ "10 57 37\r",
+ "10 57 38\r",
+ "10 57 39\r",
+ "10 57 40\r",
+ "10 57 41\r",
+ "10 57 42\r",
+ "10 57 43\r",
+ "10 57 44\r",
+ "10 57 45\r",
+ "10 57 46\r",
+ "10 57 47\r",
+ "10 57 48\r",
+ "10 57 49\r",
+ "10 57 50\r",
+ "10 57 51\r",
+ "10 57 52\r",
+ "10 57 53\r",
+ "10 57 54\r",
+ "10 57 55\r",
+ "10 57 56\r",
+ "10 57 57\r",
+ "10 57 58\r",
+ "10 58 1\r",
+ "10 58 2\r",
+ "10 58 3\r",
+ "10 58 4\r",
+ "10 58 5\r",
+ "10 58 6\r",
+ "10 58 7\r",
+ "10 58 8\r",
+ "10 58 9\r",
+ "10 58 10\r",
+ "10 58 11\r",
+ "10 58 12\r",
+ "10 58 13\r",
+ "10 58 14\r",
+ "10 58 15\r",
+ "10 58 16\r",
+ "10 58 17\r",
+ "10 58 18\r",
+ "10 58 19\r",
+ "10 58 20\r",
+ "10 58 21\r",
+ "10 58 22\r",
+ "10 58 23\r",
+ "10 58 24\r",
+ "10 58 25\r",
+ "10 58 26\r",
+ "10 58 27\r",
+ "10 58 28\r",
+ "10 58 29\r",
+ "10 58 30\r",
+ "10 58 31\r",
+ "10 58 32\r",
+ "10 58 33\r",
+ "10 58 34\r",
+ "10 58 35\r",
+ "10 58 36\r",
+ "10 58 37\r",
+ "10 58 38\r",
+ "10 58 39\r",
+ "10 58 40\r",
+ "10 58 41\r",
+ "10 58 42\r",
+ "10 58 43\r",
+ "10 58 44\r",
+ "10 58 45\r",
+ "10 58 46\r",
+ "10 58 47\r",
+ "10 58 48\r",
+ "10 58 49\r",
+ "10 58 50\r",
+ "10 58 51\r",
+ "10 58 52\r",
+ "10 58 53\r",
+ "10 58 54\r",
+ "10 58 55\r",
+ "10 58 56\r",
+ "10 58 57\r",
+ "10 58 58\r",
+ "11 1 1\r",
+ "11 1 2\r",
+ "11 1 3\r",
+ "11 1 4\r",
+ "11 1 5\r",
+ "11 1 6\r",
+ "11 1 7\r",
+ "11 1 8\r",
+ "11 1 9\r",
+ "11 1 10\r",
+ "11 1 11\r",
+ "11 1 12\r",
+ "11 1 13\r",
+ "11 1 14\r",
+ "11 1 15\r",
+ "11 1 16\r",
+ "11 1 17\r",
+ "11 1 18\r",
+ "11 1 19\r",
+ "11 1 20\r",
+ "11 1 21\r",
+ "11 1 22\r",
+ "11 1 23\r",
+ "11 1 24\r",
+ "11 1 25\r",
+ "11 1 26\r",
+ "11 1 27\r",
+ "11 1 28\r",
+ "11 1 29\r",
+ "11 1 30\r",
+ "11 1 31\r",
+ "11 1 32\r",
+ "11 1 33\r",
+ "11 1 34\r",
+ "11 1 35\r",
+ "11 1 36\r",
+ "11 1 37\r",
+ "11 1 38\r",
+ "11 1 39\r",
+ "11 1 40\r",
+ "11 1 41\r",
+ "11 1 42\r",
+ "11 1 43\r",
+ "11 1 44\r",
+ "11 1 45\r",
+ "11 1 46\r",
+ "11 1 47\r",
+ "11 1 48\r",
+ "11 1 49\r",
+ "11 1 50\r",
+ "11 1 51\r",
+ "11 1 52\r",
+ "11 1 53\r",
+ "11 1 54\r",
+ "11 1 55\r",
+ "11 1 56\r",
+ "11 1 57\r",
+ "11 1 58\r",
+ "11 2 1\r",
+ "11 2 2\r",
+ "11 2 3\r",
+ "11 2 4\r",
+ "11 2 5\r",
+ "11 2 6\r",
+ "11 2 7\r",
+ "11 2 8\r",
+ "11 2 9\r",
+ "11 2 10\r",
+ "11 2 11\r",
+ "11 2 12\r",
+ "11 2 13\r",
+ "11 2 14\r",
+ "11 2 15\r",
+ "11 2 16\r",
+ "11 2 17\r",
+ "11 2 18\r",
+ "11 2 19\r",
+ "11 2 20\r",
+ "11 2 21\r",
+ "11 2 22\r",
+ "11 2 23\r",
+ "11 2 24\r",
+ "11 2 25\r",
+ "11 2 26\r",
+ "11 2 27\r",
+ "11 2 28\r",
+ "11 2 29\r",
+ "11 2 30\r",
+ "11 2 31\r",
+ "11 2 32\r",
+ "11 2 33\r",
+ "11 2 34\r",
+ "11 2 35\r",
+ "11 2 36\r",
+ "11 2 37\r",
+ "11 2 38\r",
+ "11 2 39\r",
+ "11 2 40\r",
+ "11 2 41\r",
+ "11 2 42\r",
+ "11 2 43\r",
+ "11 2 44\r",
+ "11 2 45\r",
+ "11 2 46\r",
+ "11 2 47\r",
+ "11 2 48\r",
+ "11 2 49\r",
+ "11 2 50\r",
+ "11 2 51\r",
+ "11 2 52\r",
+ "11 2 53\r",
+ "11 2 54\r",
+ "11 2 55\r",
+ "11 2 56\r",
+ "11 2 57\r",
+ "11 2 58\r",
+ "11 3 1\r",
+ "11 3 2\r",
+ "11 3 3\r",
+ "11 3 4\r",
+ "11 3 5\r",
+ "11 3 6\r",
+ "11 3 7\r",
+ "11 3 8\r",
+ "11 3 9\r",
+ "11 3 10\r",
+ "11 3 11\r",
+ "11 3 12\r",
+ "11 3 13\r",
+ "11 3 14\r",
+ "11 3 15\r",
+ "11 3 16\r",
+ "11 3 17\r",
+ "11 3 18\r",
+ "11 3 19\r",
+ "11 3 20\r",
+ "11 3 21\r",
+ "11 3 22\r",
+ "11 3 23\r",
+ "11 3 24\r",
+ "11 3 25\r",
+ "11 3 26\r",
+ "11 3 27\r",
+ "11 3 28\r",
+ "11 3 29\r",
+ "11 3 30\r",
+ "11 3 31\r",
+ "11 3 32\r",
+ "11 3 33\r",
+ "11 3 34\r",
+ "11 3 35\r",
+ "11 3 36\r",
+ "11 3 37\r",
+ "11 3 38\r",
+ "11 3 39\r",
+ "11 3 40\r",
+ "11 3 41\r",
+ "11 3 42\r",
+ "11 3 43\r",
+ "11 3 44\r",
+ "11 3 45\r",
+ "11 3 46\r",
+ "11 3 47\r",
+ "11 3 48\r",
+ "11 3 49\r",
+ "11 3 50\r",
+ "11 3 51\r",
+ "11 3 52\r",
+ "11 3 53\r",
+ "11 3 54\r",
+ "11 3 55\r",
+ "11 3 56\r",
+ "11 3 57\r",
+ "11 3 58\r",
+ "11 4 1\r",
+ "11 4 2\r",
+ "11 4 3\r",
+ "11 4 4\r",
+ "11 4 5\r",
+ "11 4 6\r",
+ "11 4 7\r",
+ "11 4 8\r",
+ "11 4 9\r",
+ "11 4 10\r",
+ "11 4 11\r",
+ "11 4 12\r",
+ "11 4 13\r",
+ "11 4 14\r",
+ "11 4 15\r",
+ "11 4 16\r",
+ "11 4 17\r",
+ "11 4 18\r",
+ "11 4 19\r",
+ "11 4 20\r",
+ "11 4 21\r",
+ "11 4 22\r",
+ "11 4 23\r",
+ "11 4 24\r",
+ "11 4 25\r",
+ "11 4 26\r",
+ "11 4 27\r",
+ "11 4 28\r",
+ "11 4 29\r",
+ "11 4 30\r",
+ "11 4 31\r",
+ "11 4 32\r",
+ "11 4 33\r",
+ "11 4 34\r",
+ "11 4 35\r",
+ "11 4 36\r",
+ "11 4 37\r",
+ "11 4 38\r",
+ "11 4 39\r",
+ "11 4 40\r",
+ "11 4 41\r",
+ "11 4 42\r",
+ "11 4 43\r",
+ "11 4 44\r",
+ "11 4 45\r",
+ "11 4 46\r",
+ "11 4 47\r",
+ "11 4 48\r",
+ "11 4 49\r",
+ "11 4 50\r",
+ "11 4 51\r",
+ "11 4 52\r",
+ "11 4 53\r",
+ "11 4 54\r",
+ "11 4 55\r",
+ "11 4 56\r",
+ "11 4 57\r",
+ "11 4 58\r",
+ "11 5 1\r",
+ "11 5 2\r",
+ "11 5 3\r",
+ "11 5 4\r",
+ "11 5 5\r",
+ "11 5 6\r",
+ "11 5 7\r",
+ "11 5 8\r",
+ "11 5 9\r",
+ "11 5 10\r",
+ "11 5 11\r",
+ "11 5 12\r",
+ "11 5 13\r",
+ "11 5 14\r",
+ "11 5 15\r",
+ "11 5 16\r",
+ "11 5 17\r",
+ "11 5 18\r",
+ "11 5 19\r",
+ "11 5 20\r",
+ "11 5 21\r",
+ "11 5 22\r",
+ "11 5 23\r",
+ "11 5 24\r",
+ "11 5 25\r",
+ "11 5 26\r",
+ "11 5 27\r",
+ "11 5 28\r",
+ "11 5 29\r",
+ "11 5 30\r",
+ "11 5 31\r",
+ "11 5 32\r",
+ "11 5 33\r",
+ "11 5 34\r",
+ "11 5 35\r",
+ "11 5 36\r",
+ "11 5 37\r",
+ "11 5 38\r",
+ "11 5 39\r",
+ "11 5 40\r",
+ "11 5 41\r",
+ "11 5 42\r",
+ "11 5 43\r",
+ "11 5 44\r",
+ "11 5 45\r",
+ "11 5 46\r",
+ "11 5 47\r",
+ "11 5 48\r",
+ "11 5 49\r",
+ "11 5 50\r",
+ "11 5 51\r",
+ "11 5 52\r",
+ "11 5 53\r",
+ "11 5 54\r",
+ "11 5 55\r",
+ "11 5 56\r",
+ "11 5 57\r",
+ "11 5 58\r",
+ "11 6 1\r",
+ "11 6 2\r",
+ "11 6 3\r",
+ "11 6 4\r",
+ "11 6 5\r",
+ "11 6 6\r",
+ "11 6 7\r",
+ "11 6 8\r",
+ "11 6 9\r",
+ "11 6 10\r",
+ "11 6 11\r",
+ "11 6 12\r",
+ "11 6 13\r",
+ "11 6 14\r",
+ "11 6 15\r",
+ "11 6 16\r",
+ "11 6 17\r",
+ "11 6 18\r",
+ "11 6 19\r",
+ "11 6 20\r",
+ "11 6 21\r",
+ "11 6 22\r",
+ "11 6 23\r",
+ "11 6 24\r",
+ "11 6 25\r",
+ "11 6 26\r",
+ "11 6 27\r",
+ "11 6 28\r",
+ "11 6 29\r",
+ "11 6 30\r",
+ "11 6 31\r",
+ "11 6 32\r",
+ "11 6 33\r",
+ "11 6 34\r",
+ "11 6 35\r",
+ "11 6 36\r",
+ "11 6 37\r",
+ "11 6 38\r",
+ "11 6 39\r",
+ "11 6 40\r",
+ "11 6 41\r",
+ "11 6 42\r",
+ "11 6 43\r",
+ "11 6 44\r",
+ "11 6 45\r",
+ "11 6 46\r",
+ "11 6 47\r",
+ "11 6 48\r",
+ "11 6 49\r",
+ "11 6 50\r",
+ "11 6 51\r",
+ "11 6 52\r",
+ "11 6 53\r",
+ "11 6 54\r",
+ "11 6 55\r",
+ "11 6 56\r",
+ "11 6 57\r",
+ "11 6 58\r",
+ "11 7 1\r",
+ "11 7 2\r",
+ "11 7 3\r",
+ "11 7 4\r",
+ "11 7 5\r",
+ "11 7 6\r",
+ "11 7 7\r",
+ "11 7 8\r",
+ "11 7 9\r",
+ "11 7 10\r",
+ "11 7 11\r",
+ "11 7 12\r",
+ "11 7 13\r",
+ "11 7 14\r",
+ "11 7 15\r",
+ "11 7 16\r",
+ "11 7 17\r",
+ "11 7 18\r",
+ "11 7 19\r",
+ "11 7 20\r",
+ "11 7 21\r",
+ "11 7 22\r",
+ "11 7 23\r",
+ "11 7 24\r",
+ "11 7 25\r",
+ "11 7 26\r",
+ "11 7 27\r",
+ "11 7 28\r",
+ "11 7 29\r",
+ "11 7 30\r",
+ "11 7 31\r",
+ "11 7 32\r",
+ "11 7 33\r",
+ "11 7 34\r",
+ "11 7 35\r",
+ "11 7 36\r",
+ "11 7 37\r",
+ "11 7 38\r",
+ "11 7 39\r",
+ "11 7 40\r",
+ "11 7 41\r",
+ "11 7 42\r",
+ "11 7 43\r",
+ "11 7 44\r",
+ "11 7 45\r",
+ "11 7 46\r",
+ "11 7 47\r",
+ "11 7 48\r",
+ "11 7 49\r",
+ "11 7 50\r",
+ "11 7 51\r",
+ "11 7 52\r",
+ "11 7 53\r",
+ "11 7 54\r",
+ "11 7 55\r",
+ "11 7 56\r",
+ "11 7 57\r",
+ "11 7 58\r",
+ "11 8 1\r",
+ "11 8 2\r",
+ "11 8 3\r",
+ "11 8 4\r",
+ "11 8 5\r",
+ "11 8 6\r",
+ "11 8 7\r",
+ "11 8 8\r",
+ "11 8 9\r",
+ "11 8 10\r",
+ "11 8 11\r",
+ "11 8 12\r",
+ "11 8 13\r",
+ "11 8 14\r",
+ "11 8 15\r",
+ "11 8 16\r",
+ "11 8 17\r",
+ "11 8 18\r",
+ "11 8 19\r",
+ "11 8 20\r",
+ "11 8 21\r",
+ "11 8 22\r",
+ "11 8 23\r",
+ "11 8 24\r",
+ "11 8 25\r",
+ "11 8 26\r",
+ "11 8 27\r",
+ "11 8 28\r",
+ "11 8 29\r",
+ "11 8 30\r",
+ "11 8 31\r",
+ "11 8 32\r",
+ "11 8 33\r",
+ "11 8 34\r",
+ "11 8 35\r",
+ "11 8 36\r",
+ "11 8 37\r",
+ "11 8 38\r",
+ "11 8 39\r",
+ "11 8 40\r",
+ "11 8 41\r",
+ "11 8 42\r",
+ "11 8 43\r",
+ "11 8 44\r",
+ "11 8 45\r",
+ "11 8 46\r",
+ "11 8 47\r",
+ "11 8 48\r",
+ "11 8 49\r",
+ "11 8 50\r",
+ "11 8 51\r",
+ "11 8 52\r",
+ "11 8 53\r",
+ "11 8 54\r",
+ "11 8 55\r",
+ "11 8 56\r",
+ "11 8 57\r",
+ "11 8 58\r",
+ "11 9 1\r",
+ "11 9 2\r",
+ "11 9 3\r",
+ "11 9 4\r",
+ "11 9 5\r",
+ "11 9 6\r",
+ "11 9 7\r",
+ "11 9 8\r",
+ "11 9 9\r",
+ "11 9 10\r",
+ "11 9 11\r",
+ "11 9 12\r",
+ "11 9 13\r",
+ "11 9 14\r",
+ "11 9 15\r",
+ "11 9 16\r",
+ "11 9 17\r",
+ "11 9 18\r",
+ "11 9 19\r",
+ "11 9 20\r",
+ "11 9 21\r",
+ "11 9 22\r",
+ "11 9 23\r",
+ "11 9 24"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\r",
+ "11 9 25\r",
+ "11 9 26\r",
+ "11 9 27\r",
+ "11 9 28\r",
+ "11 9 29\r",
+ "11 9 30\r",
+ "11 9 31\r",
+ "11 9 32\r",
+ "11 9 33\r",
+ "11 9 34\r",
+ "11 9 35\r",
+ "11 9 36\r",
+ "11 9 37\r",
+ "11 9 38\r",
+ "11 9 39\r",
+ "11 9 40\r",
+ "11 9 41\r",
+ "11 9 42\r",
+ "11 9 43\r",
+ "11 9 44\r",
+ "11 9 45\r",
+ "11 9 46\r",
+ "11 9 47\r",
+ "11 9 48\r",
+ "11 9 49\r",
+ "11 9 50\r",
+ "11 9 51\r",
+ "11 9 52\r",
+ "11 9 53\r",
+ "11 9 54\r",
+ "11 9 55\r",
+ "11 9 56\r",
+ "11 9 57\r",
+ "11 9 58\r",
+ "11 10 1\r",
+ "11 10 2\r",
+ "11 10 3\r",
+ "11 10 4\r",
+ "11 10 5\r",
+ "11 10 6\r",
+ "11 10 7\r",
+ "11 10 8\r",
+ "11 10 9\r",
+ "11 10 10\r",
+ "11 10 11\r",
+ "11 10 12\r",
+ "11 10 13\r",
+ "11 10 14\r",
+ "11 10 15\r",
+ "11 10 16\r",
+ "11 10 17\r",
+ "11 10 18\r",
+ "11 10 19\r",
+ "11 10 20\r",
+ "11 10 21\r",
+ "11 10 22\r",
+ "11 10 23\r",
+ "11 10 24\r",
+ "11 10 25\r",
+ "11 10 26\r",
+ "11 10 27\r",
+ "11 10 28\r",
+ "11 10 29\r",
+ "11 10 30\r",
+ "11 10 31\r",
+ "11 10 32\r",
+ "11 10 33\r",
+ "11 10 34\r",
+ "11 10 35\r",
+ "11 10 36\r",
+ "11 10 37\r",
+ "11 10 38\r",
+ "11 10 39\r",
+ "11 10 40\r",
+ "11 10 41\r",
+ "11 10 42\r",
+ "11 10 43\r",
+ "11 10 44\r",
+ "11 10 45\r",
+ "11 10 46\r",
+ "11 10 47\r",
+ "11 10 48\r",
+ "11 10 49\r",
+ "11 10 50\r",
+ "11 10 51\r",
+ "11 10 52\r",
+ "11 10 53\r",
+ "11 10 54\r",
+ "11 10 55\r",
+ "11 10 56\r",
+ "11 10 57\r",
+ "11 10 58\r",
+ "11 11 1\r",
+ "11 11 2\r",
+ "11 11 3\r",
+ "11 11 4\r",
+ "11 11 5\r",
+ "11 11 6\r",
+ "11 11 7\r",
+ "11 11 8\r",
+ "11 11 9\r",
+ "11 11 10\r",
+ "11 11 11\r",
+ "11 11 12\r",
+ "11 11 13\r",
+ "11 11 14\r",
+ "11 11 15\r",
+ "11 11 16\r",
+ "11 11 17\r",
+ "11 11 18\r",
+ "11 11 19\r",
+ "11 11 20\r",
+ "11 11 21\r",
+ "11 11 22\r",
+ "11 11 23\r",
+ "11 11 24\r",
+ "11 11 25\r",
+ "11 11 26\r",
+ "11 11 27\r",
+ "11 11 28\r",
+ "11 11 29\r",
+ "11 11 30\r",
+ "11 11 31\r",
+ "11 11 32\r",
+ "11 11 33\r",
+ "11 11 34\r",
+ "11 11 35\r",
+ "11 11 36\r",
+ "11 11 37\r",
+ "11 11 38\r",
+ "11 11 39\r",
+ "11 11 40\r",
+ "11 11 41\r",
+ "11 11 42\r",
+ "11 11 43\r",
+ "11 11 44\r",
+ "11 11 45\r",
+ "11 11 46\r",
+ "11 11 47\r",
+ "11 11 48\r",
+ "11 11 49\r",
+ "11 11 50\r",
+ "11 11 51\r",
+ "11 11 52\r",
+ "11 11 53\r",
+ "11 11 54\r",
+ "11 11 55\r",
+ "11 11 56\r",
+ "11 11 57\r",
+ "11 11 58\r",
+ "11 12 1\r",
+ "11 12 2\r",
+ "11 12 3\r",
+ "11 12 4\r",
+ "11 12 5\r",
+ "11 12 6\r",
+ "11 12 7\r",
+ "11 12 8\r",
+ "11 12 9\r",
+ "11 12 10\r",
+ "11 12 11\r",
+ "11 12 12\r",
+ "11 12 13\r",
+ "11 12 14\r",
+ "11 12 15\r",
+ "11 12 16\r",
+ "11 12 17\r",
+ "11 12 18\r",
+ "11 12 19\r",
+ "11 12 20\r",
+ "11 12 21\r",
+ "11 12 22\r",
+ "11 12 23\r",
+ "11 12 24\r",
+ "11 12 25\r",
+ "11 12 26\r",
+ "11 12 27\r",
+ "11 12 28\r",
+ "11 12 29\r",
+ "11 12 30\r",
+ "11 12 31\r",
+ "11 12 32\r",
+ "11 12 33\r",
+ "11 12 34\r",
+ "11 12 35\r",
+ "11 12 36\r",
+ "11 12 37\r",
+ "11 12 38\r",
+ "11 12 39\r",
+ "11 12 40\r",
+ "11 12 41\r",
+ "11 12 42\r",
+ "11 12 43\r",
+ "11 12 44\r",
+ "11 12 45\r",
+ "11 12 46\r",
+ "11 12 47\r",
+ "11 12 48\r",
+ "11 12 49\r",
+ "11 12 50\r",
+ "11 12 51\r",
+ "11 12 52\r",
+ "11 12 53\r",
+ "11 12 54\r",
+ "11 12 55\r",
+ "11 12 56\r",
+ "11 12 57\r",
+ "11 12 58\r",
+ "11 13 1\r",
+ "11 13 2\r",
+ "11 13 3\r",
+ "11 13 4\r",
+ "11 13 5\r",
+ "11 13 6\r",
+ "11 13 7\r",
+ "11 13 8\r",
+ "11 13 9\r",
+ "11 13 10\r",
+ "11 13 11\r",
+ "11 13 12\r",
+ "11 13 13\r",
+ "11 13 14\r",
+ "11 13 15\r",
+ "11 13 16\r",
+ "11 13 17\r",
+ "11 13 18\r",
+ "11 13 19\r",
+ "11 13 20\r",
+ "11 13 21\r",
+ "11 13 22\r",
+ "11 13 23\r",
+ "11 13 24\r",
+ "11 13 25\r",
+ "11 13 26\r",
+ "11 13 27\r",
+ "11 13 28\r",
+ "11 13 29\r",
+ "11 13 30\r",
+ "11 13 31\r",
+ "11 13 32\r",
+ "11 13 33\r",
+ "11 13 34\r",
+ "11 13 35\r",
+ "11 13 36\r",
+ "11 13 37\r",
+ "11 13 38\r",
+ "11 13 39\r",
+ "11 13 40\r",
+ "11 13 41\r",
+ "11 13 42\r",
+ "11 13 43\r",
+ "11 13 44\r",
+ "11 13 45\r",
+ "11 13 46\r",
+ "11 13 47\r",
+ "11 13 48\r",
+ "11 13 49\r",
+ "11 13 50\r",
+ "11 13 51\r",
+ "11 13 52\r",
+ "11 13 53\r",
+ "11 13 54\r",
+ "11 13 55\r",
+ "11 13 56\r",
+ "11 13 57\r",
+ "11 13 58\r",
+ "11 14 1\r",
+ "11 14 2\r",
+ "11 14 3\r",
+ "11 14 4\r",
+ "11 14 5\r",
+ "11 14 6\r",
+ "11 14 7\r",
+ "11 14 8\r",
+ "11 14 9\r",
+ "11 14 10\r",
+ "11 14 11\r",
+ "11 14 12\r",
+ "11 14 13\r",
+ "11 14 14\r",
+ "11 14 15\r",
+ "11 14 16\r",
+ "11 14 17\r",
+ "11 14 18\r",
+ "11 14 19\r",
+ "11 14 20\r",
+ "11 14 21\r",
+ "11 14 22\r",
+ "11 14 23\r",
+ "11 14 24\r",
+ "11 14 25\r",
+ "11 14 26\r",
+ "11 14 27\r",
+ "11 14 28\r",
+ "11 14 29\r",
+ "11 14 30\r",
+ "11 14 31\r",
+ "11 14 32\r",
+ "11 14 33\r",
+ "11 14 34\r",
+ "11 14 35\r",
+ "11 14 36\r",
+ "11 14 37\r",
+ "11 14 38\r",
+ "11 14 39\r",
+ "11 14 40\r",
+ "11 14 41\r",
+ "11 14 42\r",
+ "11 14 43\r",
+ "11 14 44\r",
+ "11 14 45\r",
+ "11 14 46\r",
+ "11 14 47\r",
+ "11 14 48\r",
+ "11 14 49\r",
+ "11 14 50\r",
+ "11 14 51\r",
+ "11 14 52\r",
+ "11 14 53\r",
+ "11 14 54\r",
+ "11 14 55\r",
+ "11 14 56\r",
+ "11 14 57\r",
+ "11 14 58\r",
+ "11 15 1\r",
+ "11 15 2\r",
+ "11 15 3\r",
+ "11 15 4\r",
+ "11 15 5\r",
+ "11 15 6\r",
+ "11 15 7\r",
+ "11 15 8\r",
+ "11 15 9\r",
+ "11 15 10\r",
+ "11 15 11\r",
+ "11 15 12\r",
+ "11 15 13\r",
+ "11 15 14\r",
+ "11 15 15\r",
+ "11 15 16\r",
+ "11 15 17\r",
+ "11 15 18\r",
+ "11 15 19\r",
+ "11 15 20\r",
+ "11 15 21\r",
+ "11 15 22\r",
+ "11 15 23\r",
+ "11 15 24\r",
+ "11 15 25\r",
+ "11 15 26\r",
+ "11 15 27\r",
+ "11 15 28\r",
+ "11 15 29\r",
+ "11 15 30\r",
+ "11 15 31\r",
+ "11 15 32\r",
+ "11 15 33\r",
+ "11 15 34\r",
+ "11 15 35\r",
+ "11 15 36\r",
+ "11 15 37\r",
+ "11 15 38\r",
+ "11 15 39\r",
+ "11 15 40\r",
+ "11 15 41\r",
+ "11 15 42\r",
+ "11 15 43\r",
+ "11 15 44\r",
+ "11 15 45\r",
+ "11 15 46\r",
+ "11 15 47\r",
+ "11 15 48\r",
+ "11 15 49\r",
+ "11 15 50\r",
+ "11 15 51\r",
+ "11 15 52\r",
+ "11 15 53\r",
+ "11 15 54\r",
+ "11 15 55\r",
+ "11 15 56\r",
+ "11 15 57\r",
+ "11 15 58\r",
+ "11 16 1\r",
+ "11 16 2\r",
+ "11 16 3\r",
+ "11 16 4\r",
+ "11 16 5\r",
+ "11 16 6\r",
+ "11 16 7\r",
+ "11 16 8\r",
+ "11 16 9\r",
+ "11 16 10\r",
+ "11 16 11\r",
+ "11 16 12\r",
+ "11 16 13\r",
+ "11 16 14\r",
+ "11 16 15\r",
+ "11 16 16\r",
+ "11 16 17\r",
+ "11 16 18\r",
+ "11 16 19\r",
+ "11 16 20\r",
+ "11 16 21\r",
+ "11 16 22\r",
+ "11 16 23\r",
+ "11 16 24\r",
+ "11 16 25\r",
+ "11 16 26\r",
+ "11 16 27\r",
+ "11 16 28\r",
+ "11 16 29\r",
+ "11 16 30\r",
+ "11 16 31\r",
+ "11 16 32\r",
+ "11 16 33\r",
+ "11 16 34\r",
+ "11 16 35\r",
+ "11 16 36\r",
+ "11 16 37\r",
+ "11 16 38\r",
+ "11 16 39\r",
+ "11 16 40\r",
+ "11 16 41\r",
+ "11 16 42\r",
+ "11 16 43\r",
+ "11 16 44\r",
+ "11 16 45\r",
+ "11 16 46\r",
+ "11 16 47\r",
+ "11 16 48\r",
+ "11 16 49\r",
+ "11 16 50\r",
+ "11 16 51\r",
+ "11 16 52\r",
+ "11 16 53\r",
+ "11 16 54\r",
+ "11 16 55\r",
+ "11 16 56\r",
+ "11 16 57\r",
+ "11 16 58\r",
+ "11 17 1\r",
+ "11 17 2\r",
+ "11 17 3\r",
+ "11 17 4\r",
+ "11 17 5\r",
+ "11 17 6\r",
+ "11 17 7\r",
+ "11 17 8\r",
+ "11 17 9\r",
+ "11 17 10\r",
+ "11 17 11\r",
+ "11 17 12\r",
+ "11 17 13\r",
+ "11 17 14\r",
+ "11 17 15\r",
+ "11 17 16\r",
+ "11 17 17\r",
+ "11 17 18\r",
+ "11 17 19\r",
+ "11 17 20\r",
+ "11 17 21\r",
+ "11 17 22\r",
+ "11 17 23\r",
+ "11 17 24\r",
+ "11 17 25\r",
+ "11 17 26\r",
+ "11 17 27\r",
+ "11 17 28\r",
+ "11 17 29\r",
+ "11 17 30\r",
+ "11 17 31\r",
+ "11 17 32\r",
+ "11 17 33\r",
+ "11 17 34\r",
+ "11 17 35\r",
+ "11 17 36\r",
+ "11 17 37\r",
+ "11 17 38\r",
+ "11 17 39\r",
+ "11 17 40\r",
+ "11 17 41\r",
+ "11 17 42\r",
+ "11 17 43\r",
+ "11 17 44\r",
+ "11 17 45\r",
+ "11 17 46\r",
+ "11 17 47\r",
+ "11 17 48\r",
+ "11 17 49\r",
+ "11 17 50\r",
+ "11 17 51\r",
+ "11 17 52\r",
+ "11 17 53\r",
+ "11 17 54\r",
+ "11 17 55\r",
+ "11 17 56\r",
+ "11 17 57\r",
+ "11 17 58\r",
+ "11 18 1\r",
+ "11 18 2\r",
+ "11 18 3\r",
+ "11 18 4\r",
+ "11 18 5\r",
+ "11 18 6\r",
+ "11 18 7\r",
+ "11 18 8\r",
+ "11 18 9\r",
+ "11 18 10\r",
+ "11 18 11\r",
+ "11 18 12\r",
+ "11 18 13\r",
+ "11 18 14\r",
+ "11 18 15\r",
+ "11 18 16\r",
+ "11 18 17\r",
+ "11 18 18\r",
+ "11 18 19\r",
+ "11 18 20\r",
+ "11 18 21\r",
+ "11 18 22\r",
+ "11 18 23\r",
+ "11 18 24\r",
+ "11 18 25\r",
+ "11 18 26\r",
+ "11 18 27\r",
+ "11 18 28\r",
+ "11 18 29\r",
+ "11 18 30\r",
+ "11 18 31\r",
+ "11 18 32\r",
+ "11 18 33\r",
+ "11 18 34\r",
+ "11 18 35\r",
+ "11 18 36\r",
+ "11 18 37\r",
+ "11 18 38\r",
+ "11 18 39\r",
+ "11 18 40\r",
+ "11 18 41\r",
+ "11 18 42\r",
+ "11 18 43\r",
+ "11 18 44\r",
+ "11 18 45\r",
+ "11 18 46\r",
+ "11 18 47\r",
+ "11 18 48\r",
+ "11 18 49\r",
+ "11 18 50\r",
+ "11 18 51\r",
+ "11 18 52\r",
+ "11 18 53\r",
+ "11 18 54\r",
+ "11 18 55\r",
+ "11 18 56\r",
+ "11 18 57\r",
+ "11 18 58\r",
+ "11 19 1\r",
+ "11 19 2\r",
+ "11 19 3\r",
+ "11 19 4\r",
+ "11 19 5\r",
+ "11 19 6\r",
+ "11 19 7\r",
+ "11 19 8\r",
+ "11 19 9\r",
+ "11 19 10\r",
+ "11 19 11\r",
+ "11 19 12\r",
+ "11 19 13\r",
+ "11 19 14\r",
+ "11 19 15\r",
+ "11 19 16\r",
+ "11 19 17\r",
+ "11 19 18\r",
+ "11 19 19\r",
+ "11 19 20\r",
+ "11 19 21\r",
+ "11 19 22\r",
+ "11 19 23\r",
+ "11 19 24\r",
+ "11 19 25\r",
+ "11 19 26\r",
+ "11 19 27\r",
+ "11 19 28\r",
+ "11 19 29\r",
+ "11 19 30\r",
+ "11 19 31\r",
+ "11 19 32\r",
+ "11 19 33\r",
+ "11 19 34\r",
+ "11 19 35\r",
+ "11 19 36\r",
+ "11 19 37\r",
+ "11 19 38\r",
+ "11 19 39\r",
+ "11 19 40\r",
+ "11 19 41\r",
+ "11 19 42\r",
+ "11 19 43\r",
+ "11 19 44\r",
+ "11 19 45\r",
+ "11 19 46\r",
+ "11 19 47\r",
+ "11 19 48\r",
+ "11 19 49\r",
+ "11 19 50\r",
+ "11 19 51\r",
+ "11 19 52\r",
+ "11 19 53\r",
+ "11 19 54\r",
+ "11 19 55\r",
+ "11 19 56\r",
+ "11 19 57\r",
+ "11 19 58\r",
+ "11 20 1\r",
+ "11 20 2\r",
+ "11 20 3\r",
+ "11 20 4\r",
+ "11 20 5\r",
+ "11 20 6\r",
+ "11 20 7\r",
+ "11 20 8\r",
+ "11 20 9\r",
+ "11 20 10\r",
+ "11 20 11\r",
+ "11 20 12\r",
+ "11 20 13\r",
+ "11 20 14\r",
+ "11 20 15\r",
+ "11 20 16\r",
+ "11 20 17\r",
+ "11 20 18\r",
+ "11 20 19\r",
+ "11 20 20\r",
+ "11 20 21\r",
+ "11 20 22\r",
+ "11 20 23\r",
+ "11 20 24\r",
+ "11 20 25\r",
+ "11 20 26\r",
+ "11 20 27\r",
+ "11 20 28\r",
+ "11 20 29\r",
+ "11 20 30\r",
+ "11 20 31\r",
+ "11 20 32\r",
+ "11 20 33\r",
+ "11 20 34\r",
+ "11 20 35\r",
+ "11 20 36\r",
+ "11 20 37\r",
+ "11 20 38\r",
+ "11 20 39\r",
+ "11 20 40\r",
+ "11 20 41\r",
+ "11 20 42\r",
+ "11 20 43\r",
+ "11 20 44\r",
+ "11 20 45\r",
+ "11 20 46\r",
+ "11 20 47\r",
+ "11 20 48\r",
+ "11 20 49\r",
+ "11 20 50\r",
+ "11 20 51\r",
+ "11 20 52\r",
+ "11 20 53\r",
+ "11 20 54\r",
+ "11 20 55\r",
+ "11 20 56\r",
+ "11 20 57\r",
+ "11 20 58\r",
+ "11 21 1\r",
+ "11 21 2\r",
+ "11 21 3\r",
+ "11 21 4\r",
+ "11 21 5\r",
+ "11 21 6\r",
+ "11 21 7\r",
+ "11 21 8\r",
+ "11 21 9\r",
+ "11 21 10\r",
+ "11 21 11\r",
+ "11 21 12\r",
+ "11 21 13\r",
+ "11 21 14\r",
+ "11 21 15\r",
+ "11 21 16\r",
+ "11 21 17\r",
+ "11 21 18\r",
+ "11 21 19\r",
+ "11 21 20\r",
+ "11 21 21\r",
+ "11 21 22\r",
+ "11 21 23\r",
+ "11 21 24\r",
+ "11 21 25\r",
+ "11 21 26\r",
+ "11 21 27\r",
+ "11 21 28\r",
+ "11 21 29\r",
+ "11 21 30\r",
+ "11 21 31\r",
+ "11 21 32\r",
+ "11 21 33\r",
+ "11 21 34\r",
+ "11 21 35\r",
+ "11 21 36\r",
+ "11 21 37\r",
+ "11 21 38\r",
+ "11 21 39\r",
+ "11 21 40\r",
+ "11 21 41\r",
+ "11 21 42\r",
+ "11 21 43\r",
+ "11 21 44\r",
+ "11 21 45\r",
+ "11 21 46\r",
+ "11 21 47\r",
+ "11 21 48\r",
+ "11 21 49\r",
+ "11 21 50\r",
+ "11 21 51\r",
+ "11 21 52\r",
+ "11 21 53\r",
+ "11 21 54\r",
+ "11 21 55\r",
+ "11 21 56\r",
+ "11 21 57\r",
+ "11 21 58\r",
+ "11 22 1\r",
+ "11 22 2\r",
+ "11 22 3\r",
+ "11 22 4\r",
+ "11 22 5\r",
+ "11 22 6\r",
+ "11 22 7\r",
+ "11 22 8\r",
+ "11 22 9\r",
+ "11 22 10\r",
+ "11 22 11\r",
+ "11 22 12\r",
+ "11 22 13\r",
+ "11 22 14\r",
+ "11 22 15\r",
+ "11 22 16\r",
+ "11 22 17\r",
+ "11 22 18\r",
+ "11 22 19\r",
+ "11 22 20\r",
+ "11 22 21\r",
+ "11 22 22\r",
+ "11 22 23\r",
+ "11 22 24\r",
+ "11 22 25\r",
+ "11 22 26\r",
+ "11 22 27\r",
+ "11 22 28\r",
+ "11 22 29\r",
+ "11 22 30\r",
+ "11 22 31\r",
+ "11 22 32\r",
+ "11 22 33\r",
+ "11 22 34\r",
+ "11 22 35\r",
+ "11 22 36\r",
+ "11 22 37\r",
+ "11 22 38\r",
+ "11 22 39\r",
+ "11 22 40\r",
+ "11 22 41\r",
+ "11 22 42\r",
+ "11 22 43\r",
+ "11 22 44\r",
+ "11 22 45\r",
+ "11 22 46\r",
+ "11 22 47\r",
+ "11 22 48\r",
+ "11 22 49\r",
+ "11 22 50\r",
+ "11 22 51\r",
+ "11 22 52\r",
+ "11 22 53\r",
+ "11 22 54\r",
+ "11 22 55\r",
+ "11 22 56\r",
+ "11 22 57\r",
+ "11 22 58\r",
+ "11 23 1\r",
+ "11 23 2\r",
+ "11 23 3\r",
+ "11 23 4\r",
+ "11 23 5\r",
+ "11 23 6\r",
+ "11 23 7\r",
+ "11 23 8\r",
+ "11 23 9\r",
+ "11 23 10\r",
+ "11 23 11\r",
+ "11 23 12\r",
+ "11 23 13\r",
+ "11 23 14\r",
+ "11 23 15\r",
+ "11 23 16\r",
+ "11 23 17\r",
+ "11 23 18\r",
+ "11 23 19\r",
+ "11 23 20\r",
+ "11 23 21\r",
+ "11 23 22\r",
+ "11 23 23\r",
+ "11 23 24\r",
+ "11 23 25\r",
+ "11 23 26\r",
+ "11 23 27\r",
+ "11 23 28\r",
+ "11 23 29\r",
+ "11 23 30\r",
+ "11 23 31\r",
+ "11 23 32\r",
+ "11 23 33\r",
+ "11 23 34\r",
+ "11 23 35\r",
+ "11 23 36\r",
+ "11 23 37\r",
+ "11 23 38\r",
+ "11 23 39\r",
+ "11 23 40\r",
+ "11 23 41\r",
+ "11 23 42\r",
+ "11 23 43\r",
+ "11 23 44\r",
+ "11 23 45\r",
+ "11 23 46\r",
+ "11 23 47\r",
+ "11 23 48\r",
+ "11 23 49\r",
+ "11 23 50\r",
+ "11 23 51\r",
+ "11 23 52\r",
+ "11 23 53\r",
+ "11 23 54\r",
+ "11 23 55\r",
+ "11 23 56\r",
+ "11 23 57\r",
+ "11 23 58\r",
+ "11 24 1\r",
+ "11 24 2\r",
+ "11 24 3\r",
+ "11 24 4\r",
+ "11 24 5\r",
+ "11 24 6\r",
+ "11 24 7\r",
+ "11 24 8\r",
+ "11 24 9\r",
+ "11 24 10\r",
+ "11 24 11\r",
+ "11 24 12\r",
+ "11 24 13\r",
+ "11 24 14\r",
+ "11 24 15\r",
+ "11 24 16\r",
+ "11 24 17\r",
+ "11 24 18\r",
+ "11 24 19\r",
+ "11 24 20\r",
+ "11 24 21\r",
+ "11 24 22\r",
+ "11 24 23\r",
+ "11 24 24\r",
+ "11 24 25\r",
+ "11 24 26\r",
+ "11 24 27\r",
+ "11 24 28\r",
+ "11 24 29\r",
+ "11 24 30\r",
+ "11 24 31\r",
+ "11 24 32\r",
+ "11 24 33\r",
+ "11 24 34\r",
+ "11 24 35\r",
+ "11 24 36\r",
+ "11 24 37\r",
+ "11 24 38\r",
+ "11 24 39\r",
+ "11 24 40\r",
+ "11 24 41\r",
+ "11 24 42\r",
+ "11 24 43\r",
+ "11 24 44\r",
+ "11 24 45\r",
+ "11 24 46\r",
+ "11 24 47\r",
+ "11 24 48\r",
+ "11 24 49\r",
+ "11 24 50\r",
+ "11 24 51\r",
+ "11 24 52\r",
+ "11 24 53\r",
+ "11 24 54\r",
+ "11 24 55\r",
+ "11 24 56\r",
+ "11 24 57\r",
+ "11 24 58\r",
+ "11 25 1\r",
+ "11 25 2\r",
+ "11 25 3\r",
+ "11 25 4\r",
+ "11 25 5\r",
+ "11 25 6\r",
+ "11 25 7\r",
+ "11 25 8\r",
+ "11 25 9\r",
+ "11 25 10\r",
+ "11 25 11\r",
+ "11 25 12\r",
+ "11 25 13\r",
+ "11 25 14\r",
+ "11 25 15\r",
+ "11 25 16\r",
+ "11 25 17\r",
+ "11 25 18\r",
+ "11 25 19\r",
+ "11 25 20\r",
+ "11 25 21\r",
+ "11 25 22\r",
+ "11 25 23\r",
+ "11 25 24\r",
+ "11 25 25\r",
+ "11 25 26\r",
+ "11 25 27\r",
+ "11 25 28\r",
+ "11 25 29\r",
+ "11 25 30\r",
+ "11 25 31\r",
+ "11 25 32\r",
+ "11 25 33\r",
+ "11 25 34\r",
+ "11 25 35\r",
+ "11 25 36\r",
+ "11 25 37\r",
+ "11 25 38\r",
+ "11 25 39\r",
+ "11 25 40\r",
+ "11 25 41\r",
+ "11 25 42\r",
+ "11 25 43\r",
+ "11 25 44\r",
+ "11 25 45\r",
+ "11 25 46\r",
+ "11 25 47\r",
+ "11 25 48\r",
+ "11 25 49\r",
+ "11 25 50\r",
+ "11 25 51\r",
+ "11 25 52\r",
+ "11 25 53\r",
+ "11 25 54\r",
+ "11 25 55\r",
+ "11 25 56\r",
+ "11 25 57\r",
+ "11 25 58\r",
+ "11 26 1\r",
+ "11 26 2\r",
+ "11 26 3\r",
+ "11 26 4\r",
+ "11 26 5\r",
+ "11 26 6\r",
+ "11 26 7\r",
+ "11 26 8\r",
+ "11 26 9\r",
+ "11 26 10\r",
+ "11 26 11\r",
+ "11 26 12\r",
+ "11 26 13\r",
+ "11 26 14\r",
+ "11 26 15\r",
+ "11 26 16\r",
+ "11 26 17\r",
+ "11 26 18\r",
+ "11 26 19\r",
+ "11 26 20\r",
+ "11 26 21\r",
+ "11 26 22\r",
+ "11 26 23\r",
+ "11 26 24\r",
+ "11 26 25\r",
+ "11 26 26\r",
+ "11 26 27\r",
+ "11 26 28\r",
+ "11 26 29\r",
+ "11 26 30\r",
+ "11 26 31\r",
+ "11 26 32\r",
+ "11 26 33\r",
+ "11 26 34\r",
+ "11 26 35\r",
+ "11 26 36\r",
+ "11 26 37\r",
+ "11 26 38\r",
+ "11 26 39\r",
+ "11 26 40\r",
+ "11 26 41\r",
+ "11 26 42\r",
+ "11 26 43\r",
+ "11 26 44\r",
+ "11 26 45\r",
+ "11 26 46\r",
+ "11 26 47\r",
+ "11 26 48\r",
+ "11 26 49\r",
+ "11 26 50\r",
+ "11 26 51\r",
+ "11 26 52\r",
+ "11 26 53\r",
+ "11 26 54\r",
+ "11 26 55\r",
+ "11 26 56\r",
+ "11 26 57\r",
+ "11 26 58\r",
+ "11 27 1\r",
+ "11 27 2\r",
+ "11 27 3\r",
+ "11 27 4\r",
+ "11 27 5\r",
+ "11 27 6\r",
+ "11 27 7\r",
+ "11 27 8\r",
+ "11 27 9\r",
+ "11 27 10\r",
+ "11 27 11\r",
+ "11 27 12\r",
+ "11 27 13\r",
+ "11 27 14\r",
+ "11 27 15\r",
+ "11 27 16\r",
+ "11 27 17\r",
+ "11 27 18\r",
+ "11 27 19\r",
+ "11 27 20\r",
+ "11 27 21\r",
+ "11 27 22\r",
+ "11 27 23\r",
+ "11 27 24\r",
+ "11 27 25\r",
+ "11 27 26\r",
+ "11 27 27\r",
+ "11 27 28\r",
+ "11 27 29\r",
+ "11 27 30\r",
+ "11 27 31\r",
+ "11 27 32\r",
+ "11 27 33\r",
+ "11 27 34\r",
+ "11 27 35\r",
+ "11 27 36\r",
+ "11 27 37\r",
+ "11 27 38\r",
+ "11 27 39\r",
+ "11 27 40\r",
+ "11 27 41\r",
+ "11 27 42\r",
+ "11 27 43\r",
+ "11 27 44\r",
+ "11 27 45\r",
+ "11 27 46\r",
+ "11 27 47\r",
+ "11 27 48\r",
+ "11 27 49\r",
+ "11 27 50\r",
+ "11 27 51\r",
+ "11 27 52\r",
+ "11 27 53\r",
+ "11 27 54\r",
+ "11 27 55\r",
+ "11 27 56\r",
+ "11 27 57\r",
+ "11 27 58\r",
+ "11 28 1\r",
+ "11 28 2\r",
+ "11 28 3\r",
+ "11 28 4\r",
+ "11 28 5\r",
+ "11 28 6\r",
+ "11 28 7\r",
+ "11 28 8\r",
+ "11 28 9\r",
+ "11 28 10\r",
+ "11 28 11\r",
+ "11 28 12\r",
+ "11 28 13\r",
+ "11 28 14\r",
+ "11 28 15\r",
+ "11 28 16\r",
+ "11 28 17\r",
+ "11 28 18\r",
+ "11 28 19\r",
+ "11 28 20\r",
+ "11 28 21\r",
+ "11 28 22\r",
+ "11 28 23\r",
+ "11 28 24\r",
+ "11 28 25\r",
+ "11 28 26\r",
+ "11 28 27\r",
+ "11 28 28\r",
+ "11 28 29\r",
+ "11 28 30\r",
+ "11 28 31\r",
+ "11 28 32\r",
+ "11 28 33\r",
+ "11 28 34\r",
+ "11 28 35\r",
+ "11 28 36\r",
+ "11 28 37\r",
+ "11 28 38\r",
+ "11 28 39\r",
+ "11 28 40\r",
+ "11 28 41\r",
+ "11 28 42\r",
+ "11 28 43\r",
+ "11 28 44\r",
+ "11 28 45\r",
+ "11 28 46\r",
+ "11 28 47\r",
+ "11 28 48\r",
+ "11 28 49\r",
+ "11 28 50\r",
+ "11 28 51\r",
+ "11 28 52\r",
+ "11 28 53\r",
+ "11 28 54\r",
+ "11 28 55\r",
+ "11 28 56\r",
+ "11 28 57\r",
+ "11 28 58\r",
+ "11 29 1\r",
+ "11 29 2\r",
+ "11 29 3\r",
+ "11 29 4\r",
+ "11 29 5\r",
+ "11 29 6\r",
+ "11 29 7\r",
+ "11 29 8\r",
+ "11 29 9\r",
+ "11 29 10\r",
+ "11 29 11\r",
+ "11 29 12\r",
+ "11 29 13\r",
+ "11 29 14\r",
+ "11 29 15\r",
+ "11 29 16\r",
+ "11 29 17\r",
+ "11 29 18\r",
+ "11 29 19\r",
+ "11 29 20\r",
+ "11 29 21\r",
+ "11 29 22\r",
+ "11 29 23\r",
+ "11 29 24\r",
+ "11 29 25\r",
+ "11 29 26\r",
+ "11 29 27\r",
+ "11 29 28\r",
+ "11 29 29\r",
+ "11 29 30\r",
+ "11 29 31\r",
+ "11 29 32\r",
+ "11 29 33\r",
+ "11 29 34\r",
+ "11 29 35\r",
+ "11 29 36\r",
+ "11 29 37\r",
+ "11 29 38\r",
+ "11 29 39\r",
+ "11 29 40\r",
+ "11 29 41\r",
+ "11 29 42\r",
+ "11 29 43\r",
+ "11 29 44\r",
+ "11 29 45\r",
+ "11 29 46\r",
+ "11 29 47\r",
+ "11 29 48\r",
+ "11 29 49\r",
+ "11 29 50\r",
+ "11 29 51\r",
+ "11 29 52\r",
+ "11 29 53\r",
+ "11 29 54\r",
+ "11 29 55\r",
+ "11 29 56\r",
+ "11 29 57\r",
+ "11 29 58\r",
+ "11 30 1\r",
+ "11 30 2\r",
+ "11 30 3\r",
+ "11 30 4\r",
+ "11 30 5\r",
+ "11 30 6\r",
+ "11 30 7\r",
+ "11 30 8\r",
+ "11 30 9\r",
+ "11 30 10\r",
+ "11 30 11\r",
+ "11 30 12\r",
+ "11 30 13\r",
+ "11 30 14\r",
+ "11 30 15\r",
+ "11 30 16\r",
+ "11 30 17\r",
+ "11 30 18\r",
+ "11 30 19\r",
+ "11 30 20\r",
+ "11 30 21\r",
+ "11 30 22\r",
+ "11 30 23\r",
+ "11 30 24\r",
+ "11 30 25\r",
+ "11 30 26\r",
+ "11 30 27\r",
+ "11 30 28\r",
+ "11 30 29\r",
+ "11 30 30\r",
+ "11 30 31\r",
+ "11 30 32\r",
+ "11 30 33\r",
+ "11 30 34\r",
+ "11 30 35\r",
+ "11 30 36\r",
+ "11 30 37\r",
+ "11 30 38\r",
+ "11 30 39\r",
+ "11 30 40\r",
+ "11 30 41\r",
+ "11 30 42\r",
+ "11 30 43\r",
+ "11 30 44\r",
+ "11 30 45\r",
+ "11 30 46\r",
+ "11 30 47\r",
+ "11 30 48\r",
+ "11 30 49\r",
+ "11 30 50\r",
+ "11 30 51\r",
+ "11 30 52\r",
+ "11 30 53\r",
+ "11 30 54\r",
+ "11 30 55\r",
+ "11 30 56\r",
+ "11 30 57\r",
+ "11 30 58\r",
+ "11 31 1\r",
+ "11 31 2\r",
+ "11 31 3\r",
+ "11 31 4\r",
+ "11 31 5\r",
+ "11 31 6\r",
+ "11 31 7\r",
+ "11 31 8\r",
+ "11 31 9\r",
+ "11 31 10\r",
+ "11 31 11\r",
+ "11 31 12\r",
+ "11 31 13\r",
+ "11 31 14\r",
+ "11 31 15\r",
+ "11 31 16\r",
+ "11 31 17\r",
+ "11 31 18\r",
+ "11 31 19\r",
+ "11 31 20\r",
+ "11 31 21\r",
+ "11 31 22\r",
+ "11 31 23\r",
+ "11 31 24\r",
+ "11 31 25\r",
+ "11 31 26\r",
+ "11 31 27\r",
+ "11 31 28\r",
+ "11 31 29\r",
+ "11 31 30\r",
+ "11 31 31\r",
+ "11 31 32\r",
+ "11 31 33\r",
+ "11 31 34\r",
+ "11 31 35\r",
+ "11 31 36\r",
+ "11 31 37\r",
+ "11 31 38\r",
+ "11 31 39\r",
+ "11 31 40\r",
+ "11 31 41\r",
+ "11 31 42\r",
+ "11 31 43\r",
+ "11 31 44\r",
+ "11 31 45\r",
+ "11 31 46\r",
+ "11 31 47\r",
+ "11 31 48\r",
+ "11 31 49\r",
+ "11 31 50\r",
+ "11 31 51\r",
+ "11 31 52\r",
+ "11 31 53\r",
+ "11 31 54\r",
+ "11 31 55\r",
+ "11 31 56\r",
+ "11 31 57\r",
+ "11 31 58\r",
+ "11 32 1\r",
+ "11 32 2\r",
+ "11 32 3\r",
+ "11 32 4\r",
+ "11 32 5\r",
+ "11 32 6\r",
+ "11 32 7\r",
+ "11 32 8\r",
+ "11 32 9\r",
+ "11 32 10\r",
+ "11 32 11\r",
+ "11 32 12\r",
+ "11 32 13\r",
+ "11 32 14\r",
+ "11 32 15\r",
+ "11 32 16\r",
+ "11 32 17\r",
+ "11 32 18\r",
+ "11 32 19\r",
+ "11 32 20\r",
+ "11 32 21\r",
+ "11 32 22\r",
+ "11 32 23\r",
+ "11 32 24\r",
+ "11 32 25\r",
+ "11 32 26\r",
+ "11 32 27\r",
+ "11 32 28\r",
+ "11 32 29\r",
+ "11 32 30\r",
+ "11 32 31\r",
+ "11 32 32\r",
+ "11 32 33\r",
+ "11 32 34\r",
+ "11 32 35\r",
+ "11 32 36\r",
+ "11 32 37\r",
+ "11 32 38\r",
+ "11 32 39\r",
+ "11 32 40\r",
+ "11 32 41\r",
+ "11 32 42\r",
+ "11 32 43\r",
+ "11 32 44\r",
+ "11 32 45\r",
+ "11 32 46\r",
+ "11 32 47\r",
+ "11 32 48\r",
+ "11 32 49\r",
+ "11 32 50\r",
+ "11 32 51\r",
+ "11 32 52\r",
+ "11 32 53\r",
+ "11 32 54\r",
+ "11 32 55\r",
+ "11 32 56\r",
+ "11 32 57\r",
+ "11 32 58\r",
+ "11 33 1\r",
+ "11 33 2\r",
+ "11 33 3\r",
+ "11 33 4\r",
+ "11 33 5\r",
+ "11 33 6\r",
+ "11 33 7\r",
+ "11 33 8\r",
+ "11 33 9\r",
+ "11 33 10\r",
+ "11 33 11\r",
+ "11 33 12\r",
+ "11 33 13\r",
+ "11 33 14\r",
+ "11 33 15\r",
+ "11 33 16\r",
+ "11 33 17\r",
+ "11 33 18\r",
+ "11 33 19\r",
+ "11 33 20\r",
+ "11 33 21\r",
+ "11 33 22\r",
+ "11 33 23\r",
+ "11 33 24\r",
+ "11 33 25\r",
+ "11 33 26\r",
+ "11 33 27\r",
+ "11 33 28\r",
+ "11 33 29\r",
+ "11 33 30\r",
+ "11 33 31\r",
+ "11 33 32\r",
+ "11 33 33\r",
+ "11 33 34\r",
+ "11 33 35\r",
+ "11 33 36\r",
+ "11 33 37\r",
+ "11 33 38\r",
+ "11 33 39\r",
+ "11 33 40\r",
+ "11 33 41\r",
+ "11 33 42\r",
+ "11 33 43\r",
+ "11 33 44\r",
+ "11 33 45\r",
+ "11 33 46\r",
+ "11 33 47\r",
+ "11 33 48\r",
+ "11 33 49\r",
+ "11 33 50\r",
+ "11 33 51\r",
+ "11 33 52\r",
+ "11 33 53\r",
+ "11 33 54\r",
+ "11 33 55\r",
+ "11 33 56\r",
+ "11 33 57\r",
+ "11 33 58\r",
+ "11 34 1\r",
+ "11 34 2\r",
+ "11 34 3\r",
+ "11 34 4\r",
+ "11 34 5\r",
+ "11 34 6\r",
+ "11 34 7\r",
+ "11 34 8\r",
+ "11 34 9\r",
+ "11 34 10\r",
+ "11 34 11\r",
+ "11 34 12\r",
+ "11 34 13\r",
+ "11 34 14\r",
+ "11 34 15\r",
+ "11 34 16\r",
+ "11 34 17\r",
+ "11 34 18\r",
+ "11 34 19\r",
+ "11 34 20\r",
+ "11 34 21\r",
+ "11 34 22\r",
+ "11 34 23\r",
+ "11 34 24\r",
+ "11 34 25\r",
+ "11 34 26\r",
+ "11 34 27\r",
+ "11 34 28\r",
+ "11 34 29\r",
+ "11 34 30\r",
+ "11 34 31\r",
+ "11 34 32\r",
+ "11 34 33\r",
+ "11 34 34\r",
+ "11 34 35\r",
+ "11 34 36\r",
+ "11 34 37\r",
+ "11 34 38\r",
+ "11 34 39\r",
+ "11 34 40\r",
+ "11 34 41\r",
+ "11 34 42\r",
+ "11 34 43\r",
+ "11 34 44\r",
+ "11 34 45\r",
+ "11 34 46\r",
+ "11 34 47\r",
+ "11 34 48\r",
+ "11 34 49\r",
+ "11 34 50\r",
+ "11 34 51\r",
+ "11 34 52\r",
+ "11 34 53\r",
+ "11 34 54\r",
+ "11 34 55\r",
+ "11 34 56\r",
+ "11 34 57\r",
+ "11 34 58\r",
+ "11 35 1\r",
+ "11 35 2\r",
+ "11 35 3\r",
+ "11 35 4\r",
+ "11 35 5\r",
+ "11 35 6\r",
+ "11 35 7\r",
+ "11 35 8\r",
+ "11 35 9\r",
+ "11 35 10\r",
+ "11 35 11\r",
+ "11 35 12\r",
+ "11 35 13\r",
+ "11 35 14\r",
+ "11 35 15\r",
+ "11 35 16\r",
+ "11 35 17\r",
+ "11 35 18\r",
+ "11 35 19\r",
+ "11 35 20\r",
+ "11 35 21\r",
+ "11 35 22\r",
+ "11 35 23\r",
+ "11 35 24\r",
+ "11 35 25\r",
+ "11 35 26\r",
+ "11 35 27\r",
+ "11 35 28\r",
+ "11 35 29\r",
+ "11 35 30\r",
+ "11 35 31\r",
+ "11 35 32\r",
+ "11 35 33\r",
+ "11 35 34\r",
+ "11 35 35\r",
+ "11 35 36\r",
+ "11 35 37\r",
+ "11 35 38\r",
+ "11 35 39\r",
+ "11 35 40\r",
+ "11 35 41\r",
+ "11 35 42\r",
+ "11 35 43\r",
+ "11 35 44\r",
+ "11 35 45\r",
+ "11 35 46\r",
+ "11 35 47\r",
+ "11 35 48\r",
+ "11 35 49\r",
+ "11 35 50\r",
+ "11 35 51\r",
+ "11 35 52\r",
+ "11 35 53\r",
+ "11 35 54\r",
+ "11 35 55\r",
+ "11 35 56\r",
+ "11 35 57\r",
+ "11 35 58\r",
+ "11 36 1\r",
+ "11 36 2\r",
+ "11 36 3\r",
+ "11 36 4\r",
+ "11 36 5\r",
+ "11 36 6\r",
+ "11 36 7\r",
+ "11 36 8\r",
+ "11 36 9\r",
+ "11 36 10\r",
+ "11 36 11\r",
+ "11 36 12\r",
+ "11 36 13\r",
+ "11 36 14\r",
+ "11 36 15\r",
+ "11 36 16\r",
+ "11 36 17\r",
+ "11 36 18\r",
+ "11 36 19\r",
+ "11 36 20\r",
+ "11 36 21\r",
+ "11 36 22\r",
+ "11 36 23\r",
+ "11 36 24\r",
+ "11 36 25\r",
+ "11 36 26\r",
+ "11 36 27\r",
+ "11 36 28\r",
+ "11 36 29\r",
+ "11 36 30\r",
+ "11 36 31\r",
+ "11 36 32\r",
+ "11 36 33\r",
+ "11 36 34\r",
+ "11 36 35\r",
+ "11 36 36\r",
+ "11 36 37\r",
+ "11 36 38\r",
+ "11 36 39\r",
+ "11 36 40\r",
+ "11 36 41\r",
+ "11 36 42\r",
+ "11 36 43\r",
+ "11 36 44\r",
+ "11 36 45\r",
+ "11 36 46\r",
+ "11 36 47\r",
+ "11 36 48\r",
+ "11 36 49\r",
+ "11 36 50\r",
+ "11 36 51\r",
+ "11 36 52\r",
+ "11 36 53\r",
+ "11 36 54\r",
+ "11 36 55\r",
+ "11 36 56\r",
+ "11 36 57\r",
+ "11 36 58\r",
+ "11 37 1\r",
+ "11 37 2\r",
+ "11 37 3\r",
+ "11 37 4\r",
+ "11 37 5\r",
+ "11 37 6\r",
+ "11 37 7\r",
+ "11 37 8\r",
+ "11 37 9\r",
+ "11 37 10\r",
+ "11 37 11\r",
+ "11 37 12\r",
+ "11 37 13\r",
+ "11 37 14\r",
+ "11 37 15\r",
+ "11 37 16\r",
+ "11 37 17\r",
+ "11 37 18\r",
+ "11 37 19\r",
+ "11 37 20\r",
+ "11 37 21\r",
+ "11 37 22\r",
+ "11 37 23\r",
+ "11 37 24\r",
+ "11 37 25\r",
+ "11 37 26\r",
+ "11 37 27\r",
+ "11 37 28\r",
+ "11 37 29\r",
+ "11 37 30\r",
+ "11 37 31\r",
+ "11 37 32\r",
+ "11 37 33\r",
+ "11 37 34\r",
+ "11 37 35\r",
+ "11 37 36\r",
+ "11 37 37\r",
+ "11 37 38\r",
+ "11 37 39\r",
+ "11 37 40\r",
+ "11 37 41\r",
+ "11 37 42\r",
+ "11 37 43\r",
+ "11 37 44\r",
+ "11 37 45\r",
+ "11 37 46\r",
+ "11 37 47\r",
+ "11 37 48\r",
+ "11 37 49\r",
+ "11 37 50\r",
+ "11 37 51\r",
+ "11 37 52\r",
+ "11 37 53\r",
+ "11 37 54\r",
+ "11 37 55\r",
+ "11 37 56\r",
+ "11 37 57\r",
+ "11 37 58\r",
+ "11 38 1\r",
+ "11 38 2\r",
+ "11 38 3\r",
+ "11 38 4\r",
+ "11 38 5\r",
+ "11 38 6\r",
+ "11 38 7\r",
+ "11 38 8\r",
+ "11 38 9\r",
+ "11 38 10\r",
+ "11 38 11\r",
+ "11 38 12\r",
+ "11 38 13\r",
+ "11 38 14\r",
+ "11 38 15\r",
+ "11 38 16\r",
+ "11 38 17\r",
+ "11 38 18\r",
+ "11 38 19\r",
+ "11 38 20\r",
+ "11 38 21\r",
+ "11 38 22\r",
+ "11 38 23\r",
+ "11 38 24\r",
+ "11 38 25\r",
+ "11 38 26\r",
+ "11 38 27\r",
+ "11 38 28\r",
+ "11 38 29\r",
+ "11 38 30\r",
+ "11 38 31\r",
+ "11 38 32\r",
+ "11 38 33\r",
+ "11 38 34\r",
+ "11 38 35\r",
+ "11 38 36\r",
+ "11 38 37\r",
+ "11 38 38\r",
+ "11 38 39\r",
+ "11 38 40\r",
+ "11 38 41\r",
+ "11 38 42\r",
+ "11 38 43\r",
+ "11 38 44\r",
+ "11 38 45\r",
+ "11 38 46\r",
+ "11 38 47\r",
+ "11 38 48\r",
+ "11 38 49\r",
+ "11 38 50\r",
+ "11 38 51\r",
+ "11 38 52\r",
+ "11 38 53\r",
+ "11 38 54\r",
+ "11 38 55\r",
+ "11 38 56\r",
+ "11 38 57\r",
+ "11 38 58\r",
+ "11 39 1\r",
+ "11 39 2\r",
+ "11 39 3\r",
+ "11 39 4\r",
+ "11 39 5\r",
+ "11 39 6\r",
+ "11 39 7\r",
+ "11 39 8\r",
+ "11 39 9\r",
+ "11 39 10\r",
+ "11 39 11\r",
+ "11 39 12\r",
+ "11 39 13\r",
+ "11 39 14\r",
+ "11 39 15\r",
+ "11 39 16\r",
+ "11 39 17\r",
+ "11 39 18\r",
+ "11 39 19\r",
+ "11 39 20\r",
+ "11 39 21\r",
+ "11 39 22\r",
+ "11 39 23\r",
+ "11 39 24\r",
+ "11 39 25\r",
+ "11 39 26\r",
+ "11 39 27\r",
+ "11 39 28\r",
+ "11 39 29\r",
+ "11 39 30\r",
+ "11 39 31\r",
+ "11 39 32\r",
+ "11 39 33\r",
+ "11 39 34\r",
+ "11 39 35\r",
+ "11 39 36\r",
+ "11 39 37\r",
+ "11 39 38\r",
+ "11 39 39\r",
+ "11 39 40\r",
+ "11 39 41\r",
+ "11 39 42\r",
+ "11 39 43\r",
+ "11 39 44\r",
+ "11 39 45\r",
+ "11 39 46\r",
+ "11 39 47\r",
+ "11 39 48\r",
+ "11 39 49\r",
+ "11 39 50\r",
+ "11 39 51\r",
+ "11 39 52\r",
+ "11 39 53\r",
+ "11 39 54\r",
+ "11 39 55\r",
+ "11 39 56\r",
+ "11 39 57\r",
+ "11 39 58\r",
+ "11 40 1\r",
+ "11 40 2\r",
+ "11 40 3\r",
+ "11 40 4\r",
+ "11 40 5\r",
+ "11 40 6\r",
+ "11 40 7\r",
+ "11 40 8\r",
+ "11 40 9\r",
+ "11 40 10\r",
+ "11 40 11\r",
+ "11 40 12\r",
+ "11 40 13\r",
+ "11 40 14\r",
+ "11 40 15\r",
+ "11 40 16\r",
+ "11 40 17\r",
+ "11 40 18\r",
+ "11 40 19\r",
+ "11 40 20\r",
+ "11 40 21\r",
+ "11 40 22\r",
+ "11 40 23\r",
+ "11 40 24\r",
+ "11 40 25\r",
+ "11 40 26\r",
+ "11 40 27\r",
+ "11 40 28\r",
+ "11 40 29\r",
+ "11 40 30\r",
+ "11 40 31\r",
+ "11 40 32\r",
+ "11 40 33\r",
+ "11 40 34\r",
+ "11 40 35\r",
+ "11 40 36\r",
+ "11 40 37\r",
+ "11 40 38\r",
+ "11 40 39\r",
+ "11 40 40\r",
+ "11 40 41\r",
+ "11 40 42\r",
+ "11 40 43\r",
+ "11 40 44\r",
+ "11 40 45\r",
+ "11 40 46\r",
+ "11 40 47\r",
+ "11 40 48\r",
+ "11 40 49\r",
+ "11 40 50\r",
+ "11 40 51\r",
+ "11 40 52\r",
+ "11 40 53\r",
+ "11 40 54\r",
+ "11 40 55\r",
+ "11 40 56\r",
+ "11 40 57\r",
+ "11 40 58\r",
+ "11 41 1\r",
+ "11 41 2\r",
+ "11 41 3\r",
+ "11 41 4\r",
+ "11 41 5\r",
+ "11 41 6\r",
+ "11 41 7\r",
+ "11 41 8\r",
+ "11 41 9\r",
+ "11 41 10\r",
+ "11 41 11\r",
+ "11 41 12\r",
+ "11 41 13\r",
+ "11 41 14\r",
+ "11 41 15\r",
+ "11 41 16\r",
+ "11 41 17\r",
+ "11 41 18\r",
+ "11 41 19\r",
+ "11 41 20\r",
+ "11 41 21\r",
+ "11 41 22\r",
+ "11 41 23\r",
+ "11 41 24\r",
+ "11 41 25\r",
+ "11 41 26\r",
+ "11 41 27\r",
+ "11 41 28\r",
+ "11 41 29\r",
+ "11 41 30\r",
+ "11 41 31\r",
+ "11 41 32\r",
+ "11 41 33\r",
+ "11 41 34\r",
+ "11 41 35\r",
+ "11 41 36\r",
+ "11 41 37\r",
+ "11 41 38\r",
+ "11 41 39\r",
+ "11 41 40\r",
+ "11 41 41\r",
+ "11 41 42\r",
+ "11 41 43\r",
+ "11 41 44\r",
+ "11 41 45\r",
+ "11 41 46\r",
+ "11 41 47\r",
+ "11 41 48\r",
+ "11 41 49\r",
+ "11 41 50\r",
+ "11 41 51\r",
+ "11 41 52\r",
+ "11 41 53\r",
+ "11 41 54\r",
+ "11 41 55\r",
+ "11 41 56\r",
+ "11 41 57\r",
+ "11 41 58\r",
+ "11 42 1\r",
+ "11 42 2\r",
+ "11 42 3\r",
+ "11 42 4\r",
+ "11 42 5\r",
+ "11 42 6\r",
+ "11 42 7\r",
+ "11 42 8\r",
+ "11 42 9\r",
+ "11 42 10\r",
+ "11 42 11\r",
+ "11 42 12\r",
+ "11 42 13\r",
+ "11 42 14\r",
+ "11 42 15\r",
+ "11 42 16\r",
+ "11 42 17\r",
+ "11 42 18\r",
+ "11 42 19\r",
+ "11 42 20\r",
+ "11 42 21\r",
+ "11 42 22\r",
+ "11 42 23\r",
+ "11 42 24\r",
+ "11 42 25\r",
+ "11 42 26\r",
+ "11 42 27\r",
+ "11 42 28\r",
+ "11 42 29\r",
+ "11 42 30\r",
+ "11 42 31\r",
+ "11 42 32\r",
+ "11 42 33\r",
+ "11 42 34\r",
+ "11 42 35\r",
+ "11 42 36\r",
+ "11 42 37\r",
+ "11 42 38\r",
+ "11 42 39\r",
+ "11 42 40\r",
+ "11 42 41\r",
+ "11 42 42\r",
+ "11 42 43\r",
+ "11 42 44\r",
+ "11 42 45\r",
+ "11 42 46\r",
+ "11 42 47\r",
+ "11 42 48\r",
+ "11 42 49\r",
+ "11 42 50\r",
+ "11 42 51\r",
+ "11 42 52\r",
+ "11 42 53\r",
+ "11 42 54\r",
+ "11 42 55\r",
+ "11 42 56\r",
+ "11 42 57\r",
+ "11 42 58\r",
+ "11 43 1\r",
+ "11 43 2\r",
+ "11 43 3\r",
+ "11 43 4\r",
+ "11 43 5\r",
+ "11 43 6\r",
+ "11 43 7\r",
+ "11 43 8\r",
+ "11 43 9\r",
+ "11 43 10\r",
+ "11 43 11\r",
+ "11 43 12\r",
+ "11 43 13\r",
+ "11 43 14\r",
+ "11 43 15\r",
+ "11 43 16\r",
+ "11 43 17\r",
+ "11 43 18\r",
+ "11 43 19\r",
+ "11 43 20\r",
+ "11 43 21\r",
+ "11 43 22\r",
+ "11 43 23\r",
+ "11 43 24\r",
+ "11 43 25\r",
+ "11 43 26\r",
+ "11 43 27\r",
+ "11 43 28\r",
+ "11 43 29\r",
+ "11 43 30\r",
+ "11 43 31\r",
+ "11 43 32\r",
+ "11 43 33\r",
+ "11 43 34\r",
+ "11 43 35\r",
+ "11 43 36\r",
+ "11 43 37\r",
+ "11 43 38\r",
+ "11 43 39\r",
+ "11 43 40\r",
+ "11 43 41\r",
+ "11 43 42\r",
+ "11 43 43\r",
+ "11 43 44\r",
+ "11 43 45\r",
+ "11 43 46\r",
+ "11 43 47\r",
+ "11 43 48\r",
+ "11 43 49\r",
+ "11 43 50\r",
+ "11 43 51\r",
+ "11 43 52\r",
+ "11 43 53\r",
+ "11 43 54\r",
+ "11 43 55\r",
+ "11 43 56\r",
+ "11 43 57\r",
+ "11 43 58\r",
+ "11 44 1\r",
+ "11 44 2\r",
+ "11 44 3\r",
+ "11 44 4\r",
+ "11 44 5\r",
+ "11 44 6\r",
+ "11 44 7\r",
+ "11 44 8\r",
+ "11 44 9\r",
+ "11 44 10\r",
+ "11 44 11\r",
+ "11 44 12\r",
+ "11 44 13\r",
+ "11 44 14\r",
+ "11 44 15\r",
+ "11 44 16\r",
+ "11 44 17\r",
+ "11 44 18\r",
+ "11 44 19\r",
+ "11 44 20\r",
+ "11 44 21\r",
+ "11 44 22\r",
+ "11 44 23\r",
+ "11 44 24\r",
+ "11 44 25\r",
+ "11 44 26\r",
+ "11 44 27\r",
+ "11 44 28\r",
+ "11 44 29\r",
+ "11 44 30\r",
+ "11 44 31\r",
+ "11 44 32\r",
+ "11 44 33\r",
+ "11 44 34\r",
+ "11 44 35\r",
+ "11 44 36\r",
+ "11 44 37\r",
+ "11 44 38\r",
+ "11 44 39\r",
+ "11 44 40\r",
+ "11 44 41\r",
+ "11 44 42\r",
+ "11 44 43\r",
+ "11 44 44\r",
+ "11 44 45\r",
+ "11 44 46\r",
+ "11 44 47\r",
+ "11 44 48\r",
+ "11 44 49\r",
+ "11 44 50\r",
+ "11 44 51\r",
+ "11 44 52\r",
+ "11 44 53\r",
+ "11 44 54\r",
+ "11 44 55\r",
+ "11 44 56\r",
+ "11 44 57\r",
+ "11 44 58\r",
+ "11 45 1\r",
+ "11 45 2\r",
+ "11 45 3\r",
+ "11 45 4\r",
+ "11 45 5\r",
+ "11 45 6\r",
+ "11 45 7\r",
+ "11 45 8\r",
+ "11 45 9\r",
+ "11 45 10\r",
+ "11 45 11\r",
+ "11 45 12\r",
+ "11 45 13\r",
+ "11 45 14\r",
+ "11 45 15\r",
+ "11 45 16\r",
+ "11 45 17\r",
+ "11 45 18\r",
+ "11 45 19\r",
+ "11 45 20\r",
+ "11 45 21\r",
+ "11 45 22\r",
+ "11 45 23\r",
+ "11 45 24\r",
+ "11 45 25\r",
+ "11 45 26\r",
+ "11 45 27\r",
+ "11 45 28\r",
+ "11 45 29\r",
+ "11 45 30\r",
+ "11 45 31\r",
+ "11 45 32\r",
+ "11 45 33\r",
+ "11 45 34\r",
+ "11 45 35\r",
+ "11 45 36\r",
+ "11 45 37\r",
+ "11 45 38\r",
+ "11 45 39\r",
+ "11 45 40\r",
+ "11 45 41\r",
+ "11 45 42\r",
+ "11 45 43\r",
+ "11 45 44\r",
+ "11 45 45\r",
+ "11 45 46\r",
+ "11 45 47\r",
+ "11 45 48\r",
+ "11 45 49\r",
+ "11 45 50\r",
+ "11 45 51\r",
+ "11 45 52\r",
+ "11 45 53\r",
+ "11 45 54\r",
+ "11 45 55\r",
+ "11 45 56\r",
+ "11 45 57\r",
+ "11 45 58\r",
+ "11 46 1\r",
+ "11 46 2\r",
+ "11 46 3\r",
+ "11 46 4\r",
+ "11 46 5\r",
+ "11 46 6\r",
+ "11 46 7\r",
+ "11 46 8\r",
+ "11 46 9\r",
+ "11 46 10\r",
+ "11 46 11\r",
+ "11 46 12\r",
+ "11 46 13\r",
+ "11 46 14\r",
+ "11 46 15\r",
+ "11 46 16\r",
+ "11 46 17\r",
+ "11 46 18\r",
+ "11 46 19\r",
+ "11 46 20\r",
+ "11 46 21\r",
+ "11 46 22\r",
+ "11 46 23\r",
+ "11 46 24\r",
+ "11 46 25\r",
+ "11 46 26\r",
+ "11 46 27\r",
+ "11 46 28\r",
+ "11 46 29\r",
+ "11 46 30\r",
+ "11 46 31\r",
+ "11 46 32\r",
+ "11 46 33\r",
+ "11 46 34\r",
+ "11 46 35\r",
+ "11 46 36\r",
+ "11 46 37\r",
+ "11 46 38\r",
+ "11 46 39\r",
+ "11 46 40\r",
+ "11 46 41\r",
+ "11 46 42\r",
+ "11 46 43\r",
+ "11 46 44\r",
+ "11 46 45\r",
+ "11 46 46\r",
+ "11 46 47\r",
+ "11 46 48\r",
+ "11 46 49\r",
+ "11 46 50\r",
+ "11 46 51\r",
+ "11 46 52\r",
+ "11 46 53\r",
+ "11 46 54\r",
+ "11 46 55\r",
+ "11 46 56\r",
+ "11 46 57\r",
+ "11 46 58\r",
+ "11 47 1\r",
+ "11 47 2\r",
+ "11 47 3\r",
+ "11 47 4\r",
+ "11 47 5\r",
+ "11 47 6\r",
+ "11 47 7\r",
+ "11 47 8\r",
+ "11 47 9\r",
+ "11 47 10\r",
+ "11 47 11\r",
+ "11 47 12\r",
+ "11 47 13\r",
+ "11 47 14\r",
+ "11 47 15\r",
+ "11 47 16\r",
+ "11 47 17\r",
+ "11 47 18\r",
+ "11 47 19\r",
+ "11 47 20\r",
+ "11 47 21\r",
+ "11 47 22\r",
+ "11 47 23\r",
+ "11 47 24\r",
+ "11 47 25\r",
+ "11 47 26\r",
+ "11 47 27\r",
+ "11 47 28\r",
+ "11 47 29\r",
+ "11 47 30\r",
+ "11 47 31\r",
+ "11 47 32\r",
+ "11 47 33\r",
+ "11 47 34\r",
+ "11 47 35\r",
+ "11 47 36\r",
+ "11 47 37\r",
+ "11 47 38\r",
+ "11 47 39\r",
+ "11 47 40\r",
+ "11 47 41\r",
+ "11 47 42\r",
+ "11 47 43\r",
+ "11 47 44\r",
+ "11 47 45\r",
+ "11 47 46\r",
+ "11 47 47\r",
+ "11 47 48\r",
+ "11 47 49\r",
+ "11 47 50\r",
+ "11 47 51\r",
+ "11 47 52\r",
+ "11 47 53\r",
+ "11 47 54\r",
+ "11 47 55\r",
+ "11 47 56\r",
+ "11 47 57\r",
+ "11 47 58\r",
+ "11 48 1\r",
+ "11 48 2\r",
+ "11 48 3\r",
+ "11 48 4\r",
+ "11 48 5\r",
+ "11 48 6\r",
+ "11 48 7\r",
+ "11 48 8\r",
+ "11 48 9\r",
+ "11 48 10\r",
+ "11 48 11\r",
+ "11 48 12\r",
+ "11 48 13\r",
+ "11 48 14\r",
+ "11 48 15\r",
+ "11 48 16\r",
+ "11 48 17\r",
+ "11 48 18\r",
+ "11 48 19\r",
+ "11 48 20\r",
+ "11 48 21\r",
+ "11 48 22\r",
+ "11 48 23\r",
+ "11 48 24\r",
+ "11 48 25\r",
+ "11 48 26\r",
+ "11 48 27\r",
+ "11 48 28\r",
+ "11 48 29\r",
+ "11 48 30\r",
+ "11 48 31\r",
+ "11 48 32\r",
+ "11 48 33\r",
+ "11 48 34\r",
+ "11 48 35\r",
+ "11 48 36\r",
+ "11 48 37\r",
+ "11 48 38\r",
+ "11 48 39\r",
+ "11 48 40\r",
+ "11 48 41\r",
+ "11 48 42\r",
+ "11 48 43\r",
+ "11 48 44\r",
+ "11 48 45\r",
+ "11 48 46\r",
+ "11 48 47\r",
+ "11 48 48\r",
+ "11 48 49\r",
+ "11 48 50\r",
+ "11 48 51\r",
+ "11 48 52\r",
+ "11 48 53\r",
+ "11 48 54\r",
+ "11 48 55\r",
+ "11 48 56\r",
+ "11 48 57\r",
+ "11 48 58\r",
+ "11 49 1\r",
+ "11 49 2\r",
+ "11 49 3\r",
+ "11 49 4\r",
+ "11 49 5\r",
+ "11 49 6\r",
+ "11 49 7\r",
+ "11 49 8\r",
+ "11 49 9\r",
+ "11 49 10\r",
+ "11 49 11\r",
+ "11 49 12\r",
+ "11 49 13\r",
+ "11 49 14\r",
+ "11 49 15\r",
+ "11 49 16\r",
+ "11 49 17\r",
+ "11 49 18\r",
+ "11 49 19\r",
+ "11 49 20\r",
+ "11 49 21\r",
+ "11 49 22\r",
+ "11 49 23\r",
+ "11 49 24\r",
+ "11 49 25\r",
+ "11 49 26\r",
+ "11 49 27\r",
+ "11 49 28\r",
+ "11 49 29\r",
+ "11 49 30\r",
+ "11 49 31\r",
+ "11 49 32\r",
+ "11 49 33\r",
+ "11 49 34\r",
+ "11 49 35\r",
+ "11 49 36\r",
+ "11 49 37\r",
+ "11 49 38\r",
+ "11 49 39\r",
+ "11 49 40\r",
+ "11 49 41\r",
+ "11 49 42\r",
+ "11 49 43\r",
+ "11 49 44\r",
+ "11 49 45\r",
+ "11 49 46\r",
+ "11 49 47\r",
+ "11 49 48\r",
+ "11 49 49\r",
+ "11 49 50\r",
+ "11 49 51\r",
+ "11 49 52\r",
+ "11 49 53\r",
+ "11 49 54\r",
+ "11 49 55\r",
+ "11 49 56\r",
+ "11 49 57\r",
+ "11 49 58\r",
+ "11 50 1\r",
+ "11 50 2\r",
+ "11 50 3\r",
+ "11 50 4\r",
+ "11 50 5\r",
+ "11 50 6\r",
+ "11 50 7\r",
+ "11 50 8\r",
+ "11 50 9\r",
+ "11 50 10\r",
+ "11 50 11\r",
+ "11 50 12\r",
+ "11 50 13\r",
+ "11 50 14\r",
+ "11 50 15\r",
+ "11 50 16\r",
+ "11 50 17\r",
+ "11 50 18\r",
+ "11 50 19\r",
+ "11 50 20\r",
+ "11 50 21\r",
+ "11 50 22\r",
+ "11 50 23\r",
+ "11 50 24\r",
+ "11 50 25\r",
+ "11 50 26\r",
+ "11 50 27\r",
+ "11 50 28\r",
+ "11 50 29\r",
+ "11 50 30\r",
+ "11 50 31\r",
+ "11 50 32\r",
+ "11 50 33\r",
+ "11 50 34\r",
+ "11 50 35\r",
+ "11 50 36\r",
+ "11 50 37\r",
+ "11 50 38\r",
+ "11 50 39\r",
+ "11 50 40\r",
+ "11 50 41\r",
+ "11 50 42\r",
+ "11 50 43\r",
+ "11 50 44\r",
+ "11 50 45\r",
+ "11 50 46\r",
+ "11 50 47\r",
+ "11 50 48\r",
+ "11 50 49\r",
+ "11 50 50\r",
+ "11 50 51\r",
+ "11 50 52\r",
+ "11 50 53\r",
+ "11 50 54\r",
+ "11 50 55\r",
+ "11 50 56\r",
+ "11 50 57\r",
+ "11 50 58\r",
+ "11 51 1\r",
+ "11 51 2\r",
+ "11 51 3\r",
+ "11 51 4\r",
+ "11 51 5\r",
+ "11 51 6\r",
+ "11 51 7\r",
+ "11 51 8\r",
+ "11 51 9\r",
+ "11 51 10\r",
+ "11 51 11\r",
+ "11 51 12\r",
+ "11 51 13\r",
+ "11 51 14\r",
+ "11 51 15\r",
+ "11 51 16\r",
+ "11 51 17\r",
+ "11 51 18\r",
+ "11 51 19\r",
+ "11 51 20\r",
+ "11 51 21\r",
+ "11 51 22\r",
+ "11 51 23\r",
+ "11 51 24\r",
+ "11 51 25\r",
+ "11 51 26\r",
+ "11 51 27\r",
+ "11 51 28\r",
+ "11 51 29\r",
+ "11 51 30\r",
+ "11 51 31\r",
+ "11 51 32\r",
+ "11 51 33\r",
+ "11 51 34\r",
+ "11 51 35\r",
+ "11 51 36\r",
+ "11 51 37\r",
+ "11 51 38\r",
+ "11 51 39\r",
+ "11 51 40\r",
+ "11 51 41\r",
+ "11 51 42\r",
+ "11 51 43\r",
+ "11 51 44\r",
+ "11 51 45\r",
+ "11 51 46\r",
+ "11 51 47\r",
+ "11 51 48\r",
+ "11 51 49\r",
+ "11 51 50\r",
+ "11 51 51\r",
+ "11 51 52\r",
+ "11 51 53\r",
+ "11 51 54\r",
+ "11 51 55\r",
+ "11 51 56\r",
+ "11 51 57\r",
+ "11 51 58\r",
+ "11 52 1\r",
+ "11 52 2\r",
+ "11 52 3\r",
+ "11 52 4\r",
+ "11 52 5\r",
+ "11 52 6\r",
+ "11 52 7\r",
+ "11 52 8\r",
+ "11 52 9\r",
+ "11 52 10\r",
+ "11 52 11\r",
+ "11 52 12\r",
+ "11 52 13\r",
+ "11 52 14\r",
+ "11 52 15\r",
+ "11 52 16\r",
+ "11 52 17\r",
+ "11 52 18\r",
+ "11 52 19\r",
+ "11 52 20\r",
+ "11 52 21\r",
+ "11 52 22\r",
+ "11 52 23\r",
+ "11 52 24\r",
+ "11 52 25\r",
+ "11 52 26\r",
+ "11 52 27\r",
+ "11 52 28\r",
+ "11 52 29\r",
+ "11 52 30\r",
+ "11 52 31\r",
+ "11 52 32\r",
+ "11 52 33\r",
+ "11 52 34\r",
+ "11 52 35\r",
+ "11 52 36\r",
+ "11 52 37\r",
+ "11 52 38\r",
+ "11 52 39\r",
+ "11 52 40\r",
+ "11 52 41\r",
+ "11 52 42\r",
+ "11 52 43\r",
+ "11 52 44"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\r",
+ "11 52 45\r",
+ "11 52 46\r",
+ "11 52 47\r",
+ "11 52 48\r",
+ "11 52 49\r",
+ "11 52 50\r",
+ "11 52 51\r",
+ "11 52 52\r",
+ "11 52 53\r",
+ "11 52 54\r",
+ "11 52 55\r",
+ "11 52 56\r",
+ "11 52 57\r",
+ "11 52 58\r",
+ "11 53 1\r",
+ "11 53 2\r",
+ "11 53 3\r",
+ "11 53 4\r",
+ "11 53 5\r",
+ "11 53 6\r",
+ "11 53 7\r",
+ "11 53 8\r",
+ "11 53 9\r",
+ "11 53 10\r",
+ "11 53 11\r",
+ "11 53 12\r",
+ "11 53 13\r",
+ "11 53 14\r",
+ "11 53 15\r",
+ "11 53 16\r",
+ "11 53 17\r",
+ "11 53 18\r",
+ "11 53 19\r",
+ "11 53 20\r",
+ "11 53 21\r",
+ "11 53 22\r",
+ "11 53 23\r",
+ "11 53 24\r",
+ "11 53 25\r",
+ "11 53 26\r",
+ "11 53 27\r",
+ "11 53 28\r",
+ "11 53 29\r",
+ "11 53 30\r",
+ "11 53 31\r",
+ "11 53 32\r",
+ "11 53 33\r",
+ "11 53 34\r",
+ "11 53 35\r",
+ "11 53 36\r",
+ "11 53 37\r",
+ "11 53 38\r",
+ "11 53 39\r",
+ "11 53 40\r",
+ "11 53 41\r",
+ "11 53 42\r",
+ "11 53 43\r",
+ "11 53 44\r",
+ "11 53 45\r",
+ "11 53 46\r",
+ "11 53 47\r",
+ "11 53 48\r",
+ "11 53 49\r",
+ "11 53 50\r",
+ "11 53 51\r",
+ "11 53 52\r",
+ "11 53 53\r",
+ "11 53 54\r",
+ "11 53 55\r",
+ "11 53 56\r",
+ "11 53 57\r",
+ "11 53 58\r",
+ "11 54 1\r",
+ "11 54 2\r",
+ "11 54 3\r",
+ "11 54 4\r",
+ "11 54 5\r",
+ "11 54 6\r",
+ "11 54 7\r",
+ "11 54 8\r",
+ "11 54 9\r",
+ "11 54 10\r",
+ "11 54 11\r",
+ "11 54 12\r",
+ "11 54 13\r",
+ "11 54 14\r",
+ "11 54 15\r",
+ "11 54 16\r",
+ "11 54 17\r",
+ "11 54 18\r",
+ "11 54 19\r",
+ "11 54 20\r",
+ "11 54 21\r",
+ "11 54 22\r",
+ "11 54 23\r",
+ "11 54 24\r",
+ "11 54 25\r",
+ "11 54 26\r",
+ "11 54 27\r",
+ "11 54 28\r",
+ "11 54 29\r",
+ "11 54 30\r",
+ "11 54 31\r",
+ "11 54 32\r",
+ "11 54 33\r",
+ "11 54 34\r",
+ "11 54 35\r",
+ "11 54 36\r",
+ "11 54 37\r",
+ "11 54 38\r",
+ "11 54 39\r",
+ "11 54 40\r",
+ "11 54 41\r",
+ "11 54 42\r",
+ "11 54 43\r",
+ "11 54 44\r",
+ "11 54 45\r",
+ "11 54 46\r",
+ "11 54 47\r",
+ "11 54 48\r",
+ "11 54 49\r",
+ "11 54 50\r",
+ "11 54 51\r",
+ "11 54 52\r",
+ "11 54 53\r",
+ "11 54 54\r",
+ "11 54 55\r",
+ "11 54 56\r",
+ "11 54 57\r",
+ "11 54 58\r",
+ "11 55 1\r",
+ "11 55 2\r",
+ "11 55 3\r",
+ "11 55 4\r",
+ "11 55 5\r",
+ "11 55 6\r",
+ "11 55 7\r",
+ "11 55 8\r",
+ "11 55 9\r",
+ "11 55 10\r",
+ "11 55 11\r",
+ "11 55 12\r",
+ "11 55 13\r",
+ "11 55 14\r",
+ "11 55 15\r",
+ "11 55 16\r",
+ "11 55 17\r",
+ "11 55 18\r",
+ "11 55 19\r",
+ "11 55 20\r",
+ "11 55 21\r",
+ "11 55 22\r",
+ "11 55 23\r",
+ "11 55 24\r",
+ "11 55 25\r",
+ "11 55 26\r",
+ "11 55 27\r",
+ "11 55 28\r",
+ "11 55 29\r",
+ "11 55 30\r",
+ "11 55 31\r",
+ "11 55 32\r",
+ "11 55 33\r",
+ "11 55 34\r",
+ "11 55 35\r",
+ "11 55 36\r",
+ "11 55 37\r",
+ "11 55 38\r",
+ "11 55 39\r",
+ "11 55 40\r",
+ "11 55 41\r",
+ "11 55 42\r",
+ "11 55 43\r",
+ "11 55 44\r",
+ "11 55 45\r",
+ "11 55 46\r",
+ "11 55 47\r",
+ "11 55 48\r",
+ "11 55 49\r",
+ "11 55 50\r",
+ "11 55 51\r",
+ "11 55 52\r",
+ "11 55 53\r",
+ "11 55 54\r",
+ "11 55 55\r",
+ "11 55 56\r",
+ "11 55 57\r",
+ "11 55 58\r",
+ "11 56 1\r",
+ "11 56 2\r",
+ "11 56 3\r",
+ "11 56 4\r",
+ "11 56 5\r",
+ "11 56 6\r",
+ "11 56 7\r",
+ "11 56 8\r",
+ "11 56 9\r",
+ "11 56 10\r",
+ "11 56 11\r",
+ "11 56 12\r",
+ "11 56 13\r",
+ "11 56 14\r",
+ "11 56 15\r",
+ "11 56 16\r",
+ "11 56 17\r",
+ "11 56 18\r",
+ "11 56 19\r",
+ "11 56 20\r",
+ "11 56 21\r",
+ "11 56 22\r",
+ "11 56 23\r",
+ "11 56 24\r",
+ "11 56 25\r",
+ "11 56 26\r",
+ "11 56 27\r",
+ "11 56 28\r",
+ "11 56 29\r",
+ "11 56 30\r",
+ "11 56 31\r",
+ "11 56 32\r",
+ "11 56 33\r",
+ "11 56 34\r",
+ "11 56 35\r",
+ "11 56 36\r",
+ "11 56 37\r",
+ "11 56 38\r",
+ "11 56 39\r",
+ "11 56 40\r",
+ "11 56 41\r",
+ "11 56 42\r",
+ "11 56 43\r",
+ "11 56 44\r",
+ "11 56 45\r",
+ "11 56 46\r",
+ "11 56 47\r",
+ "11 56 48\r",
+ "11 56 49\r",
+ "11 56 50\r",
+ "11 56 51\r",
+ "11 56 52\r",
+ "11 56 53\r",
+ "11 56 54\r",
+ "11 56 55\r",
+ "11 56 56\r",
+ "11 56 57\r",
+ "11 56 58\r",
+ "11 57 1\r",
+ "11 57 2\r",
+ "11 57 3\r",
+ "11 57 4\r",
+ "11 57 5\r",
+ "11 57 6\r",
+ "11 57 7\r",
+ "11 57 8\r",
+ "11 57 9\r",
+ "11 57 10\r",
+ "11 57 11\r",
+ "11 57 12\r",
+ "11 57 13\r",
+ "11 57 14\r",
+ "11 57 15\r",
+ "11 57 16\r",
+ "11 57 17\r",
+ "11 57 18\r",
+ "11 57 19\r",
+ "11 57 20\r",
+ "11 57 21\r",
+ "11 57 22\r",
+ "11 57 23\r",
+ "11 57 24\r",
+ "11 57 25\r",
+ "11 57 26\r",
+ "11 57 27\r",
+ "11 57 28\r",
+ "11 57 29\r",
+ "11 57 30\r",
+ "11 57 31\r",
+ "11 57 32\r",
+ "11 57 33\r",
+ "11 57 34\r",
+ "11 57 35\r",
+ "11 57 36\r",
+ "11 57 37\r",
+ "11 57 38\r",
+ "11 57 39\r",
+ "11 57 40\r",
+ "11 57 41\r",
+ "11 57 42\r",
+ "11 57 43\r",
+ "11 57 44\r",
+ "11 57 45\r",
+ "11 57 46\r",
+ "11 57 47\r",
+ "11 57 48\r",
+ "11 57 49\r",
+ "11 57 50\r",
+ "11 57 51\r",
+ "11 57 52\r",
+ "11 57 53\r",
+ "11 57 54\r",
+ "11 57 55\r",
+ "11 57 56\r",
+ "11 57 57\r",
+ "11 57 58\r",
+ "11 58 1\r",
+ "11 58 2\r",
+ "11 58 3\r",
+ "11 58 4\r",
+ "11 58 5\r",
+ "11 58 6\r",
+ "11 58 7\r",
+ "11 58 8\r",
+ "11 58 9\r",
+ "11 58 10\r",
+ "11 58 11\r",
+ "11 58 12\r",
+ "11 58 13\r",
+ "11 58 14\r",
+ "11 58 15\r",
+ "11 58 16\r",
+ "11 58 17\r",
+ "11 58 18\r",
+ "11 58 19\r",
+ "11 58 20\r",
+ "11 58 21\r",
+ "11 58 22\r",
+ "11 58 23\r",
+ "11 58 24\r",
+ "11 58 25\r",
+ "11 58 26\r",
+ "11 58 27\r",
+ "11 58 28\r",
+ "11 58 29\r",
+ "11 58 30\r",
+ "11 58 31\r",
+ "11 58 32\r",
+ "11 58 33\r",
+ "11 58 34\r",
+ "11 58 35\r",
+ "11 58 36\r",
+ "11 58 37\r",
+ "11 58 38\r",
+ "11 58 39\r",
+ "11 58 40\r",
+ "11 58 41\r",
+ "11 58 42\r",
+ "11 58 43\r",
+ "11 58 44\r",
+ "11 58 45\r",
+ "11 58 46\r",
+ "11 58 47\r",
+ "11 58 48\r",
+ "11 58 49\r",
+ "11 58 50\r",
+ "11 58 51\r",
+ "11 58 52\r",
+ "11 58 53\r",
+ "11 58 54\r",
+ "11 58 55\r",
+ "11 58 56\r",
+ "11 58 57\r",
+ "11 58 58"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.33, Page number: 131<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Count occurrence of 0 to 9 digits between 1 and given decimal number\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "n = int(raw_input(\"Enter a Decimal Number : \"))\n",
+ "st = [0 for x in range(10)] #10 array elements initialized as 0\n",
+ "\n",
+ "#Calculation\n",
+ "for l in range(1,n+1):\n",
+ " t = l\n",
+ " while t != 0:\n",
+ " k = t % 10\n",
+ " t = t / 10\n",
+ " st[k] += 1\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nOccurrence of 0-9 digits between 1 to %d Numbers.\"%(n))\n",
+ "sys.stdout.write(\"\\n========== == === ====== ======= = == == ========\")\n",
+ "\n",
+ "for i in range(0,10):\n",
+ " if st[i] > 0:\n",
+ " sys.stdout.write(\"\\n%d Occurs %8d Times.\"%(i,st[i]))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Decimal Number : 15\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Occurrence of 0-9 digits between 1 to 15 Numbers.\n",
+ "========== == === ====== ======= = == == ========\n",
+ "0 Occurs 1 Times.\n",
+ "1 Occurs 8 Times.\n",
+ "2 Occurs 2 Times.\n",
+ "3 Occurs 2 Times.\n",
+ "4 Occurs 2 Times.\n",
+ "5 Occurs 2 Times.\n",
+ "6 Occurs 1 Times.\n",
+ "7 Occurs 1 Times.\n",
+ "8 Occurs 1 Times.\n",
+ "9 Occurs 1 Times."
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.34, Page number: 132<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display sum of digits of a given number\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "s = 0\n",
+ "n = int(raw_input(\"Enter a Number : \"))\n",
+ "\n",
+ "#Calculation & Result\n",
+ "\n",
+ "sys.stdout.write(\"\\nSum of Digits till a single digit\\n %d\"%(n))\n",
+ "\n",
+ "while n != 0:\n",
+ " s = s + n%10\n",
+ " n = n/10\n",
+ " if n == 0 and s > 9:\n",
+ " sys.stdout.write(\"\\n %2d\"%(s))\n",
+ " n = s\n",
+ " s = 0\n",
+ "\n",
+ "sys.stdout.write(\"\\n %2d\"%(s))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number : 4687\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Sum of Digits till a single digit\n",
+ " 4687\n",
+ " 25\n",
+ " 7"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.35, Page number: 133<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display octal numbers in binary. Attach a parity bit with \"1\"\n",
+ "#if number of 1s are even otherwise \"0\".\n",
+ "# OR\n",
+ "#Generate odd parity to octal numbers 0 to 7. Express each number in binary\n",
+ "#and attach the parity bit\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "c = 0\n",
+ "j = 12\n",
+ "k = 2\n",
+ "\n",
+ "#Calculation & Result\n",
+ "\n",
+ "sys.stdout.write(\"\\nBinary Bits Parity Bits\")\n",
+ "sys.stdout.write(\"\\n============= ==============\\n\")\n",
+ "\n",
+ "for x in range(0,8):\n",
+ " k += 1\n",
+ " j = 12\n",
+ " y = x\n",
+ " for a in range(0,3):\n",
+ " b = y % 2\n",
+ " #gotoxy\n",
+ " sys.stdout.write(\"\\t%d\"%(b))\n",
+ " y = y / 2\n",
+ " if b == 1:\n",
+ " c += 1\n",
+ " if c%2 == 0:\n",
+ " #gotoxy\n",
+ " sys.stdout.write(\"\\t1\")\n",
+ " else:\n",
+ " #gotosy\n",
+ " sys.stdout.write(\"\\t0\\n\")\n",
+ " c = 0\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Binary Bits Parity Bits\n",
+ "============= ==============\n",
+ "\t0\t0\t0\t1\t1\t0\t0\t0\n",
+ "\t0\t1\t0\t0\n",
+ "\t1\t1\t0\t1\t0\t0\t1\t0\n",
+ "\t1\t0\t1\t1\t0\t1\t1\t1\t1\t1\t1\t0\n"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.36, Page number: 135<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Evaluate the series x - x^3/3! + x^5/5! - .... x^n/n!\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "c = 3.0\n",
+ "f = 1.0\n",
+ "\n",
+ "#Give x as float value and n as int value\n",
+ "\n",
+ "x = float(raw_input(\"Enter x & n : \")) #use commas to input values\n",
+ "n = int(raw_input(\"Enter x & n : \")) \n",
+ "\n",
+ "sum1 = x #since sum is built-in function in python,\n",
+ " #sum1 is used instead of sum\n",
+ "\n",
+ "#Calculation & Result\n",
+ "\n",
+ "for i in range(3,n+1,2):\n",
+ " f = 1\n",
+ " if c%2 != 0:\n",
+ " for l in range(1,i+1):\n",
+ " f = f * l\n",
+ " sum1 = sum1 - pow(x,i)/ f\n",
+ " else:\n",
+ " for l in range(1,i+1):\n",
+ " f = f * l\n",
+ " sum1 = sum1 + pow(x,i)/ f\n",
+ " c += 1\n",
+ "\n",
+ "sys.stdout.write(\"\\nSum of series Numbers : %f\"%(sum1))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter x & n : 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter x & n : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Sum of series Numbers : 0.933333"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.37, Page number: 136<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Evaluate the series x + x^2/2! + x^4/4! + .... x^n/n!\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "f = 1.0\n",
+ "\n",
+ "#Give x as float value and y as int value\n",
+ "\n",
+ "x = float(raw_input(\"Enter x & y : \")) #use commas to input values\n",
+ "y = int(raw_input(\"Enter x & y : \")) \n",
+ "\n",
+ "sum1 = x #since sum is built-in function in python,\n",
+ " #sum1 is used instead of sum\n",
+ "\n",
+ "#Calculation & Result\n",
+ "\n",
+ "for i in range(2,y+1,2):\n",
+ " f = 1\n",
+ " for l in range(1,i+1):\n",
+ " f = f * l\n",
+ " sum1 = sum1 + pow(x,i)/ f\n",
+ "\n",
+ "sys.stdout.write(\"\\nSum of Series : %f\"%(sum1))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter x & y : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter x & y : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Sum of Series : 22.666667"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.38, Page number: 136<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Evaluate the series 1 - 1/1! + 2/2! - 3/3! .... n/n!\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "c = 3\n",
+ "\n",
+ "n = int(raw_input(\"Enter value of n : \"))\n",
+ "\n",
+ "sum1 = 1.0 #since sum is built-in function in python,\n",
+ " #sum1 is used instead of sum\n",
+ "\n",
+ "#Calculation\n",
+ "\n",
+ "for i in range(1,n+1):\n",
+ " f = 1.0\n",
+ " if c%2 != 0:\n",
+ " for l in range(1,i+1):\n",
+ " f = f * l\n",
+ " k = float(i / f)\n",
+ " sum1 = sum1 - k\n",
+ " else:\n",
+ " for l in range(1,i+1):\n",
+ " f = f * l\n",
+ " sum1 = sum1 + float(i/f)\n",
+ " c += 1\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nSum of series Numbers : %f\"%(sum1))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value of n : 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Sum of series Numbers : 0.500000"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.39, Page number: 137<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the Armstrong numbers in three digits from 100 to 999. If sum of cubes of each digits\n",
+ "#of the number is equal to number itself, then the number is called as an Armstrong number.\n",
+ "#(For eg. 153 = 1^3 + 5^3 + 3^3 = 153)\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "cube = 0\n",
+ "\n",
+ "sys.stdout.write(\"The Following Numbers are Armstrong numbers.\")\n",
+ "\n",
+ "#Calculation & Result\n",
+ "\n",
+ "for k in range(100,999+1):\n",
+ " cube = 0\n",
+ " x = 1\n",
+ " d = 3\n",
+ " n = k\n",
+ " while x <= d:\n",
+ " i = n % 10\n",
+ " cube = cube + pow(i,3)\n",
+ " n = n / 10\n",
+ " x += 1\n",
+ " if cube == k:\n",
+ " sys.stdout.write(\"\\n\\t%d\"%(k))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Following Numbers are Armstrong numbers.\n",
+ "\t153\n",
+ "\t370\n",
+ "\t371\n",
+ "\t407"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.40, Page number: 138<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Example 6.40.py\n",
+ "#Program to display the stars as shown below\n",
+ "#*\n",
+ "#**\n",
+ "#***\n",
+ "#****\n",
+ "#*****\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "\n",
+ "x = int(raw_input(\"How many lines stars (*) should be printed ? \"))\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "for i in range(1,x+1):\n",
+ " for j in range(1,i+1):\n",
+ " sys.stdout.write(\"*\")\n",
+ " sys.stdout.write(\"\\n\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many lines stars (*) should be printed ? 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "*\n",
+ "**\n",
+ "***\n",
+ "****\n",
+ "*****\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.41, Page number: 139<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Generate the given pattern\n",
+ "#6 5 4 3 2 1 0\n",
+ "#5 4 3 2 1 0\n",
+ "#4 3 2 1 0\n",
+ "#3 2 1 0\n",
+ "#2 1 0\n",
+ "#1 0\n",
+ "#0\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "i = int(raw_input(\"Enter a Number : \"))\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "while i >= 0:\n",
+ " c = i\n",
+ " sys.stdout.write(\"\\n\")\n",
+ " while True:\n",
+ " sys.stdout.write(\"%3d\"%(c))\n",
+ " if c == 0:\n",
+ " break\n",
+ " c -= 1\n",
+ " i -= 1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number : 6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " 6 5 4 3 2 1 0\n",
+ " 5 4 3 2 1 0\n",
+ " 4 3 2 1 0\n",
+ " 3 2 1 0\n",
+ " 2 1 0\n",
+ " 1 0\n",
+ " 0"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.42, Page number: 140<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the series of numbers as given below\n",
+ "#1\n",
+ "#1 2\n",
+ "#1 2 3\n",
+ "#1 2 3 4\n",
+ "\n",
+ "#4 3 2 1\n",
+ "#3 2 1\n",
+ "#2 1\n",
+ "#1\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = int(raw_input(\"Enter value of x : \"))\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "for j in range(1,x+1):\n",
+ " for i in range(1,j+1):\n",
+ " sys.stdout.write(\"%3d\"%(i))\n",
+ " sys.stdout.write(\"\\n\")\n",
+ "\n",
+ "sys.stdout.write(\"\\n\")\n",
+ "\n",
+ "for j in range(x,0,-1):\n",
+ " for i in range(j,0,-1):\n",
+ " sys.stdout.write(\"%3d\"%(i))\n",
+ " sys.stdout.write(\"\\n\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value of x : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1\n",
+ " 1 2\n",
+ " 1 2 3\n",
+ " 1 2 3 4\n",
+ "\n",
+ " 4 3 2 1\n",
+ " 3 2 1\n",
+ " 2 1\n",
+ " 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.43, Page number: 142<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to display the series of numbers as given below\n",
+ "#1\n",
+ "#2 1\n",
+ "#3 2 1\n",
+ "#4 3 2 1\n",
+ "\n",
+ "#4 3 2 1\n",
+ "#3 2 1\n",
+ "#2 1\n",
+ "#1\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = int(raw_input(\"Enter value of x : \"))\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "for j in range(1,x+1):\n",
+ " for i in range(j,0,-1):\n",
+ " sys.stdout.write(\"%3d\"%(i))\n",
+ " sys.stdout.write(\"\\n\")\n",
+ "\n",
+ "sys.stdout.write(\"\\n\")\n",
+ "\n",
+ "for j in range(x,0,-1):\n",
+ " for i in range(j,0,-1):\n",
+ " sys.stdout.write(\"%3d\"%(i))\n",
+ " sys.stdout.write(\"\\n\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value of x : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1\n",
+ " 2 1\n",
+ " 3 2 1\n",
+ " 4 3 2 1\n",
+ "\n",
+ " 4 3 2 1\n",
+ " 3 2 1\n",
+ " 2 1\n",
+ " 1\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.44, Page number: 143<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Generate the pyramid structure using numberical\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = int(raw_input(\"Enter a number : \"))\n",
+ "\n",
+ "#Result\n",
+ "\n",
+ "for j in range(0,x+1):\n",
+ " for i in range(0-j,j+1):\n",
+ " sys.stdout.write(\"%3d\"%(abs(i)))\n",
+ " sys.stdout.write(\"\\n\")\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number : 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 0\n",
+ " 1 0 1\n",
+ " 2 1 0 1 2\n",
+ " 3 2 1 0 1 2 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.45, Page number: 143<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Convert binary to decimal number\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = [1 for i in range(1,5+1)] #defines the array x and initializes the elements with 0\n",
+ "y = x[0]\n",
+ "\n",
+ "sys.stdout.write(\"\\nValues in different Iterations\")\n",
+ "sys.stdout.write(\"\\n====== == ========= ==========\\n\")\n",
+ "\n",
+ "for i in range(0,4):\n",
+ " y = y * 2 + x[i+1]\n",
+ " sys.stdout.write(\"[%d] %d\\t\"%(i+1,y))\n",
+ "\n",
+ "sys.stdout.write(\"\\nEquivalent of [\")\n",
+ "\n",
+ "for i in range(0,5):\n",
+ " sys.stdout.write(\"%d\"%(x[i]))\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"] in Decimal Number is : \")\n",
+ "sys.stdout.write(\"%d\\t\"%(y))\n",
+ "\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Values in different Iterations\n",
+ "====== == ========= ==========\n",
+ "[1] 3\t[2] 7\t[3] 15\t[4] 31\t\n",
+ "Equivalent of [11111] in Decimal Number is : 31\t"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.46, Page number: 144<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Program to add a parity bit with four binary bits such that the total\n",
+ "#number of one's should be even\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "bit = [0 for i in range(0,5)] #defines the array bit and initializes the elements with 0\n",
+ "c = 0\n",
+ "\n",
+ "sys.stdout.write(\"\\nEnter four bits : \")\n",
+ "\n",
+ "for j in range(0,4):\n",
+ " x = int(raw_input(\" \"))\n",
+ " bit[j] = x\n",
+ " if bit[j] == 1:\n",
+ " c += 1\n",
+ " else:\n",
+ " if bit[j] > 1 or bit[j] < 0:\n",
+ " j -= 1\n",
+ " continue\n",
+ " if c%2 == 0:\n",
+ " bit[j] = 0\n",
+ " else:\n",
+ " bit[j] = 1 \n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nMessage bits together with parity bit : \")\n",
+ "for j in range(0,5):\n",
+ " sys.stdout.write(\"%d\"%(bit[j]))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter four bits : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Message bits together with parity bit : 11110"
+ ]
+ }
+ ],
+ "prompt_number": 55
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.47, Page number: 145<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Convert binary to decimal number. Enter the binary bits by using for loop\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "\n",
+ "z = [0 for i in range(0,10)] #defines the array z and initializes the elements with 0\n",
+ "\n",
+ "sys.stdout.write(\"Enter the number of bits :- \")\n",
+ "b = int(raw_input(\"\"))\n",
+ "\n",
+ "sys.stdout.write(\"\\nEnter the binary bits : \")\n",
+ "for i in range(0,b):\n",
+ " z[i] = int(raw_input(\"\"))\n",
+ "\n",
+ "a = z[0]\n",
+ "\n",
+ "for i in range(0,b-1):\n",
+ " a = a * 2 + z[i+1]\n",
+ " sys.stdout.write(\"\\n%d\"%(a))\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nDecimal Number is : %d \"%(a))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of bits :- "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter the binary bits : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "2\n",
+ "4\n",
+ "8\n",
+ "17\n",
+ "Decimal Number is : 17 "
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.48, Page number: 147<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Verify the truth table of AND gate. Assume AND gate has two\n",
+ "#input bits A & B and one output bit C.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "\n",
+ "a = [0 for i in range(0,4)] #defines the array a,b & c and initializes the elements with 0\n",
+ "b = [0 for i in range(0,4)]\n",
+ "c = [0 for i in range(0,4)]\n",
+ "\n",
+ "sys.stdout.write(\"\\nEnter Four Bits : \")\n",
+ "for x in range(0,4):\n",
+ " a[x] = int(raw_input(\"\"))\n",
+ " \n",
+ " if a[x] > 1 or a[x] < 0:\n",
+ " x -= 1\n",
+ " continue\n",
+ "\n",
+ "sys.stdout.write(\"\\nEnter Four Bits : \")\n",
+ "for x in range(0,4):\n",
+ " b[x] = int(raw_input(\"\"))\n",
+ " \n",
+ " if b[x] > 1 or b[x] < 0:\n",
+ " x -= 1\n",
+ " continue\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nA B C\")\n",
+ "for x in range(0,4):\n",
+ " if a[x] == 1 and b[x] == 1:\n",
+ " c[x] = 1\n",
+ " else:\n",
+ " c[x] = 0\n",
+ " sys.stdout.write(\"\\n%d %d %d\"%(a[x],b[x],c[x]))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Four Bits : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Four Bits : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "A B C\n",
+ "1 1 1\n",
+ "0 0 0\n",
+ "1 0 0\n",
+ "0 1 0"
+ ]
+ }
+ ],
+ "prompt_number": 57
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.49, Page number: 148<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Verify the truth table of OR gate. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "\n",
+ "a = [0 for i in range(0,4)] #defines the array a,b & c and initializes the elements with 0\n",
+ "b = [0 for i in range(0,4)]\n",
+ "c = [0 for i in range(0,4)]\n",
+ "\n",
+ "sys.stdout.write(\"\\nEnter Four Bits : \")\n",
+ "for x in range(0,4):\n",
+ " a[x] = int(raw_input(\"\"))\n",
+ " \n",
+ " if a[x] > 1 or a[x] < 0:\n",
+ " x -= 1\n",
+ " continue\n",
+ "\n",
+ "sys.stdout.write(\"\\nEnter Four Bits : \")\n",
+ "for x in range(0,4):\n",
+ " b[x] = int(raw_input(\"\"))\n",
+ " \n",
+ " if b[x] > 1 or b[x] < 0:\n",
+ " x -= 1\n",
+ " continue\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nA B C\")\n",
+ "for x in range(0,4):\n",
+ " if a[x] == 0 and b[x] == 0:\n",
+ " c[x] = 0\n",
+ " else:\n",
+ " c[x] = 1\n",
+ " sys.stdout.write(\"\\n%d %d %d\"%(a[x],b[x],c[x]))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Four Bits : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Four Bits : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "A B C\n",
+ "1 1 1\n",
+ "1 0 1\n",
+ "1 0 1\n",
+ "0 0 0"
+ ]
+ }
+ ],
+ "prompt_number": 58
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.50, Page number: 149<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Verify the truth table of EX-OR gate. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "\n",
+ "a = [0 for i in range(0,4)] #defines the array a,b & c and initializes the elements with 0\n",
+ "b = [0 for i in range(0,4)]\n",
+ "c = [0 for i in range(0,4)]\n",
+ "\n",
+ "sys.stdout.write(\"\\nEnter Four Bits : \")\n",
+ "for x in range(0,4):\n",
+ " a[x] = int(raw_input(\"\"))\n",
+ " \n",
+ " if a[x] > 1 or a[x] < 0:\n",
+ " x -= 1\n",
+ " continue\n",
+ "\n",
+ "sys.stdout.write(\"\\nEnter Four Bits : \")\n",
+ "for x in range(0,4):\n",
+ " b[x] = int(raw_input(\"\"))\n",
+ " \n",
+ " if b[x] > 1 or b[x] < 0:\n",
+ " x -= 1\n",
+ " continue\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nA B C\")\n",
+ "for x in range(0,4):\n",
+ " if a[x] == 0 and b[x] == 1:\n",
+ " c[x] = 1\n",
+ " else:\n",
+ " if a[x] == 1 and b[x] == 0:\n",
+ " c[x] = 1\n",
+ " else:\n",
+ " c[x] = 0\n",
+ " sys.stdout.write(\"\\n%d %d %d\"%(a[x],b[x],c[x]))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Four Bits : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Four Bits : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "A B C\n",
+ "1 1 0\n",
+ "1 0 1\n",
+ "1 0 1\n",
+ "0 0 0"
+ ]
+ }
+ ],
+ "prompt_number": 59
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.51, Page number: 151<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find the Hamming code for the entered binary code. Assume the binary code of four bits in length.\n",
+ "#The hamming code should be seven bits.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "\n",
+ "#defines the array a,b & c and initializes the elements with 0\n",
+ "b = [0 for i in range(0,4)]\n",
+ "c = [0 for i in range(0,7)]\n",
+ "\n",
+ "sys.stdout.write(\"\\nRead the Binary Numbers : \")\n",
+ "for x in range(0,4):\n",
+ " b[x] = int(raw_input(\"\"))\n",
+ "\n",
+ "#Piece copy operation\n",
+ "c[0] = b[0]\n",
+ "c[1] = b[1]\n",
+ "c[2] = b[2]\n",
+ "c[4] = b[3]\n",
+ "\n",
+ "sys.stdout.write(\"\\nBefore xOR operation : \")\n",
+ " \n",
+ "for x in range(0,7):\n",
+ " sys.stdout.write(\"%3d\"%(c[x]))\n",
+ "\n",
+ "c[6] = c[0] ^ c[2] ^ c[4]\n",
+ "c[5] = c[0] ^ c[1] ^ c[4]\n",
+ "c[3] = c[0] ^ c[1] ^ c[2]\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nHamming code after XOR operation : \")\n",
+ "for x in range(0,7):\n",
+ " sys.stdout.write(\"%3d\"%(c[x]))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Read the Binary Numbers : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Before xOR operation : 1 0 1 0 0 0 0\n",
+ "Hamming code after XOR operation : 1 0 1 0 0 1 0"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.52, Page number: 152<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the results of students appear in six subjects. The result declared should be as per the \n",
+ "#following table.\n",
+ "#TOTAL MARKS RESULT\n",
+ "#>= 420 Distinction\n",
+ "#>= 360 First Division\n",
+ "#>= 240 Second Division\n",
+ "#Otherwise Fail\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "DISTINCTION = 420\n",
+ "FIRST = 360\n",
+ "SECOND = 240\n",
+ "\n",
+ "number = int(raw_input(\"Enter number of Students : \"))\n",
+ "\n",
+ "#Read the values and calculation\n",
+ "for i in range(1,number+1):\n",
+ " roll_no = int(raw_input(\"Enter Roll Number : \"))\n",
+ " total = 0\n",
+ " sys.stdout.write(\"\\nEnter Marks of 6 Subjects for Roll no %d : \"%(roll_no))\n",
+ " for j in range(1,6+1):\n",
+ " marks = int(raw_input(\"\"))\n",
+ " total = total + marks\n",
+ " sys.stdout.write(\"\\nTOTAL MARKS = %d\"%(total))\n",
+ " if total >= DISTINCTION:\n",
+ " sys.stdout.write(\"\\n(Distinction)\\n\\n\")\n",
+ " else:\n",
+ " if total >= FIRST:\n",
+ " sys.stdout.write(\"\\n(First Division)\\n\\n\")\n",
+ " else:\n",
+ " if total >= SECOND:\n",
+ " sys.stdout.write(\"\\n(Second Division)\\n\\n\")\n",
+ " else:\n",
+ " sys.stdout.write(\"\\n(***Fail***)\")\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter number of Students : 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Roll Number : 1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Marks of 6 Subjects for Roll no 1 : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "42\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "52\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "62\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "72\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "82\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "92\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "TOTAL MARKS = 402\n",
+ "(First Division)\n",
+ "\n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.53, Page number: 154<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print the string \"You have learnt C program\" 9 times using while loop\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = 1\n",
+ "\n",
+ "#Result\n",
+ "while x < 10:\n",
+ " sys.stdout.write(\"\\nYou have learnt C program\")\n",
+ " x += 1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "You have learnt C program\n",
+ "You have learnt C program\n",
+ "You have learnt C program\n",
+ "You have learnt C program\n",
+ "You have learnt C program\n",
+ "You have learnt C program\n",
+ "You have learnt C program\n",
+ "You have learnt C program\n",
+ "You have learnt C program"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.54, Page number: 155<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Add 10 consecutive numbers starting from 1 using while loop.\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = 1\n",
+ "sum1 = 0 #since sum is a builtin function in python, sum1 is used instead of sum\n",
+ "\n",
+ "#Calculation\n",
+ "while a <= 10:\n",
+ " sys.stdout.write(\"%3d\"%(a))\n",
+ " sum1 = sum1 + a\n",
+ " a += 1\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nSum of 10 numbers : %d\"%(sum1))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1 2 3 4 5 6 7 8 9 10\n",
+ "Sum of 10 numbers : 55"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.55, Page number: 155<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate factorial of a given number using while loop.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "fact = 1\n",
+ "\n",
+ "a = int(raw_input(\"Enter The Number : \"))\n",
+ "\n",
+ "#Calculation\n",
+ "while a >= 1:\n",
+ " sys.stdout.write(\" %d * \"%(a))\n",
+ " fact = fact * a\n",
+ " a -= 1\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\" = %d\"%(fact))\n",
+ "sys.stdout.write(\"\\nFactorial of Given number is %d\"%(fact))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter The Number : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 5 * 4 * 3 * 2 * 1 * = 120\n",
+ "Factorial of Given number is 120"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.56, Page number: 156<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate factorial of a given number using while loop.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "fact = 1\n",
+ "b = 1\n",
+ "\n",
+ "a = int(raw_input(\"Enter The Number : \"))\n",
+ "\n",
+ "#Calculation\n",
+ "while b <= a:\n",
+ " sys.stdout.write(\" %d * \"%(b))\n",
+ " fact = fact * b\n",
+ " b += 1\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\" = %d\"%(fact))\n",
+ "sys.stdout.write(\"\\nFactorial of %d is %d\"%(b-1,fact))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter The Number : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1 * 2 * 3 * 4 * = 24\n",
+ "Factorial of 4 is 24"
+ ]
+ }
+ ],
+ "prompt_number": 62
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.57, Page number: 157<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Convert decimal number to binary number\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "y = 40\n",
+ "rev = [0 for i in range(1,10)]\n",
+ "c = 1\n",
+ "\n",
+ "x = int(raw_input(\"Enter a Number : \"))\n",
+ "\n",
+ "#Calculation & Result\n",
+ "#since gotoxy() function is not available in python, the reminders are stored in an array and displayed in reverse order\n",
+ "\n",
+ "sys.stdout.write(\"\\nBinary Number : \")\n",
+ "while x != 0:\n",
+ " rev[c] = x % 2\n",
+ " x = x / 2\n",
+ " c += 1\n",
+ "\n",
+ "for i in range(c-1,0,-1):\n",
+ " sys.stdout.write(\"%d\"%(rev[i]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number : 25\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Binary Number : 11001"
+ ]
+ }
+ ],
+ "prompt_number": 63
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.58, Page number: 157<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Convert decimal number to user defined number system. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "y = 35\n",
+ "rev = 0\n",
+ "c = 1\n",
+ "rev = [0 for i in range(1,10)]\n",
+ "\n",
+ "m = int(raw_input(\"Enter the Decimal Number : \"))\n",
+ "b = int(raw_input(\"Enter base of number system : \"))\n",
+ "\n",
+ "#Calculation & Result\n",
+ "sys.stdout.write(\"\\nThe Number Obtained : \")\n",
+ "\n",
+ "#since gotoxy() function is not available in python, the reminders are stored in an array and displayed in reverse order\n",
+ "while m != 0:\n",
+ " rev[c] = m % b\n",
+ " c += 1\n",
+ " m = m / b\n",
+ "\n",
+ "for i in range(c-1,0,-1):\n",
+ " sys.stdout.write(\"%d\"%rev[i])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the Decimal Number : 50\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter base of number system : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The Number Obtained : 200"
+ ]
+ }
+ ],
+ "prompt_number": 64
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.59, Page number: 158<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Convert binary number to equivalent decimal number\n",
+ "\n",
+ "\n",
+ "#Variable Initialization\n",
+ "y = 0\n",
+ "p = 0\n",
+ "\n",
+ "n = int(raw_input(\"Enter a Binary Number : \"))\n",
+ "\n",
+ "#Calculation\n",
+ "while n != 0:\n",
+ " x = n % 10\n",
+ " if x > 1 or x < 0:\n",
+ " sys.stdout.write(\"\\nInvalid Digit\")\n",
+ " break\n",
+ " else:\n",
+ " y = y + x * pow(2,p)\n",
+ " n = n / 10\n",
+ " p += 1\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nEquivalent Decimal Number is %d.\"%(y))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Binary Number : 1111\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Equivalent Decimal Number is 15."
+ ]
+ }
+ ],
+ "prompt_number": 66
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.60, Page number: 159<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read a positive integer number 'n' and generate the numbers in the following way.\n",
+ "#If entered number is 5 the output will be as follows.\n",
+ "#OUTPUT : 5 4 3 2 1 0 1 2 3 4 5\n",
+ "\n",
+ "\n",
+ "#Variable Initialization\n",
+ "k = 0\n",
+ "\n",
+ "n = int(raw_input(\"Enter a Number : \"))\n",
+ "\n",
+ "#Calculation & Result\n",
+ "i = n + 1\n",
+ "k = k - n\n",
+ "\n",
+ "while i != k:\n",
+ " sys.stdout.write(\"%3d\"%(abs(k)))\n",
+ " k += 1\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number : 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 3 2 1 0 1 2 3"
+ ]
+ }
+ ],
+ "prompt_number": 67
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.61, Page number: 160<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Enter a number through keyboard and find the sum of the digits.\n",
+ "\n",
+ "\n",
+ "#Variable Initialization\n",
+ "k = 1\n",
+ "sum1 = 0 #since sum is a built-in function in python, sum1 used instead of sum\n",
+ "\n",
+ "n = int(raw_input(\"Enter a Number : \"))\n",
+ "\n",
+ "#Calculation \n",
+ "while n != 0:\n",
+ " k = n % 10\n",
+ " sum1 = sum1 + k\n",
+ " k = n / 10\n",
+ " n = k\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Sum of digits %d\"%(sum1))\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number : 842\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sum of digits 14"
+ ]
+ }
+ ],
+ "prompt_number": 68
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.62, Page number: 161<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Enter few numbers and count the positive and negative numbers together\n",
+ "#with their sums. When 0 is entered program should be terminated.\n",
+ "\n",
+ "\n",
+ "#Variable Initialization\n",
+ "p = 0\n",
+ "n = 0\n",
+ "j = 1\n",
+ "s = 0\n",
+ "ns = 0\n",
+ "\n",
+ "#Calculation \n",
+ "sys.stdout.write(\"Enter Numbers (0) Exit : \")\n",
+ "while j != 0:\n",
+ " j = int(raw_input(\"\"))\n",
+ " if j > 0:\n",
+ " p += 1\n",
+ " s = s + j\n",
+ " else:\n",
+ " if j < 0:\n",
+ " n += 1\n",
+ " ns = ns + j\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nTotal Positive Numbers : %d\"%(p))\n",
+ "sys.stdout.write(\"\\nTotal Negative Numbers : %d\"%(n))\n",
+ "sys.stdout.write(\"\\nSum of Positive Numbers : %d\"%(s))\n",
+ "sys.stdout.write(\"\\nSum of Negative Numbers : %d\"%(ns))\n",
+ "\n",
+ "\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Numbers (0) Exit : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "-5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "-4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "-8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Total Positive Numbers : 5\n",
+ "Total Negative Numbers : 3\n",
+ "Sum of Positive Numbers : 15\n",
+ "Sum of Negative Numbers : -17"
+ ]
+ }
+ ],
+ "prompt_number": 69
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.63, Page number: 162<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find sum of odd and even numbers separately by sorting the given numbers into\n",
+ "#odd and even numbers\n",
+ "\n",
+ "#Variable Initialization\n",
+ "c = 1\n",
+ "odd = 0\n",
+ "even = 0\n",
+ "\n",
+ "a = int(raw_input(\"Enter a Number : \"))\n",
+ "\n",
+ "#Calculation & Result\n",
+ "sys.stdout.write(\"ODD EVEN\\n\")\n",
+ "while c <= a:\n",
+ " b = c % 2\n",
+ " while b == 0:\n",
+ " sys.stdout.write(\"\\t%d \"%(c))\n",
+ " even = even + c\n",
+ " b = 1\n",
+ " b = c % 2\n",
+ " while b != 0:\n",
+ " sys.stdout.write(\"\\n%d\"%(c))\n",
+ " odd = odd + c\n",
+ " b = 0\n",
+ " c += 1\n",
+ "\n",
+ "sys.stdout.write(\"\\n==============================\")\n",
+ "sys.stdout.write(\"\\n %d %d\"%(odd,even))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number : 10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "ODD EVEN\n",
+ "\n",
+ "1\t2 \n",
+ "3\t4 \n",
+ "5\t6 \n",
+ "7\t8 \n",
+ "9\t10 \n",
+ "==============================\n",
+ " 25 30"
+ ]
+ }
+ ],
+ "prompt_number": 70
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.64, Page number: 163<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print the entered number in reverse order.\n",
+ "\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = 1\n",
+ "\n",
+ "d = int(raw_input(\"Enter the number of digits : \"))\n",
+ "n = int(raw_input(\"Enter the number which is to be reversed : -\"))\n",
+ "\n",
+ "#Calculation & Result\n",
+ "sys.stdout.write(\"\\nThe Reversed Number is :-\")\n",
+ "\n",
+ "while x <= d:\n",
+ " i = n % 10\n",
+ " sys.stdout.write(\"%d\"%(i))\n",
+ " n = n / 10\n",
+ " x += 1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of digits : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number which is to be reversed : -5428\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The Reversed Number is :-8245"
+ ]
+ }
+ ],
+ "prompt_number": 71
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.65, Page number: 163<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Separate capitals, small, symbols and numbers from a statement\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "i = 0\n",
+ "c = 0\n",
+ "s = 0\n",
+ "h = 0\n",
+ "n = 0\n",
+ "\n",
+ "#Array declaration\n",
+ "scan = [0 for i in range(0,40)]\n",
+ "cap = [0 for i in range(0,20)]\n",
+ "small = [0 for i in range(0,20)]\n",
+ "num = [0 for i in range(0,20)]\n",
+ "oth = [0 for i in range(0,20)]\n",
+ "\n",
+ "scan = raw_input(\"Enter Text Here : \")\n",
+ "\n",
+ "i = 0\n",
+ "\n",
+ "while i < len(scan): #There is no null termination character in python.\n",
+ " if scan[i] >= '0' and scan[i] <= '9':\n",
+ " n += 1\n",
+ " num[n] = scan[i]\n",
+ " else:\n",
+ " if scan[i] >= 'A' and scan[i] <= 'Z':\n",
+ " c += 1\n",
+ " cap[c] = scan[i]\n",
+ " else:\n",
+ " if scan[i] >= 'a' and scan[i] <= 'z':\n",
+ " s += 1\n",
+ " small[s] = scan[i]\n",
+ " else:\n",
+ " h += 1\n",
+ " oth[h] = scan[i]\n",
+ " \n",
+ " i += 1\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nCapital Letters : [\")\n",
+ "for i in range(0,20):\n",
+ " sys.stdout.write(\"%c\"%cap[i])\n",
+ "\n",
+ "sys.stdout.write(\"]\\nSmall Letters : [\")\n",
+ "for i in range(0,20):\n",
+ " sys.stdout.write(\"%c\"%(small[i]))\n",
+ " \n",
+ "sys.stdout.write(\"]\\nNumeric Letters : [\")\n",
+ "for i in range(0,20):\n",
+ " sys.stdout.write(\"%c\"%(num[i]))\n",
+ "\n",
+ "sys.stdout.write(\"]\\nOther Letters : [\")\n",
+ "for i in range(0,20):\n",
+ " sys.stdout.write(\"%c\"%(oth[i]))\n",
+ "sys.stdout.write(\"]\")\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Text Here : HAVE A NICE DAY, contact me on 51606.\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Capital Letters : [\u0000HAVEANICEDAY\u0000\u0000\u0000\u0000\u0000\u0000\u0000]\n",
+ "Small Letters : [\u0000contactmeon\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000]\n",
+ "Numeric Letters : [\u000051606\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000]\n",
+ "Other Letters : [\u0000 , .\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000]"
+ ]
+ }
+ ],
+ "prompt_number": 72
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.66, Page number: 165<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Sort numbers, upper and lower case alphabets\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "i = 48\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\" NUMBERS\\n\")\n",
+ "while i <= 57:\n",
+ " sys.stdout.write(\"%2c\"%(i))\n",
+ " i += 1\n",
+ "\n",
+ "i += 7\n",
+ "\n",
+ "sys.stdout.write(\"\\n CAPITAL ALPHABETS\\n\")\n",
+ "while i <= 90:\n",
+ " sys.stdout.write(\"%2c\"%(i))\n",
+ " i += 1\n",
+ " \n",
+ "i += 6\n",
+ "\n",
+ "sys.stdout.write(\"\\n SMALL ALPHABETS\\n\")\n",
+ "while i <= 122:\n",
+ " sys.stdout.write(\"%2c\"%(i))\n",
+ " i += 1\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " NUMBERS\n",
+ " 0 1 2 3 4 5 6 7 8 9\n",
+ " CAPITAL ALPHABETS\n",
+ " A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\n",
+ " SMALL ALPHABETS\n",
+ " a b c d e f g h i j k l m n o p q r s t u v w x y z"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.67, Page number: 165<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Sort numbers, upper and lower case alphabets\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "i = 48\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Numbers : \")\n",
+ "while i < 124:\n",
+ " if i < 58:\n",
+ " sys.stdout.write(\"%2c\"%(i))\n",
+ " else:\n",
+ " if i == 58:\n",
+ " sys.stdout.write(\"\\nCapital Letters : \")\n",
+ " i += 7\n",
+ " if i > 64 and i < 91:\n",
+ " sys.stdout.write(\"%2c\"%(i))\n",
+ " if i == 90:\n",
+ " sys.stdout.write(\"\\nSmall Letters : \")\n",
+ " i += 7\n",
+ " if i > 96 and i < 123:\n",
+ " sys.stdout.write(\"%2c\"%(i))\n",
+ " i += 1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Numbers : 0 1 2 3 4 5 6 7 8 9\n",
+ "Capital Letters : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\n",
+ "Small Letters : a b c d e f g h i j k l m n o p q r s t u v w x y z"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.68, Page number: 167<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display all ASCII numbers and their equivalent character, numbers and symbols using while loop. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "i = 64\n",
+ "c = 'Y'\n",
+ "\n",
+ "#Result\n",
+ "while c == 'Y':\n",
+ " sys.stdout.write(\"\\t%c (%d)\"%(i,i))\n",
+ " i += 1\n",
+ " sys.stdout.write(\"\\nPrint (Y/N)\")\n",
+ " c = raw_input(\"\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t@ (64)\n",
+ "Print (Y/N)\tA (65)"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Print (Y/N)\tB (66)"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Print (Y/N)\tC (67)"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Print (Y/N)"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.69, Page number: 168<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Convert entered character into its opposite case. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\n*Enter 'E' to exit\")\n",
+ "sys.stdout.write(\"\\n*Enter only characters\")\n",
+ "\n",
+ "while c != 'E':\n",
+ " sys.stdout.write(\"\\nEnter a character : \")\n",
+ " c = raw_input(\"Enter a character :\")\n",
+ " if c == c.upper():\n",
+ " c = ord(c)\n",
+ " sys.stdout.write(\"\\tIt's Lower Case : %c\"%(chr(c+32)))\n",
+ " else:\n",
+ " c = ord(c)\n",
+ " sys.stdout.write(\"\\tIt's Upper Case : %s\"%(chr(c-32)))\n",
+ " c = chr(c)"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "*Enter 'E' to exit\n",
+ "*Enter only characters\n",
+ "Enter a character : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a character :s\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\tIt's Upper Case : S\n",
+ "Enter a character : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a character :A\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\tIt's Lower Case : a\n",
+ "Enter a character : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a character :E\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\tIt's Lower Case : e"
+ ]
+ }
+ ],
+ "prompt_number": 73
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.70, Page number: 169<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print numbers after each iteration and messages after termination of each loop using 3 nested while loop.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "i = 1\n",
+ "j = 1\n",
+ "k = 1\n",
+ "\n",
+ "#Result\n",
+ "while i < 4:\n",
+ " while j < 3:\n",
+ " while k < 2:\n",
+ " sys.stdout.write(\"\\n\\ni = %d j = %d k = %d\"%(i,j,k))\n",
+ " k += 1\n",
+ " sys.stdout.write(\"\\nInner Loop (k) Completed.\")\n",
+ " k = 1\n",
+ " j += 1\n",
+ " sys.stdout.write(\"\\nMiddle Loop (j) Completed.\")\n",
+ " j = 1\n",
+ " i += 1\n",
+ "sys.stdout.write(\"\\nOuter Loop (i) Completed.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "i = 1 j = 1 k = 1\n",
+ "Inner Loop (k) Completed.\n",
+ "\n",
+ "i = 1 j = 2 k = 1\n",
+ "Inner Loop (k) Completed.\n",
+ "Middle Loop (j) Completed.\n",
+ "\n",
+ "i = 2 j = 1 k = 1\n",
+ "Inner Loop (k) Completed.\n",
+ "\n",
+ "i = 2 j = 2 k = 1\n",
+ "Inner Loop (k) Completed.\n",
+ "Middle Loop (j) Completed.\n",
+ "\n",
+ "i = 3 j = 1 k = 1\n",
+ "Inner Loop (k) Completed.\n",
+ "\n",
+ "i = 3 j = 2 k = 1\n",
+ "Inner Loop (k) Completed.\n",
+ "Middle Loop (j) Completed.\n",
+ "Outer Loop (i) Completed."
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.71, Page number: 170<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display a message \"This is a program of do while loop\". for 5 times using do while loop.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "i = 1\n",
+ "\n",
+ "#Result\n",
+ "#There is no do..while loop in python\n",
+ "while i <= 5:\n",
+ " sys.stdout.write(\"\\nThis is a program of do while loop.\")\n",
+ " i += 1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "This is a program of do while loop.\n",
+ "This is a program of do while loop.\n",
+ "This is a program of do while loop.\n",
+ "This is a program of do while loop.\n",
+ "This is a program of do while loop."
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.72, Page number: 171<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Print the entered number in reverse order and find sum and product of digits using do-while loop. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "#since sum is a built-in function in python, sum1 is used instead of sum\n",
+ "x = 1\n",
+ "mul = 1\n",
+ "sum1 = 0\n",
+ "\n",
+ "d = int(raw_input(\"Enter the number of digits : -\"))\n",
+ "n = int(raw_input(\"Enter the number which is to be reversed :-\"))\n",
+ "\n",
+ "#Result\n",
+ "#There is no do..while loop in python\n",
+ "sys.stdout.write(\"\\nReveresed Number :- \")\n",
+ "while x <= d:\n",
+ " i = n % 10\n",
+ " sys.stdout.write(\"%d\"%(i))\n",
+ " sum1 = sum1 + i\n",
+ " mul = mul * i\n",
+ " n = n / 10\n",
+ " x += 1\n",
+ "\n",
+ "sys.stdout.write(\"\\nAddition of digits :- %4d\"%(sum1))\n",
+ "sys.stdout.write(\"\\nMultiplication of digits :- %4d\"%(mul))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number of digits : -4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the number which is to be reversed :-4321\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Reveresed Number :- 1234\n",
+ "Addition of digits :- 10\n",
+ "Multiplication of digits :- 24"
+ ]
+ }
+ ],
+ "prompt_number": 74
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.73, Page number: 172<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Attempt the question 6.72 by considering the false condition i.e. the value of i should\n",
+ "#be initially larger than the value in the while loop.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "i = 7\n",
+ "\n",
+ "#Result\n",
+ "#There is no do-while loop in python\n",
+ "sys.stdout.write(\"\\nThis is a program of do while loop\")\n",
+ "while i <= 5:\n",
+ " sys.stdout.write(\"\\nThis is a program of do while loop\")\n",
+ " i += 1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "This is a program of do while loop"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.74, Page number: 172<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find the cubes of 1 to 10 numbers using do-while loop.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = 1\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nPrint the numbers and their cubes\\n\")\n",
+ "while x <= 10:\n",
+ " y = pow(x,3)\n",
+ " sys.stdout.write(\"%4d %27d\\n\"%(x,y))\n",
+ " x += 1\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Print the numbers and their cubes\n",
+ " 1 1\n",
+ " 2 8\n",
+ " 3 27\n",
+ " 4 64\n",
+ " 5 125\n",
+ " 6 216\n",
+ " 7 343\n",
+ " 8 512\n",
+ " 9 729\n",
+ " 10 1000\n"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.75, Page number: 173<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Check whether the given number is prime or not.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = 2\n",
+ "n = int(raw_input(\"Enter The number for testing (prime or not) : \"))\n",
+ "\n",
+ "#Result\n",
+ "#There is no do-while loop in python\n",
+ "while x < n:\n",
+ " if n % x == 0:\n",
+ " sys.stdout.write(\"\\nThe number %d is not prime.\"%(n))\n",
+ " exit(0)\n",
+ " x += 1\n",
+ "\n",
+ "sys.stdout.write(\"\\nThe number %d is prime\"%(n))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter The number for testing (prime or not) : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The number 5 is prime"
+ ]
+ }
+ ],
+ "prompt_number": 75
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.76, Page number: 174<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Count the number of students having age less than 25 and weight less than 50Kg out of five.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "count = 0\n",
+ "x = 1\n",
+ "\n",
+ "sys.stdout.write(\"\\nEnter data of 5 boys\\n\")\n",
+ "sys.stdout.write(\"\\nAge Weight\\n\")\n",
+ "\n",
+ "#There is no do-while loop in python\n",
+ "while x <= 5:\n",
+ " age = int(raw_input(\"\"))\n",
+ " wt = float(raw_input(\"\"))\n",
+ " if age < 25 and wt < 50:\n",
+ " count += 1\n",
+ " x += 1\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nNumber of boys with age < 25\")\n",
+ "sys.stdout.write(\"and weight < 50Kg = %d\\n\"%(count))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter data of 5 boys\n",
+ "\n",
+ "Age Weight\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "24\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "51\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "45\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "25\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "51\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "35\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "24\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "54\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Number of boys with age < 25and weight < 50Kg = 2\n"
+ ]
+ }
+ ],
+ "prompt_number": 76
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.77, Page number: 175<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Compute the factorial of given number using do while loop.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "fact = 1\n",
+ "a = int(raw_input(\"Enter The Number : \"))\n",
+ "sys.stdout.write(\"\\nEnter The Number : %d\\n\"%(a))\n",
+ "\n",
+ "#Calculation\n",
+ "#There is no do-while loop in python\n",
+ "while a >= 1:\n",
+ " sys.stdout.write(\"%d * \"%(a))\n",
+ " fact = fact * a\n",
+ " a -= 1\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\" = %d\"%(fact))\n",
+ "sys.stdout.write(\"\\nFactorial of Given number is %d\"%(fact))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter The Number : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter The Number : 5\n",
+ "5 * 4 * 3 * 2 * 1 * = 120\n",
+ "Factorial of Given number is 120"
+ ]
+ }
+ ],
+ "prompt_number": 77
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.78, Page number: 175<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Evaluate the series such as 1+2+3+ .. i. Using do-while loop. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = 1\n",
+ "s = 0\n",
+ "\n",
+ "i = int(raw_input(\"Enter a number : \"))\n",
+ "\n",
+ "#Calculation and Result\n",
+ "#There is no do-while loop in python\n",
+ "while a <= i:\n",
+ " sys.stdout.write(\"%d + \"%(a))\n",
+ " s = s + a\n",
+ " a += 1\n",
+ " \n",
+ "sys.stdout.write(\"\\b\\bs = %d\"%(s))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number : 5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1 + 2 + 3 + 4 + 5 + \b\bs = 15"
+ ]
+ }
+ ],
+ "prompt_number": 78
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 6.79, Page number: 176<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Use while statement in do-while loop and print values from 1 to 5\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = 0\n",
+ "\n",
+ "#There is no do-while loop in python\n",
+ "while x < 5:\n",
+ " x += 1\n",
+ " sys.stdout.write(\"\\t%d\"%(x))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t1\t2\t3\t4\t5"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Programming_in_C_using_ANSI_C/KamthaneChapter7.ipynb b/Programming_in_C_using_ANSI_C/KamthaneChapter7.ipynb new file mode 100755 index 00000000..ac82414f --- /dev/null +++ b/Programming_in_C_using_ANSI_C/KamthaneChapter7.ipynb @@ -0,0 +1,3644 @@ +{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 7: Arrays<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.1, Page number: 186<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print size of various data types using arrays.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "i = [0 for i in range(0,10)]\n",
+ "c = ['0' for i in range(0,10)]\n",
+ "l = [sys.maxint+5 for i in range(0,10)]\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"The type 'int' requires %d Bytes\"%(sys.getsizeof(int)))\n",
+ "sys.stdout.write(\"\\nThe type 'char' requires %d Bytes\"%(sys.getsizeof(str)))\n",
+ "sys.stdout.write(\"\\nThe type 'long' requires %d Bytes\"%(sys.getsizeof(long)))\n",
+ "sys.stdout.write(\"\\n%d memory locations are reserved for ten 'int' elements\"%(sys.getsizeof(i)))\n",
+ "sys.stdout.write(\"\\n%d memory locations are reserved for ten 'int' elements\"%(sys.getsizeof(c)))\n",
+ "sys.stdout.write(\"\\n%d memory locations are reserved for ten 'int' elements\"%(sys.getsizeof(l)))\n",
+ "\n",
+ "#python data types are different from C"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The type 'int' requires 436 Bytes\n",
+ "The type 'char' requires 436 Bytes\n",
+ "The type 'long' requires 436 Bytes\n",
+ "12 memory locations are reserved for ten 'int' elements\n",
+ "100 memory locations are reserved for ten 'int' elements\n",
+ "100 memory locations are reserved for ten 'int' elements"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.2, Page number: 187<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display character array with their address.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "name = ['A','R','R','A','Y']\n",
+ "i = 0\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nCharacter Memory Location\\n\")\n",
+ "while i < len(name):\n",
+ " sys.stdout.write(\"\\n[%c]\\t\\t[%d]\"%(name[i],id(name[i])))\n",
+ " i += 1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Character Memory Location\n",
+ "\n",
+ "[A]\t\t[31712968]\n",
+ "[R]\t\t[31527832]\n",
+ "[R]\t\t[31527832]\n",
+ "[A]\t\t[31712968]\n",
+ "[Y]\t\t[31712248]"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.3, Page number: 188<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find sum of even and odd numbers from 1 to 10. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "sumo = 0\n",
+ "sume = 0\n",
+ "i = 0\n",
+ "a = -1\n",
+ "b = -1\n",
+ "\n",
+ "odd = [0 for i in range(0,5)]\n",
+ "even = [0 for i in range(0,5)]\n",
+ "\n",
+ "#Calculation\n",
+ "for i in range(1,10+1):\n",
+ " if i%2 == 0:\n",
+ " a += 1\n",
+ " even[a] = i\n",
+ " else:\n",
+ " b += 1\n",
+ " odd[b] = i\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\n\\tEven \\t\\tOdd\")\n",
+ "for i in range(0,5):\n",
+ " sys.stdout.write(\"\\n\\t %d\\t\\t %d\"%(even[i],odd[i]))\n",
+ " sume = sume + even[i]\n",
+ " sumo = sumo + odd[i]\n",
+ "\n",
+ "sys.stdout.write(\"\\n\\t==========================\\n\")\n",
+ "sys.stdout.write(\"Addition : %d %14d\"%(sume,sumo))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\tEven \t\tOdd\n",
+ "\t 2\t\t 1\n",
+ "\t 4\t\t 3\n",
+ "\t 6\t\t 5\n",
+ "\t 8\t\t 7\n",
+ "\t 10\t\t 9\n",
+ "\t==========================\n",
+ "Addition : 30 25"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.4, Page number: 189<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find sum of even numbers and product of odd numbers from 5 input values.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = 0\n",
+ "m = 1\n",
+ "num = [0 for i in range(0,5)]\n",
+ "\n",
+ "for i in range(0,5):\n",
+ " sys.stdout.write(\"\\nEnter Number [%d] : \"%(i+1))\n",
+ " num[i] = int(raw_input(\"\"))\n",
+ "\n",
+ "#Calculation and Result\n",
+ "sys.stdout.write(\"\\n==================================\")\n",
+ "for i in range(0,5):\n",
+ " if num[i]%2 == 0:\n",
+ " sys.stdout.write(\"\\nEven Number : %d\"%(num[i]))\n",
+ " a = a + num[i]\n",
+ " else:\n",
+ " sys.stdout.write(\"\\nOdd Number : %d\"%(num[i]))\n",
+ " m = m * num[i]\n",
+ "\n",
+ "sys.stdout.write(\"\\n==================================\")\n",
+ "sys.stdout.write(\"\\nAddition of Even Numbers : %d\"%(a))\n",
+ "sys.stdout.write(\"\\nProduct of Odd Numbers : %d\"%(m))\n",
+ "sys.stdout.write(\"\\n==================================\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Number [1] : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Number [2] : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Number [3] : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Number [4] : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Number [5] : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "==================================\n",
+ "Odd Number : 1\n",
+ "Even Number : 2\n",
+ "Odd Number : 3\n",
+ "Even Number : 4\n",
+ "Odd Number : 5\n",
+ "==================================\n",
+ "Addition of Even Numbers : 6\n",
+ "Product of Odd Numbers : 15\n",
+ "=================================="
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.5, Page number: 190<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print string in the reverse order.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "s = ['0' for i in range(0,15)]\n",
+ "\n",
+ "s = raw_input(\"Enter a String : \\n\")\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Reverse String : \\n\")\n",
+ "\n",
+ "#Since there is no null terminating character for string in python, length of string is taken to give the index range\n",
+ "#index range is given -1 to include the index 0 also.\n",
+ "\n",
+ "for i in range(len(s)-1,-1,-1): \n",
+ " sys.stdout.write(\"%c\"%s[i])"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a String : \n",
+ "HELLO\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reverse String : \n",
+ "OLLEH"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.6, Page number: 191<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Detect the occurrence of a character in a given string.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "s = ['0' for i in range(0,15)]\n",
+ "c = 0\n",
+ "\n",
+ "s = raw_input(\"Enter a String : \")\n",
+ "f = raw_input(\"Enter a Character to Find :\")\n",
+ "\n",
+ "#Calculation\n",
+ "for i in range(0,len(s)):\n",
+ " if s[i] == f:\n",
+ " c += 1\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"The Character (%c) in a String (%s) occurs %d times.\"%(f,s,c))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a String : programmer\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Character to Find :r\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Character (r) in a String (programmer) occurs 3 times."
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.7, Page number: 192<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the elements of two arrays in two separate columns and add their\n",
+ "#corresponding elements and display in the 3rd column.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "num = [24,34,12,44,56,17]\n",
+ "num1 = [12,24,35,78,85,22]\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Element of Array 1st - 2nd Array Addition\\n\")\n",
+ "for i in range(0,5+1):\n",
+ " sys.stdout.write(\"\\n\\t\\t%d + %d = %d\"%(num[i],num1[i],num[i]+num1[i]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Element of Array 1st - 2nd Array Addition\n",
+ "\n",
+ "\t\t24 + 12 = 36\n",
+ "\t\t34 + 24 = 58\n",
+ "\t\t12 + 35 = 47\n",
+ "\t\t44 + 78 = 122\n",
+ "\t\t56 + 85 = 141\n",
+ "\t\t17 + 22 = 39"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.8, Page number: 192<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find sum of 3 numbers by entering as character type.\n",
+ "\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "real = [['0' for i in range(0,6)] for i in range(0,6)]\n",
+ "ima = [['0' for i in range(0,6)] for i in range(0,6)]\n",
+ "\n",
+ "for l in range(0,3):\n",
+ " c = int(raw_input(\"Enter Number : \"))\n",
+ " r = c/255\n",
+ " i = c%255\n",
+ " real[l][5] = r\n",
+ " ima[l][5] = i\n",
+ "\n",
+ "c = 0\n",
+ "\n",
+ "for l in range(0,3):\n",
+ " c = c + real[l][5]*255 + ima[l][5]\n",
+ "\n",
+ "sys.stdout.write(\"\\nSum of 3 Numbers : %3ld\"%(c))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number : 3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Sum of 3 Numbers : 12"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.9, Page number: 193<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "#Accept any string upto 15 characters. Display the elements of string with their\n",
+ "#element numbers in a separate column.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "#name = ['0' for i in range(0,15)]\n",
+ "name = raw_input(\"Enter your name : \")\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Element no. & Character\\n\")\n",
+ "for i in range(0,len(name)): #There is no null termination character for string in python\n",
+ " sys.stdout.write(\"\\n%d \\t %c\"%(i,name[i])) \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter your name : amit\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Element no. & Character\n",
+ "\n",
+ "0 \t a\n",
+ "1 \t m\n",
+ "2 \t i\n",
+ "3 \t t"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.10, Page number: 194<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display names of days of a week \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "day = [0 for i in range(0,7)]\n",
+ "\n",
+ "sys.stdout.write(\"Enter numbers between 1 to 7 : \")\n",
+ "for i in range(0,6+1):\n",
+ " day[i] = int(raw_input(\"\"))\n",
+ "\n",
+ "#Result\n",
+ "#There is no switch statement in python. use functions and dictionary or if statement instead.\n",
+ "for i in range(0,6+1):\n",
+ " if day[i] == 1:\n",
+ " sys.stdout.write(\"\\n%dst day of week is Sunday\"%(day[i]))\n",
+ " else:\n",
+ " if day[i] == 2:\n",
+ " sys.stdout.write(\"\\n%dnd day of week is Monday\"%(day[i]))\n",
+ " else:\n",
+ " if day[i] == 3:\n",
+ " sys.stdout.write(\"\\n%drd day of week is Tuesday\"%(day[i]))\n",
+ " else:\n",
+ " if day[i] == 4:\n",
+ " sys.stdout.write(\"\\n%dth day of week is Wednesday\"%(day[i]))\n",
+ " else:\n",
+ " if day[i] == 5:\n",
+ " sys.stdout.write(\"\\n%dth day of week is Thursday\"%(day[i]))\n",
+ " else:\n",
+ " if day[i] == 6:\n",
+ " sys.stdout.write(\"\\n%dth day of week is Friday\"%(day[i]))\n",
+ " else:\n",
+ " if day[i] == 7:\n",
+ " sys.stdout.write(\"\\n%dth day of week is Saturday\"%(day[i]))\n",
+ " else:\n",
+ " sys.stdout.write(\"\\n%dth is invalid day.\"%(day[i]))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter numbers between 1 to 7 : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "8\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "1st day of week is Sunday\n",
+ "3rd day of week is Tuesday\n",
+ "2nd day of week is Monday\n",
+ "4th day of week is Wednesday\n",
+ "5th day of week is Thursday\n",
+ "7th day of week is Saturday\n",
+ "8th is invalid day."
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.11, Page number: 195<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the contents of two arrays where the 1st array should contain the string and 2nd numerical numbers.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "city = ['N','A','N','D','E','D']\n",
+ "pin = [4,3,1,6,0,3]\n",
+ "\n",
+ "#Result\n",
+ "for i in city:\n",
+ " sys.stdout.write(\"%c\"%(i))\n",
+ "\n",
+ "sys.stdout.write(\" - \")\n",
+ "for i in pin:\n",
+ " sys.stdout.write(\"%d\"%(i))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "NANDED - 431603"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.12, Page number: 195<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the number of days of different months of year.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "month = [31,28,31,30,31,30,31,31,30,31,30,31]\n",
+ "\n",
+ "#Result\n",
+ "for i in range(0,11+1):\n",
+ " sys.stdout.write(\"\\nMonth [%d] of a year contains %d days.\"%(i+1,month[i]))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Month [1] of a year contains 31 days.\n",
+ "Month [2] of a year contains 28 days.\n",
+ "Month [3] of a year contains 31 days.\n",
+ "Month [4] of a year contains 30 days.\n",
+ "Month [5] of a year contains 31 days.\n",
+ "Month [6] of a year contains 30 days.\n",
+ "Month [7] of a year contains 31 days.\n",
+ "Month [8] of a year contains 31 days.\n",
+ "Month [9] of a year contains 30 days.\n",
+ "Month [10] of a year contains 31 days.\n",
+ "Month [11] of a year contains 30 days.\n",
+ "Month [12] of a year contains 31 days."
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.13, Page number: 197<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the number of days of given month of a year.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "month = [1,3,5,7,8,10,12,4,6,9,11,2]\n",
+ "\n",
+ "mn = int(raw_input(\"Enter Number of Month : \"))\n",
+ "\n",
+ "for i in range(0,11+1):\n",
+ " if mn == month[i]: #There is no goto statement in python\n",
+ " if i+1 == 12:\n",
+ " sys.stdout.write(\"Month (%d) Contains 28 days.\"%(month[i]))\n",
+ " if i+1 < 8:\n",
+ " sys.stdout.write(\"Month (%d) Contains 31 days.\"%(month[i]))\n",
+ " if i+1 > 7 and i+1 != 12:\n",
+ " sys.stdout.write(\"Month (%d) Contains 30 days.\"%(month[i]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number of Month : 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Month (2) Contains 28 days."
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.14, Page number: 198<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find the average sales of an item out of 12 months sale.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "#Since sum is a built in function in python, sum1 is used instead of sum.\n",
+ "sum1 = 0\n",
+ "avg = 0\n",
+ "\n",
+ "sys.stdout.write(\"Enter Month No.- Sale of an Item/month\\n\")\n",
+ "\n",
+ "item = [0 for i in range(0,11+1)]\n",
+ "for sale in range(0,11+1):\n",
+ " item[sale] = int(raw_input(\"\\t%d = \"%(sale+1)))\n",
+ "\n",
+ "#Calculation\n",
+ "for sale in range(0,11+1):\n",
+ " sum1 = sum1 + item[sale]\n",
+ "\n",
+ "avg = sum1/12.0\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nAverage Sale if an item/month = %f\"%(avg))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Month No.- Sale of an Item/month\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t1 = 125\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t2 = 225\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t3 = 325\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t4 = 425\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t5 = 525\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t6 = 625\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t7 = 725\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t8 = 825\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t9 = 925\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t10 = 500\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t11 = 600\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\t12 = 700\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Average Sale if an item/month = 543.750000"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.15, Page number: 199<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find the similar elements in an array and find the occurrence of similar\n",
+ "#numbers for number of times.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "k = 0\n",
+ "j = 1\n",
+ "\n",
+ "item = [0 for i in range(0,4+1)]\n",
+ "sys.stdout.write(\"\\nEnter Numbers.\\n\")\n",
+ "for i in range(0,4+1):\n",
+ " item[i] = int(raw_input(\"%d = \"%(i)))\n",
+ "\n",
+ "#Calculation & Result\n",
+ "for j in range(0,4+1):\n",
+ " for i in range(j+1,4+1):\n",
+ " if item[j] == item[i]:\n",
+ " sys.stdout.write(\"\\n%d %d Elements are same.\"%(j,i))\n",
+ " k += 1\n",
+ "\n",
+ "if k == 10:\n",
+ " sys.stdout.write(\"\\nAll elements are same\")\n",
+ "else:\n",
+ " if k == 0:\n",
+ " sys.stdout.write(\"\\nNo Elements are same.\")\n",
+ " else:\n",
+ " sys.stdout.write(\"\\nElements Contains Double Numbers.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Enter Numbers.\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "0 = 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1 = 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2 = 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3 = 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4 = 9\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "0 3 Elements are same.\n",
+ "Elements Contains Double Numbers."
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.16, Page number: 200<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Calculate and display total cost of 4 models of Pentium PCs.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "pccode = [1,2,3,4]\n",
+ "t = 0\n",
+ "price = [25000,30000,35000,40000]\n",
+ "stock = [25,20,15,20]\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nStock & Total Cost Details\")\n",
+ "sys.stdout.write(\"\\n========================================================\")\n",
+ "sys.stdout.write(\"\\nModel\\t\\tQty.\\tRate(Rs.)\\tTotal Value\")\n",
+ "sys.stdout.write(\"\\n========================================================\")\n",
+ "\n",
+ "for i in range(0,3+1):\n",
+ " sys.stdout.write(\"\\nPentium%d\\t%d\\t%8ld %15ld\"%(pccode[i],stock[i],price[i],price[i]*stock[i]))\n",
+ " t = t + price[i] * stock[i]\n",
+ "\n",
+ "sys.stdout.write(\"\\n========================================================\")\n",
+ "sys.stdout.write(\"\\nTotal Value of All PCs in Rs. %ld\"%(t))\n",
+ "sys.stdout.write(\"\\n========================================================\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Stock & Total Cost Details\n",
+ "========================================================\n",
+ "Model\t\tQty.\tRate(Rs.)\tTotal Value\n",
+ "========================================================\n",
+ "Pentium1\t25\t 25000 625000\n",
+ "Pentium2\t20\t 30000 600000\n",
+ "Pentium3\t15\t 35000 525000\n",
+ "Pentium4\t20\t 40000 800000\n",
+ "========================================================\n",
+ "Total Value of All PCs in Rs. 2550000\n",
+ "========================================================"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.17, Page number: 201<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the given message by using putc() and stdout() functions.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "msg = \"C is Easy\"\n",
+ "i = 0\n",
+ "\n",
+ "#Result\n",
+ "#There is no putc function and null termination in python.\n",
+ "while i < len(msg):\n",
+ " sys.stdout.write(\"%c\"%(msg[i]))\n",
+ " i += 1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "C is Easy"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.18, Page number: 202<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read the text through keyboard and display it by using\n",
+ "#stdin and stdout streams.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "ch = raw_input(\"Input a Text : \")\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"The Text Entered was\\n\")\n",
+ "\n",
+ "for i in ch:\n",
+ " sys.stdout.write(\"%c\"%(i))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Input a Text : Hello World\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Text Entered was\n",
+ "Hello World"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.19, Page number: 202<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Sort the given strings alphabetically.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "text = raw_input(\"Enter Text Below : \")\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Sorted Text Below : \\n\")\n",
+ "for i in range(65,90+1):\n",
+ " for j in range(0,len(text)):\n",
+ " if text[j] == chr(i).upper() or text[j] == chr(i).lower():\n",
+ " sys.stdout.write(\"%c\"%(text[j]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Text Below : Hello\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sorted Text Below : \n",
+ "eHllo"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.20, Page number: 203<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Arrange the numbers in increasing and decreasing order\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "sys.stdout.write(\"Enter ten numbers : \")\n",
+ "a = [0 for i in range(0,10)]\n",
+ "\n",
+ "for i in range(0,10):\n",
+ " a[i] = int(raw_input(\"\"))\n",
+ "sum1 = 0\n",
+ "\n",
+ "#Calculation\n",
+ "sum1 = sum(a)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Numbers In Ascending Order : \")\n",
+ "for i in range(0,sum1):\n",
+ " for j in range(0,10):\n",
+ " if i == a[j]:\n",
+ " sys.stdout.write(\"%3d\"%(a[j]))\n",
+ " \n",
+ "sys.stdout.write(\"\\nNumbers In Descending Order : \")\n",
+ "for i in range(sum1,0,-1):\n",
+ " for j in range(0,10):\n",
+ " if i == a[j]:\n",
+ " sys.stdout.write(\"%3d\"%(a[j]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter ten numbers : "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "9\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "10\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "12\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "9\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "3\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Numbers In Ascending Order : 1 2 3 4 5 7 9 9 10 12\n",
+ "Numbers In Descending Order : 12 10 9 9 7 5 4 3 2 1"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.21, Page number: 205<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Sorting in ascending order by comparison method.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "\n",
+ "n = int(raw_input(\"Enter how many numbers to sort : \"))\n",
+ "\n",
+ "num = [0 for i in range(0,n)]\n",
+ "for i in range(0,n):\n",
+ " num[i] = int(raw_input(\"Enter numbers # %2d : \"%(i+1)))\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"The Numbers Entered through keyboard\\n\")\n",
+ "for i in range(0,n):\n",
+ " sys.stdout.write(\"%4d\"%(num[i]))\n",
+ "for i in range(0,n-1):\n",
+ " for j in range(i+1,n):\n",
+ " if num[i] > num[j]:\n",
+ " temp = num[i]\n",
+ " num[i] = num[j]\n",
+ " num[j] = temp\n",
+ "\n",
+ "sys.stdout.write(\"\\nThe Numbers in ascending order\\n\")\n",
+ "for i in num:\n",
+ " sys.stdout.write(\"%4d\"%(i))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter how many numbers to sort : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter numbers # 1 : 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter numbers # 2 : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter numbers # 3 : 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter numbers # 4 : 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter numbers # 5 : 9\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Numbers Entered through keyboard\n",
+ " 8 3 2 1 9\n",
+ "The Numbers in ascending order\n",
+ " 1 2 3 8 9"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.22, Page number: 206<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Evaluate the series contains sum of square of\n",
+ "#numbers from 1 to n. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "s = 0\n",
+ "sqr = [0 for i in range(0,15)]\n",
+ "\n",
+ "n = int(raw_input(\"Enter value of n : \"))\n",
+ "\n",
+ "for i in range(0,n):\n",
+ " sqr[i] = pow(i+1,2)\n",
+ " \n",
+ "for i in range(0,n):\n",
+ " sys.stdout.write(\"%d\\n\"%(sqr[i]))\n",
+ " s = s + sqr[i]\n",
+ " \n",
+ "sys.stdout.write(\"Sum of square : %d\"%(s))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter value of n : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1\n",
+ "4\n",
+ "9\n",
+ "16\n",
+ "Sum of square : 30"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.23, Page number: 207<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display two dimensional array elements together with their addresses\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = [[0 for i in range(0,3)]for i in range(0,3)]\n",
+ "c = 1\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " for j in range(0,3):\n",
+ " a[i][j] = c\n",
+ " c += 1\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"Array Elements and addresses.\\n\")\n",
+ "sys.stdout.write(\" Col-0 Col-1 Col-2\\n\")\n",
+ "sys.stdout.write(\"========================================================\")\n",
+ "sys.stdout.write(\"\\nRow0\")\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " for j in range(0,3):\n",
+ " sys.stdout.write(\" %d [%5d]\"%(a[i][j],id(a[i][j])))\n",
+ " sys.stdout.write(\"\\nRow%d\"%(i+1))\n",
+ "\n",
+ "sys.stdout.write(\"\\r\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Array Elements and addresses.\n",
+ " Col-0 Col-1 Col-2\n",
+ "========================================================\n",
+ "Row0 1 [6215912] 2 [6215900] 3 [6215888]\n",
+ "Row1 4 [6215876] 5 [6215864] 6 [6215852]\n",
+ "Row2 7 [6215840] 8 [6215828] 9 [6215816]\n",
+ "Row3\r"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.24, Page number: 208<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the elements of two-dimensional array.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = [[1,2,3],[4,5,6],[7,8,9]]\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"Elements of An Array.\\n\")\n",
+ "for i in range(0,3):\n",
+ " for j in range(0,3):\n",
+ " sys.stdout.write(\"%5d\"%(a[i][j]))\n",
+ " sys.stdout.write(\"\\n\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Elements of An Array.\n",
+ " 1 2 3\n",
+ " 4 5 6\n",
+ " 7 8 9\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.25, Page number: 209<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read codenos and balance and count the number of codenos, \n",
+ "#which are having the balance less than 1000.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "j = 0\n",
+ "bal = [[0 for i in range(0,5)]for i in range(0,5)]\n",
+ "\n",
+ "for i in range(0,5):\n",
+ " bal[i][1] = int(raw_input(\"Enter Code No & Balance : \"))\n",
+ " bal[i][2] = int(raw_input(\"Enter Code No & Balance : \"))\n",
+ " \n",
+ "sys.stdout.write(\"Your Entered Data : \")\n",
+ "for i in range(0,5):\n",
+ " sys.stdout.write(\"\\n%d %d\"%(bal[i][1],bal[i][2]))\n",
+ " if bal[i][2] < 1000:\n",
+ " j += 1\n",
+ " \n",
+ "sys.stdout.write(\"\\nBalance Less than 1000 are %d\"%(j))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Code No & Balance : 1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Code No & Balance : 900\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Code No & Balance : 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Code No & Balance : 800\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Code No & Balance : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Code No & Balance : 1200\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Code No & Balance : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Code No & Balance : 550\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Code No & Balance : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Code No & Balance : 600\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Your Entered Data : \n",
+ "1 900\n",
+ "2 800\n",
+ "3 1200\n",
+ "4 550\n",
+ "5 600\n",
+ "Balance Less than 1000 are 4"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.26, Page number: 210<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Accept three elements in a one dimensional array and compute addition,square\n",
+ "#and cube. Display the results in two dimensional array.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = [[0 for i in range(0,3)]for i in range(0,3)]\n",
+ "b = [0 for i in range(0,3)]\n",
+ "j = 0\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " b[i] = int(raw_input(\"Enter Three Numbers : \"))\n",
+ "\n",
+ "#Calculation\n",
+ "for i in range(0,3):\n",
+ " a[i][j] = b[i]*2\n",
+ " a[i][j+1] = pow(b[i],2)\n",
+ " a[i][j+2] = pow(b[i],3)\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"Number\\tAddition\\tSquare\\t\\tCube\\n\")\n",
+ "for i in range(0,3):\n",
+ " sys.stdout.write(\"\\n%d\"%(b[i]))\n",
+ " for j in range(0,3):\n",
+ " sys.stdout.write(\"\\t%4d\\t\"%(a[i][j]))\n",
+ " sys.stdout.write(\"\\n\")\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three Numbers : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three Numbers : 6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three Numbers : 7\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Number\tAddition\tSquare\t\tCube\n",
+ "\n",
+ "5\t 10\t\t 25\t\t 125\t\n",
+ "\n",
+ "6\t 12\t\t 36\t\t 216\t\n",
+ "\n",
+ "7\t 14\t\t 49\t\t 343\t\n"
+ ]
+ }
+ ],
+ "prompt_number": 12
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.27, Page number: 211<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read and display matrix\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = [[0 for i in range(0,10)]for i in range(0,10)]\n",
+ "row = int(raw_input(\"Enter Order of matrix upto (10x10) A : \"))\n",
+ "col = int(raw_input(\"Enter Order of matrix upto (10x10) A : \"))\n",
+ "\n",
+ "for i in range(0,row):\n",
+ " for j in range(0,col):\n",
+ " a[i][j] = int(raw_input(\"Enter Elements of matrix A : \"))\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nThe Matrix is : \\n\")\n",
+ "for i in range(0,row):\n",
+ " for j in range(0,col):\n",
+ " sys.stdout.write(\"%6d\"%(a[i][j]))\n",
+ " sys.stdout.write(\"\\n\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Order of matrix upto (10x10) A : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Order of matrix upto (10x10) A : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix A : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix A : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix A : 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix A : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix A : 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix A : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix A : 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix A : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix A : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The Matrix is : \n",
+ " 3 5 8\n",
+ " 4 8 5\n",
+ " 8 5 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.28, Page number: 212<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Transpose of matrix\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = [[0 for i in range(0,10)]for i in range(0,10)]\n",
+ "b = [[0 for i in range(0,10)]for i in range(0,10)]\n",
+ "row1 = int(raw_input(\"Enter Order of matrix upto (10x10) A : \"))\n",
+ "col1 = int(raw_input(\"Enter Order of matrix upto (10x10) A : \"))\n",
+ "\n",
+ "for i in range(0,row1):\n",
+ " for j in range(0,col1):\n",
+ " a[i][j] = int(raw_input(\"Enter Elements of matrix A : \"))\n",
+ "row2 = col1\n",
+ "col2 = row1\n",
+ "\n",
+ "#Calculation\n",
+ "for i in range(0,row1):\n",
+ " for j in range(0,col1):\n",
+ " b[j][i] = a[i][j]\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nThe Matrix is : \\n\")\n",
+ "for i in range(0,row2):\n",
+ " for j in range(0,col2):\n",
+ " sys.stdout.write(\"%4d\"%(b[i][j]))\n",
+ " sys.stdout.write(\"\\n\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Order of matrix upto (10x10) A : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Order of matrix upto (10x10) A : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix A : 3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix A : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix A : 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix A : 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix A : 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix A : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix A : 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix A : 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix A : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The Matrix is : \n",
+ " 3 4 8\n",
+ " 5 8 5\n",
+ " 8 5 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.29, Page number: 213<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Transpose of 3x3 matrix\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "mat = [[0 for i in range(0,3)]for i in range(0,3)]\n",
+ "for i in range(0,3):\n",
+ " for j in range(0,3):\n",
+ " mat[i][j] = int(raw_input(\"Enter Elements of matrix \"))\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Transpose of the matrix\\n\")\n",
+ "for i in range(0,3):\n",
+ " for j in range(0,3):\n",
+ " sys.stdout.write(\"\\t%d\"%(mat[j][i]))\n",
+ " sys.stdout.write(\"\\n\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix 9\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix 2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix 4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix 7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix 5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of matrix 2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Transpose of the matrix\n",
+ "\t5\t2\t7\n",
+ "\t8\t5\t5\n",
+ "\t9\t4\t2\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.30, Page number: 214<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Addition and subtraction of two matrices \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = [[0 for i in range(0,10)]for i in range(0,10)]\n",
+ "b = [[0 for i in range(0,10)]for i in range(0,10)]\n",
+ "\n",
+ "r1 = int(raw_input(\"Enter Order of Matrix A & B upto 10x10\"))\n",
+ "c1 = int(raw_input(\"Enter Order of Matrix A & B upto 10x10\"))\n",
+ "\n",
+ "for i in range(0,r1):\n",
+ " for j in range(0,c1):\n",
+ " a[i][j] = int(raw_input(\"Enter Elements of Matrix A:\"))\n",
+ "\n",
+ "for i in range(0,r1):\n",
+ " for j in range(0,c1):\n",
+ " b[i][j] = int(raw_input(\"Enter Elements of Matrix B:\"))\n",
+ "\n",
+ "#Calculation and Result\n",
+ "sys.stdout.write(\"\\nMatrix Addition\\n\")\n",
+ "for i in range(0,r1):\n",
+ " for j in range(0,c1):\n",
+ " sys.stdout.write(\"%5d\"%(a[i][j]+b[i][j]))\n",
+ " sys.stdout.write(\"\\n\")\n",
+ "\n",
+ "sys.stdout.write(\"\\nMatrix Subtraction\\n\")\n",
+ "for i in range(0,r1):\n",
+ " for j in range(0,c1):\n",
+ " sys.stdout.write(\"%5d\"%(a[i][j]-b[i][j]))\n",
+ " sys.stdout.write(\"\\n\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Order of Matrix A & B upto 10x103\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Order of Matrix A & B upto 10x103\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix A:4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix A:5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix A:8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix A:2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix A:9\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix A:8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix A:2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix A:9\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix A:4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix B:1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix B:3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix B:5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix B:0\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix B:5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix B:4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix B:6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix B:7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix B:2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Matrix Addition\n",
+ " 5 8 13\n",
+ " 2 14 12\n",
+ " 8 16 6\n",
+ "\n",
+ "Matrix Subtraction\n",
+ " 3 2 3\n",
+ " 2 4 4\n",
+ " -4 2 2\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.31, Page number: 216<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Multiplication of two matrices \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = [[0 for i in range(0,10)]for i in range(0,10)]\n",
+ "b = [[0 for i in range(0,10)]for i in range(0,10)]\n",
+ "\n",
+ "r1 = int(raw_input(\"Enter Order of Matrix A & B upto 10x10\"))\n",
+ "c1 = int(raw_input(\"Enter Order of Matrix A & B upto 10x10\"))\n",
+ "\n",
+ "for i in range(0,r1):\n",
+ " for j in range(0,c1):\n",
+ " a[i][j] = int(raw_input(\"Enter Elements of Matrix A:\"))\n",
+ "\n",
+ "for i in range(0,r1):\n",
+ " for j in range(0,c1):\n",
+ " b[i][j] = int(raw_input(\"Enter Elements of Matrix B:\"))\n",
+ "\n",
+ "#Calculation and Result\n",
+ "sys.stdout.write(\"\\nMultiplication of corresponding elements\\n\")\n",
+ "for i in range(0,r1):\n",
+ " for j in range(0,c1):\n",
+ " sys.stdout.write(\"%5d\"%(a[i][j]*b[i][j]))\n",
+ " sys.stdout.write(\"\\n\")\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Order of Matrix A & B upto 10x103\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Order of Matrix A & B upto 10x103\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix A:4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix A:5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix A:8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix A:2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix A:9\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix A:8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix A:2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix A:9\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix A:4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix B:1\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix B:3\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix B:5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix B:0\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix B:5\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix B:4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix B:6\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix B:7\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Elements of Matrix B:2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Multiplication of corresponding elements\n",
+ " 4 15 40\n",
+ " 0 45 32\n",
+ " 12 63 8\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.32, Page number: 217<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read the Quantity & Price of various Pentium models using an array and\n",
+ "#Compute the total cost of all models.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "pc = [[0 for i in range(0,4)]for i in range(0,4)]\n",
+ "t = 0\n",
+ "\n",
+ "for i in range(0,4):\n",
+ " for j in range(0,2):\n",
+ " pc[i][j] = int(raw_input(\"Enter Qty. & Price for Pentium %d : \"%(i+1)))\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"=====================================================\")\n",
+ "sys.stdout.write(\"\\nModel\\tQty.\\tRate(Rs.)\\tTotal Value\")\n",
+ "sys.stdout.write(\"\\n=====================================================\")\n",
+ "for i in range(0,4):\n",
+ " sys.stdout.write(\"\\nPentium %d %2ld %6ld %15ld\"%(i+1,pc[i][0],pc[i][1],pc[i][0]*pc[i][1]))\n",
+ " t = t + pc[i][0] * pc[i][1]\n",
+ "\n",
+ "sys.stdout.write(\"\\n=====================================================\")\n",
+ "sys.stdout.write(\"\\nTotal Value of All PCs in Rs. %ld\"%(t))\n",
+ "sys.stdout.write(\"\\n=====================================================\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Qty. & Price for Pentium 1 : 25\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Qty. & Price for Pentium 1 : 25000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Qty. & Price for Pentium 2 : 20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Qty. & Price for Pentium 2 : 40000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Qty. & Price for Pentium 3 : 15\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Qty. & Price for Pentium 3 : 35000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Qty. & Price for Pentium 4 : 20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Qty. & Price for Pentium 4 : 40000\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "=====================================================\n",
+ "Model\tQty.\tRate(Rs.)\tTotal Value\n",
+ "=====================================================\n",
+ "Pentium 1 25 25000 625000\n",
+ "Pentium 2 20 40000 800000\n",
+ "Pentium 3 15 35000 525000\n",
+ "Pentium 4 20 40000 800000\n",
+ "=====================================================\n",
+ "Total Value of All PCs in Rs. 2750000\n",
+ "====================================================="
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.33, Page number: 218<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read the capacity of HD, it's price and quantity available in the form of an array\n",
+ "# and compute the cost of HD\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "hd = [[0 for i in range(0,4)]for i in range(0,4)]\n",
+ "t = 0\n",
+ "\n",
+ "for j in range(0,4):\n",
+ " for i in range(0,3):\n",
+ " hd[i][j] = int(raw_input(\"Enter Capacity, Price & Qty.:\"))\n",
+ " \n",
+ "sys.stdout.write(\"====================================================================\\n\")\n",
+ "sys.stdout.write(\"HD Capacity\\tGB Price Rs.\\tQuantity Total Value Rs.\")\n",
+ "sys.stdout.write(\"\\n====================================================================\\n\")\n",
+ "\n",
+ "for j in range(0,4):\n",
+ " for i in range(0,3):\n",
+ " sys.stdout.write(\"%2ld\"%(hd[i][j]))\n",
+ " sys.stdout.write(\"\\t\\t\")\n",
+ " if i == 2:\n",
+ " sys.stdout.write(\"%5ld\"%(hd[i-1][j]*hd[i][j]))\n",
+ " t = t + hd[i-1][j] * hd[i][j]\n",
+ " sys.stdout.write(\"\\n\")\n",
+ " \n",
+ "sys.stdout.write(\"====================================================================\")\n",
+ "sys.stdout.write(\"\\nTotal Value Rs. %37ld\"%(t))\n",
+ "sys.stdout.write(\"\\n====================================================================\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Capacity, Price & Qty.:10\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Capacity, Price & Qty.:8000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Capacity, Price & Qty.:25\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Capacity, Price & Qty.:20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Capacity, Price & Qty.:12000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Capacity, Price & Qty.:20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Capacity, Price & Qty.:40\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Capacity, Price & Qty.:15000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Capacity, Price & Qty.:15\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Capacity, Price & Qty.:90\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Capacity, Price & Qty.:20000\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Capacity, Price & Qty.:10\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "====================================================================\n",
+ "HD Capacity\tGB Price Rs.\tQuantity Total Value Rs.\n",
+ "====================================================================\n",
+ "10\t\t8000\t\t25\t\t200000\n",
+ "20\t\t12000\t\t20\t\t240000\n",
+ "40\t\t15000\t\t15\t\t225000\n",
+ "90\t\t20000\t\t10\t\t200000\n",
+ "====================================================================\n",
+ "Total Value Rs. 865000\n",
+ "===================================================================="
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.34, Page number: 220<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the names of the cities with their base addresses.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "city = [\"Mumbai\",\"Chennai\",\"Kolkata\",\"Pune\",\"Delhi\"]\n",
+ "\n",
+ "#Result\n",
+ "for i in range(0,5):\n",
+ " sys.stdout.write(\"Base Address = %u\"%(id(city[i]))) #Memory address will differ in different systems\n",
+ " sys.stdout.write(\"\\tString = %s\\n\"%(city[i]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Base Address = 60549024\tString = Mumbai\n",
+ "Base Address = 60550048\tString = Chennai\n",
+ "Base Address = 60550592\tString = Kolkata\n",
+ "Base Address = 60551104\tString = Pune\n",
+ "Base Address = 60550240\tString = Delhi\n"
+ ]
+ }
+ ],
+ "prompt_number": 45
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.35, Page number: 220<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the binary bits corresponding to Hexadecimal numbers from\n",
+ "#0 to E and attach an odd parity to Hex numbers and display them.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "bin = [[0 for i in range(0,16)]for i in range(0,16)]\n",
+ "a = 0\n",
+ "c = 0\n",
+ "\n",
+ "for x in range(0,16):\n",
+ " y = x\n",
+ " for a in range(0,4):\n",
+ " bin[x][a] = y%2\n",
+ " y = y/2\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nInput Bits\\t Parity Bits\")\n",
+ "sys.stdout.write(\"\\n===================================\")\n",
+ "\n",
+ "for x in range(0,16):\n",
+ " c = 0\n",
+ " sys.stdout.write(\"\\n\")\n",
+ " for y in range(3,0-1,-1):\n",
+ " sys.stdout.write(\"%3d\"%(bin[x][y]))\n",
+ " if bin[x][y] == 1:\n",
+ " c += 1\n",
+ " if c%2 == 0:\n",
+ " sys.stdout.write(\"%7d\"%(1))\n",
+ " else:\n",
+ " sys.stdout.write(\"%7d\"%(0))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Input Bits\t Parity Bits\n",
+ "===================================\n",
+ " 0 0 0 0 1\n",
+ " 0 0 0 1 0\n",
+ " 0 0 1 0 0\n",
+ " 0 0 1 1 1\n",
+ " 0 1 0 0 0\n",
+ " 0 1 0 1 1\n",
+ " 0 1 1 0 1\n",
+ " 0 1 1 1 0\n",
+ " 1 0 0 0 0\n",
+ " 1 0 0 1 1\n",
+ " 1 0 1 0 1\n",
+ " 1 0 1 1 0\n",
+ " 1 1 0 0 1\n",
+ " 1 1 0 1 0\n",
+ " 1 1 1 0 0\n",
+ " 1 1 1 1 1"
+ ]
+ }
+ ],
+ "prompt_number": 48
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.36, Page number: 222<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Convert binary to gray codes.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "bin1 = [[0 for i in range(0,16)]for i in range(0,16)]\n",
+ "a = 0\n",
+ "c = 0\n",
+ "\n",
+ "#Calculation\n",
+ "for x in range(0,16):\n",
+ " y = x\n",
+ " for a in range(0,4):\n",
+ " bin1[x][a] = y%2\n",
+ " y = y/2\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nBinary Bits\\tGray Bits\")\n",
+ "sys.stdout.write(\"\\n==================================\")\n",
+ "\n",
+ "for x in range(0,16):\n",
+ " sys.stdout.write(\"\\n\")\n",
+ " for y in range(3,0-1,-1):\n",
+ " sys.stdout.write(\"%3d\"%(bin1[x][y]))\n",
+ " sys.stdout.write(\"%5d %2d %2d %2d\"%(bin1[x][3],(bin1[x][3]^bin1[x][2]),(bin1[x][2]^bin1[x][1]),(bin1[x][1]^bin1[x][0])))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Binary Bits\tGray Bits\n",
+ "==================================\n",
+ " 0 0 0 0 0 0 0 0\n",
+ " 0 0 0 1 0 0 0 1\n",
+ " 0 0 1 0 0 0 1 1\n",
+ " 0 0 1 1 0 0 1 0\n",
+ " 0 1 0 0 0 1 1 0\n",
+ " 0 1 0 1 0 1 1 1\n",
+ " 0 1 1 0 0 1 0 1\n",
+ " 0 1 1 1 0 1 0 0\n",
+ " 1 0 0 0 1 1 0 0\n",
+ " 1 0 0 1 1 1 0 1\n",
+ " 1 0 1 0 1 1 1 1\n",
+ " 1 0 1 1 1 1 1 0\n",
+ " 1 1 0 0 1 0 1 0\n",
+ " 1 1 0 1 1 0 1 1\n",
+ " 1 1 1 0 1 0 0 1\n",
+ " 1 1 1 1 1 0 0 0"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.37, Page number: 224<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#working of three dimensional array.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "array_3d = [[[0 for i in range(0,3)]for i in range(0,3)]for i in range(0,3)]\n",
+ "\n",
+ "for a in range(0,3):\n",
+ " for b in range(0,3):\n",
+ " for c in range(0,3):\n",
+ " array_3d[a][b][c] = a+b+c\n",
+ "\n",
+ "#Result\n",
+ "for a in range(0,3):\n",
+ " sys.stdout.write(\"\\n\")\n",
+ " for b in range(0,3):\n",
+ " for c in range(0,3):\n",
+ " sys.stdout.write(\"%3d\"%(array_3d[a][b][c]))\n",
+ " sys.stdout.write(\"\\n\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " 0 1 2\n",
+ " 1 2 3\n",
+ " 2 3 4\n",
+ "\n",
+ " 1 2 3\n",
+ " 2 3 4\n",
+ " 3 4 5\n",
+ "\n",
+ " 2 3 4\n",
+ " 3 4 5\n",
+ " 4 5 6\n"
+ ]
+ }
+ ],
+ "prompt_number": 54
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.38, Page number: 225<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#working of four dimensional array\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "array_4d = [[[[0 for i in range(0,2)]for i in range(0,2)]for i in range(0,2)]for i in range(0,2)]\n",
+ "\n",
+ "for a in range(0,2):\n",
+ " for b in range(0,2):\n",
+ " for c in range(0,2):\n",
+ " for d in range(0,2):\n",
+ " array_4d[a][b][c][d] = a+b+c+d\n",
+ " \n",
+ "#Result\n",
+ "for a in range(0,2):\n",
+ " sys.stdout.write(\"\\n\")\n",
+ " for b in range(0,2):\n",
+ " for c in range(0,2):\n",
+ " for d in range(0,2):\n",
+ " sys.stdout.write(\"%3d\"%(array_4d[a][b][c][d]))\n",
+ " sys.stdout.write(\"\\n\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " 0 1\n",
+ " 1 2\n",
+ " 1 2\n",
+ " 2 3\n",
+ "\n",
+ " 1 2\n",
+ " 2 3\n",
+ " 2 3\n",
+ " 3 4\n"
+ ]
+ }
+ ],
+ "prompt_number": 56
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.39, Page number: 226<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read the quantity & rate of certain items using multidimensional\n",
+ "#array. Calculate total cost by multiplying quantity & rate and offer 2%\n",
+ "#discount on it & display the net amount.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "m = [[[[0 for i in range(0,2)]for i in range(0,2)]for i in range(0,2)]for i in range(0,2)]\n",
+ "\n",
+ "for a in range(0,2):\n",
+ " for b in range(0,2):\n",
+ " for c in range(0,2):\n",
+ " for d in range(0,1):\n",
+ " if a == 0:\n",
+ " m[a][b][c][d] = int(raw_input(\"Enter Quantity & Rate\\na=%d b=%d c=%d d=%d\"%(a,b,c,d)))\n",
+ " m[a][b][c][d+1] = int(raw_input(\"Enter Quantity & Rate\\na=%d b=%d c=%d d=%d\"%(a,b,c,d)))\n",
+ " else:\n",
+ " m[a][b][c][d] = m[a-1][b][c][d] * m[a-1][b][c][d+1]\n",
+ " m[a][b][c][d+1] = m[a-1][b][c][d] * m[a-1][b][c][d+1] *2/100\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\n============================================================\\n\")\n",
+ "sys.stdout.write(\"Quantity\\tRate\\tAmoount\\tDiscount(@2%)\\tNet Amount\\n\")\n",
+ "sys.stdout.write(\"============================================================\\n\")\n",
+ "\n",
+ "for a in range(0,1):\n",
+ " for b in range(0,2):\n",
+ " for c in range(0,2):\n",
+ " for d in range(0,1):\n",
+ " sys.stdout.write(\"\\n%10ld %10ld\"%(m[a][b][c][d],m[a][b][c][d+1]))\n",
+ " sys.stdout.write(\"%8ld.00 %6ld.00 %12ld.00\"%(m[a+1][b][c][d],m[a+1][b][c][d+1],m[a+1][b][c][d] - m[a+1][b][c][d+1]))\n",
+ " \n",
+ "sys.stdout.write(\"\\n============================================================\")\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Quantity & Rate\n",
+ "a=0 b=0 c=0 d=025\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Quantity & Rate\n",
+ "a=0 b=0 c=0 d=050\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Quantity & Rate\n",
+ "a=0 b=0 c=1 d=030\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Quantity & Rate\n",
+ "a=0 b=0 c=1 d=060\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Quantity & Rate\n",
+ "a=0 b=1 c=0 d=035\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Quantity & Rate\n",
+ "a=0 b=1 c=0 d=070\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Quantity & Rate\n",
+ "a=0 b=1 c=1 d=040\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Quantity & Rate\n",
+ "a=0 b=1 c=1 d=075\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "============================================================\n",
+ "Quantity\tRate\tAmoount\tDiscount(@2%)\tNet Amount\n",
+ "============================================================\n",
+ "\n",
+ " 25 50 1250.00 25.00 1225.00\n",
+ " 30 60 1800.00 36.00 1764.00\n",
+ " 35 70 2450.00 49.00 2401.00\n",
+ " 40 75 3000.00 60.00 2940.00\n",
+ "============================================================"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.40, Page number: 227<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read string from a character array.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "in1 = raw_input(\"\") #Since in is a keyword in python, in1 is used\n",
+ "\n",
+ "#Result\n",
+ "#There is no sscanf() function in python\n",
+ "out = in1\n",
+ "sys.stdout.write(\"%s\\n\"%(out))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "HELLO\n"
+ ]
+ }
+ ],
+ "prompt_number": 60
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.41, Page number: 228<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Read integers in character array, convert and assign them to integer\n",
+ "#variable.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable initialization\n",
+ "in1 = raw_input(\"Enter Integers : \")\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Value of int x : %s\"%(in1))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Integers : 123\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of int x : 123"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.42, Page number: 229<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#use of sprintf()\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = 10\n",
+ "c = 'C'\n",
+ "p = 3.14\n",
+ "\n",
+ "spf = str(\"%d %c %.2f\"%(a,c,p)) #There is no sprintf() function in python\n",
+ "sys.stdout.write(\"\\n%s\"%(spf))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "10 C 3.14"
+ ]
+ }
+ ],
+ "prompt_number": 61
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 7.43, Page number: 229<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Complete the string by filling the spaces with appropriate characters\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "name = \"Mas er ngA SIC\"\n",
+ "name1 = ['' for i in range(0,20)]\n",
+ "x = 0\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Mastering ANSI C\\n\")\n",
+ "\n",
+ "while x < len(name): #There is no null terminating character in python\n",
+ " if name[x] == ' ':\n",
+ " n = raw_input(\"\")\n",
+ " name1[x] = n\n",
+ " else:\n",
+ " name1[x] = name[x]\n",
+ " x += 1\n",
+ " \n",
+ "sys.stdout.write(\"%s\"%(name1))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Mastering ANSI C\n",
+ "['M', 'a', 's', 't', 'e', 'r', 'i', 'n', 'g', 'A', 'N', 'S', 'I', 'C', '', '', '', '', '', '']"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Programming_in_C_using_ANSI_C/KamthaneChapter8.ipynb b/Programming_in_C_using_ANSI_C/KamthaneChapter8.ipynb new file mode 100755 index 00000000..3243f3f8 --- /dev/null +++ b/Programming_in_C_using_ANSI_C/KamthaneChapter8.ipynb @@ -0,0 +1,2750 @@ +{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 8: Working with Strings & Standard Functions<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.1, Page number: 236<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display string without considering NULL character\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "name1 = 'SANJAY'\n",
+ "#There is no null termination character in python\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Name1 = %s\"%(name1))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name1 = SANJAY"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.2, Page number: 236<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display successive strings\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "name1 = 'SANJAY'\n",
+ "name2 = 'SANJAY'\n",
+ "#There is no null termination character in python\n",
+ "\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Name1 = %s\"%name1)\n",
+ "sys.stdout.write(\"\\nName2 = %s\"%(name2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Name1 = SANJAY\n",
+ "Name2 = SANJAY"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.3, Page number: 237<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print \"WELCOME\" by using different formats of initialization \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "#in python, string initialization can be done using single quotes and double quotes\n",
+ "arr1 = 'WELCOME'\n",
+ "arr2 = \"WELCOME\"\n",
+ "arr3 = 'WELCOME'\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nArray1 = %s\"%(arr1))\n",
+ "sys.stdout.write(\"\\nArray2 = %s\"%(arr2))\n",
+ "sys.stdout.write(\"\\nArray3 = %s\"%(arr3))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Array1 = WELCOME\n",
+ "Array2 = WELCOME\n",
+ "Array3 = WELCOME"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.4, Page number: 238<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the string 'PRABHAKAR' using various format specifications\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "text = \"PRABHAKAR\"\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"%s\\n\"%(text))\n",
+ "sys.stdout.write(\"%.5s\\n\"%(text))\n",
+ "sys.stdout.write(\"%.8s\\n\"%(text))\n",
+ "sys.stdout.write(\"%.15s\\n\"%(text))\n",
+ "sys.stdout.write(\"%-10.4s\\n\"%(text))\n",
+ "sys.stdout.write(\"%11s\\n\"%(text))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "PRABHAKAR\n",
+ "PRABH\n",
+ "PRABHAKA\n",
+ "PRABHAKAR\n",
+ "PRAB \n",
+ " PRABHAKAR\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.5, Page number: 239<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print the elements of the character array using while loop.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "text = \"HAVE A NICE DAY\"\n",
+ "i = 0\n",
+ "\n",
+ "#Result\n",
+ "#There is no null character for strings in python\n",
+ "\n",
+ "while i < 15:\n",
+ " sys.stdout.write(\"%c\"%(text[i]))\n",
+ " i += 1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "HAVE A NICE DAY"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.6, Page number: 239<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print the elements of the character array.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "text = \"HAVE A NICE DAY\"\n",
+ "i = 0\n",
+ "\n",
+ "#Result\n",
+ "#There is no null character for strings in python\n",
+ "\n",
+ "while i < 15:\n",
+ " sys.stdout.write(\"%c\"%(text[i]))\n",
+ " i += 1"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "HAVE A NICE DAY"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.7, Page number: 241<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Count the number of characters in a given string\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "text = raw_input(\"Type Text Below\")\n",
+ "\n",
+ "#Calculation\n",
+ "len1 = len(text) #since len in a built in function in python, len1 is used\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Length of String = %d\"%(len1))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Type Text BelowHello\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Length of String = 5"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.8, Page number: 241<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Determine the length of the string\n",
+ "#and find its equivalent ASCII codes.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "\n",
+ "#Variable Initialization\n",
+ "name = raw_input(\"Enter your name : \")\n",
+ "l = len(name)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Your Name is %s & \"%(name))\n",
+ "sys.stdout.write(\"it contains %d characters\"%(l))\n",
+ "sys.stdout.write(\"\\n\\nName & it's Ascii Equivalent.\\n\")\n",
+ "sys.stdout.write(\"=====================================\\n\")\n",
+ "\n",
+ "for i in range(0,l):\n",
+ " sys.stdout.write(\"\\n%c\\t\\t%d\"%(name[i],ord(name[i]))) #ord() function is used to get the ASCII value of a character"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter your name : SACHIN\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Your Name is SACHIN & it contains 6 characters\n",
+ "\n",
+ "Name & it's Ascii Equivalent.\n",
+ "=====================================\n",
+ "\n",
+ "S\t\t83\n",
+ "A\t\t65\n",
+ "C\t\t67\n",
+ "H\t\t72\n",
+ "I\t\t73\n",
+ "N\t\t78"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.9, Page number: 242<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Remove the occurrences of 'The' word from entered text\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "j = 0\n",
+ "line = raw_input(\"Enter Text Below.\")\n",
+ "l = len(line)\n",
+ "line2 = ['0' for i in range(0,80)]\n",
+ "i = 0\n",
+ "\n",
+ "#Calculation\n",
+ "while i < l:\n",
+ " if (i >= l-4 or l ==3) and (line[l-4] == ' ' and line[l-3] == 't' and line[l-2] == 'h' and line[l-1] == 'e'):\n",
+ " continue\n",
+ " if line[i] == 't' and line[i+1] == 'h' and line[i+2] == 'e' and line[i+3] == ' ':\n",
+ " i += 3\n",
+ " continue\n",
+ " else:\n",
+ " line2[j] = line[i]\n",
+ " j += 1\n",
+ " i += 1\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nText With 'The' -: %s\"%(line))\n",
+ "sys.stdout.write(\"\\nText Without 'The' -: \")\n",
+ "for l in range(0,j):\n",
+ " sys.stdout.write(\"%c\"%(line2[l]))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Text Below.Printf write data to the screen.\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Text With 'The' -: Printf write data to the screen.\n",
+ "Text Without 'The' -: Printf write data to screen."
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.10, Page number: 243<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Delete all the occurrences of vowels in a given text.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "j = 0\n",
+ "line = raw_input(\"Enter Text Below.\")\n",
+ "\n",
+ "#Calculation\n",
+ "for i in range(0,len(line)):\n",
+ " if line[i] == 'a' or line[i] == 'e' or line[i] == 'i' or line[i] == 'o' or line[i] == 'u':\n",
+ " continue\n",
+ " else:\n",
+ " line2[j] = line[i]\n",
+ " j += 1\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"Text With Vowels -: %s\"%(line))\n",
+ "sys.stdout.write(\"\\nText Without Vowels -: \")\n",
+ "for l in range(0,j): #There is no null terminating character in python, so we have to specify length\n",
+ " sys.stdout.write(\"%c\"%(line2[l])) \n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Text Below.Have a nice day.\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Text With Vowels -: Have a nice day.\n",
+ "Text Without Vowels -: Hv nc dy."
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.11, Page number: 244<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find the length of characteres in a given string including and excluding spaces.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "i = 0\n",
+ "len1 = 0 #Since len is a built in function in python, len1 is used\n",
+ "ex = 0\n",
+ "\n",
+ "text = raw_input(\"Enter Text Here : \")\n",
+ "\n",
+ "#Calculation\n",
+ "while i != len(text)-1: #There is no null terminating character in python.\n",
+ " if text[i] == ' ':\n",
+ " ex += 1\n",
+ " else:\n",
+ " len1 += 1\n",
+ " i += 1\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nLengh of String Including Spaces : %d\"%(len1+ex))\n",
+ "sys.stdout.write(\"\\nLengh of String Excluding Spaces : %d\"%(len1))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Text Here : Time is Money.\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Lengh of String Including Spaces : 13\n",
+ "Lengh of String Excluding Spaces : 11"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.12, Page number: 245<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the length of entered string and display it as per output shown.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "string = raw_input(\"Enter a String\")\n",
+ "ln = len(string)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nLength of Given String : %d\"%(ln))\n",
+ "sys.stdout.write(\"\\nSequence of Characters Displayed on Screen\")\n",
+ "sys.stdout.write(\"\\n======== == ========== ========= == ======\")\n",
+ "sys.stdout.write(\"\\n\\n\")\n",
+ "\n",
+ "for c in range(0,ln-2+1):\n",
+ " d = c + 1\n",
+ " sys.stdout.write(\"\\t%.*s\\n\"%(d,string))\n",
+ "\n",
+ "for c in range(ln,0-1,-1):\n",
+ " d = c + 1\n",
+ " sys.stdout.write(\"\\t%.*s\\n\"%(d,string))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a StringHAPPY\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Length of Given String : 5\n",
+ "Sequence of Characters Displayed on Screen\n",
+ "======== == ========== ========= == ======\n",
+ "\n",
+ "\tH\n",
+ "\tHA\n",
+ "\tHAP\n",
+ "\tHAPP\n",
+ "\tHAPPY\n",
+ "\tHAPPY\n",
+ "\tHAPP\n",
+ "\tHAP\n",
+ "\tHA\n",
+ "\tH\n"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.13, Page number: 247<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Copy contents of one string to another string by using strcpy()\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "ori = raw_input(\"Enter Your Name : \")\n",
+ "\n",
+ "#Process\n",
+ "dup = ori #In python, string values can be simply copied using assignment operator\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Original String : %s\"%(ori))\n",
+ "sys.stdout.write(\"\\nDuplicate String : %s\"%(dup))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Your Name : SACHIN\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Original String : SACHIN\n",
+ "Duplicate String : SACHIN"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.14, Page number: 247<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Copy contents of one string to another, without strcpy() function.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "ori = raw_input(\"Enter Your Name : \")\n",
+ "\n",
+ "#Calculation\n",
+ "dup = ori #In python, string values can be simply copied using assignment operator\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"Original String : %s\"%(ori))\n",
+ "sys.stdout.write(\"\\nDuplicate String : %s\"%(dup))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Your Name : SACHIN\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Original String : SACHIN\n",
+ "Duplicate String : SACHIN"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.15, Page number: 248<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Copy source string to destination string upto a specified length.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "str1 = raw_input(\"Enter Source String : \")\n",
+ "str2 = raw_input(\"Enter Destination String : \")\n",
+ "n = int(raw_input(\"Enter Number of Characters to Replace in Destination String :\"))\n",
+ "\n",
+ "#Calculation\n",
+ "str2 = str1[:n] + str2[n:] #Since python strings are not mutable, first and second array elements to be added to make a new one\n",
+ " \n",
+ "sys.stdout.write(\"Source String -: %s\"%(str1))\n",
+ "sys.stdout.write(\"\\nDestination String -: %s\"%(str2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Source String : wonderful\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Destination String : beautiful\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number of Characters to Replace in Destination String :6\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Source String -: wonderful\n",
+ "Destination String -: wonderful"
+ ]
+ }
+ ],
+ "prompt_number": 10
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.16, Page number: 249<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Compare the two string using stricmp() function. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "sr = raw_input(\"Enter String(1) :\")\n",
+ "tar = raw_input(\"Enter String(2) :\")\n",
+ "\n",
+ "diff = (sr == tar) #in python, relational operators can be used directly\n",
+ "\n",
+ "if diff == 0:\n",
+ " sys.stdout.write(\"The Two Strings are Identical.\")\n",
+ "else:\n",
+ " sys.stdout.write(\"The Tow Strings are Different\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter String(1) :HELLO\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter String(2) :hello\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Two Strings are Identical."
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.17, Page number: 250<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Perform following.\n",
+ "\n",
+ "# 1. Display the question \"What is the Unit of Traffic?\"\n",
+ "# 2. Accept the Answer.\n",
+ "# 3. If the answer is wrong (other than Earlang) display \"Try again!\" & continues to answer.\n",
+ "# 4. Otherwise, if it is correct \"Earlang\" display the message \"Answer is correct\".\n",
+ "# 5. If the user gives correct anser in first two attempts the program will terminate.\n",
+ "# 6. If the user fails to provide correct answer in three attempts the program itself gives the answer.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Calculation & Result\n",
+ "for i in range(0,3):\n",
+ " ans = raw_input(\"What is the Unit of Traffic ?\")\n",
+ " \n",
+ " if ans == \"Earlang\":\n",
+ " sys.stdout.write(\"\\nAnswer is Correct.\")\n",
+ " else:\n",
+ " if i < 3:\n",
+ " sys.stdout.write(\"\\nTry Again !\\n\")\n",
+ " \n",
+ "if i == 3:\n",
+ " sys.stdout.write(\"\\nUnit of Traffic is Earlang.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the Unit of Traffic ?Earlan\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Try Again !\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the Unit of Traffic ?Earlam\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Try Again !\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "What is the Unit of Traffic ?Earlang\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Answer is Correct."
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.18, Page number: 252<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Compare two strings upto specified length.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "sr = raw_input(\"Enter String(1):\")\n",
+ "tar = raw_input(\"Enter String(2):\")\n",
+ "n = int(raw_input(\"Enter Lenght upto which comparison is to be made\"))\n",
+ "\n",
+ "#Calculation & Result\n",
+ "diff = (sr == tar[:n])\n",
+ "\n",
+ "if diff == 0:\n",
+ " sys.stdout.write(\"The Two Strings are Identical upto %d characters.\"%(n))\n",
+ "else:\n",
+ " sys.stdout.write(\"The Two Strings are Different\")\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter String(1):HELLO\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter String(2):HE MAN\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Lenght upto which comparison is to be made2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Two Strings are Identical upto 2 characters."
+ ]
+ }
+ ],
+ "prompt_number": 14
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.19, Page number: 253<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Compare two strings and display the position in which it is different.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "diff = 0\n",
+ "sr = raw_input(\"Enter String(1) :\")\n",
+ "tar = raw_input(\"Enter String(2) :\")\n",
+ "\n",
+ "#Checking\n",
+ "for i in range(0,len(sr)):\n",
+ " if sr[i] != tar[i]:\n",
+ " sys.stdout.write(\"%c %c\\n\"%(sr[i],tar[i]))\n",
+ " diff += 1\n",
+ " \n",
+ "#Result\n",
+ "if len(sr) == len(tar) and diff == 0:\n",
+ " sys.stdout.write(\"\\nThe Two Strings are Identical\")\n",
+ "else:\n",
+ " sys.stdout.write(\"\\nThe Two Strings are Different at %d places.\"%(diff))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter String(1) :BEST LUCK\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter String(2) :GOOD LUCK\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "B G\n",
+ "E O\n",
+ "S O\n",
+ "T D\n",
+ "\n",
+ "The Two Strings are Different at 4 places."
+ ]
+ }
+ ],
+ "prompt_number": 15
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.20, Page number: 254<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Convert upper case string to lower case using strlwr().\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "upper = raw_input(\"Enter a string in Upper case :\")\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"After strlwr() : %s\"%(upper.lower()))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a string in Upper case :ABCDEFG\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "After strlwr() : abcdefg"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.21, Page number: 254<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Convert Lower case string to upper case using strupr()\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "upper = raw_input(\"Enter a string in Lower Case :\")\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"After strupr() : %s\"%(upper.upper()))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a string in Lower Case :abcdefg\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "After strupr() : ABCDEFG"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.22, Page number: 255<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the duplicate string using strdup() function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "text1 = raw_input(\"Enter Text : \")\n",
+ "\n",
+ "#Result\n",
+ "text2 = text1 #in python, a string can be duplicated by just using the assignment operator\n",
+ "\n",
+ "sys.stdout.write(\"Original String = %s\\nDuplicate String = %s\"%(text1,text2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Text : Today is a Good Day.\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Original String = Today is a Good Day.\n",
+ "Duplicate String = Today is a Good Day."
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.23, Page number: 256<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find first occurrence of a given character in a given string. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "string = raw_input(\"Enter Text Below :\")\n",
+ "ch = raw_input(\"Character to find :\")\n",
+ "\n",
+ "#Result\n",
+ "chp = string.count(ch)\n",
+ "if chp:\n",
+ " sys.stdout.write(\"Character %s found in string\"%(ch))\n",
+ "else:\n",
+ " sys.stdout.write(\"Character %s not found in string\"%(ch))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Text Below :Hello Begineers.\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Character to find :r\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Character r found in string"
+ ]
+ }
+ ],
+ "prompt_number": 19
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.24, Page number: 257<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find first occurrence of a given character in a given string and display the memory location. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "line1 = raw_input(\"Enter Text :\")\n",
+ "line2 = raw_input(\"Enter Character to find from the text : \")\n",
+ "\n",
+ "for i in range(0,len(line1)):\n",
+ " sys.stdout.write(\"%c %d\\n\"%(line1[i],id(line1[i])))\n",
+ "\n",
+ "chp = line1.count(line2)\n",
+ "if chp:\n",
+ " sys.stdout.write(\"\\nAddress of first %s returned by strchr() is %d\"%(line2,id(line1[chp])))\n",
+ "else:\n",
+ " sys.stdout.write(\"'%s' String is not present in Given String \"%(line2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Text :HELLO\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Character to find from the text : L\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "H 20382328\n",
+ "E 20384080\n",
+ "L 19678272\n",
+ "L 19678272\n",
+ "O 20198416\n",
+ "\n",
+ "Address of first L returned by strchr() is 19678272"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.25, Page number: 258<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find the occurrence of second string in the first string.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "line1 = raw_input(\"Enter Line1 :\")\n",
+ "line2 = raw_input(\"Enter Line2 :\")\n",
+ "\n",
+ "#Calculation & Result\n",
+ "chp = line1.count(line2)\n",
+ "\n",
+ "if chp:\n",
+ " sys.stdout.write(\"'%s' String is present in Given String.\"%(line2))\n",
+ "else:\n",
+ " sys.stdout.write(\"'%s' String is not present in Given String.\"%(line2))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Line1 :INDIA IS MY COUNTRY.\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Line2 :INDIA\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "'INDIA' String is present in Given String."
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.26, Page number: 259<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Append second string at the end of first string using strcat() function\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "text1 = raw_input(\"Enter Text1 :\")\n",
+ "text2 = raw_input(\"Enter Text2 :\")\n",
+ "\n",
+ "#Calculation and Result\n",
+ "text1 = text1 + \" \" + text2 #in python, '+' operator can also be used for string concatenation\n",
+ "\n",
+ "sys.stdout.write(\"%s\"%(text1))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Text1 :I Am\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Text2 :an Indian\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "I Am an Indian"
+ ]
+ }
+ ],
+ "prompt_number": 22
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.27, Page number: 259<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Concatenate two strings without use of standard functions.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "fname = raw_input(\"First Name :\")\n",
+ "sname = raw_input(\"Second Name :\")\n",
+ "lname = raw_input(\"Last Name :\")\n",
+ "\n",
+ "#Calculation\n",
+ "name = fname + \" \" + sname + \" \" + lname\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nComplete Name After Concatenation.\\n\")\n",
+ "sys.stdout.write(\"%s\"%(name))\n",
+ "\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "First Name :MOHAN\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Second Name :KARAMCHAND\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Last Name :GANDHI\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Complete Name After Concatenation.\n",
+ "MOHAN KARAMCHAND GANDHI"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.28, Page number: 261<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Append second string with specified (n) number of characters at the end of first string.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "text1 = raw_input(\"Enter Text1 :\")\n",
+ "text2 = raw_input(\"Enter Text2 :\")\n",
+ "n = int(raw_input(\"Enter Number of Characters to Add :\"))\n",
+ "\n",
+ "#Calculation & Result\n",
+ "text1 = text1 + \" \" + text2[:n]\n",
+ "\n",
+ "sys.stdout.write(\"%s\\n\"%(text1))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Text1 :MAY I\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Text2 :COME IN ?\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Number of Characters to Add :4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "MAY I COME\n"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.29, Page number: 261<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Reverse of the given string.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "text = raw_input(\"Enter String\")\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Reverse String\\n\")\n",
+ "text = text[::-1]\n",
+ "#This is extended slice syntax. It works by doing [begin:end:step] \n",
+ "#by leaving begin and end off and specifying a step of -1, it reverses a string.\n",
+ "\n",
+ "sys.stdout.write(\"%s\"%(text))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter StringABCDEFGHI\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Reverse String\n",
+ "IHGFEDCBA"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.30, Page number: 262<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Reverse of the given string.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "text = raw_input(\"Enter String\")\n",
+ "i = 0\n",
+ "\n",
+ "#Result\n",
+ "while i < len(text):\n",
+ " sys.stdout.write(\"\\n%c is stored at location %d\"%(text[i],id(text[i])))\n",
+ " i += 1\n",
+ " \n",
+ "sys.stdout.write(\"\\nReverse String :- \")\n",
+ "text = text[::-1]\n",
+ "#This is extended slice syntax. It works by doing [begin:end:step] \n",
+ "#by leaving begin and end off and specifying a step of -1, it reverses a string.\n",
+ "\n",
+ "sys.stdout.write(\"%s\"%(text))\n",
+ "\n",
+ "i = 0\n",
+ "while i < len(text):\n",
+ " sys.stdout.write(\"\\n%c is stored at location %d\"%(text[i],id(text[i])))\n",
+ " i += 1\n",
+ "\n",
+ "#Memory address differs in different systems"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter StringABC\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "A is stored at location 20383432\n",
+ "B is stored at location 20198992\n",
+ "C is stored at location 20199040\n",
+ "Reverse String :- CBA\n",
+ "C is stored at location 20199040\n",
+ "B is stored at location 20198992\n",
+ "A is stored at location 20383432"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.31, Page number: 263<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Replace (set) given string with given symbol. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "string = raw_input(\"Enter String :\")\n",
+ "symbol = raw_input(\"Enter Symbol for Replacement : \")\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Before strset(): %s\\n\"%(string))\n",
+ "string = symbol*len(string)\n",
+ "\n",
+ "sys.stdout.write(\"After strset() : %s\"%(string))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter String :LEARN C\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Symbol for Replacement : Y\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Before strset(): LEARN C\n",
+ "After strset() : YYYYYYY"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.32, Page number: 264<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Replace (set) given string with given symbol for given number of arguments.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "string = raw_input(\"Enter String :\")\n",
+ "symbol = raw_input(\"Enter Symbol for Replacement : \")\n",
+ "n = int(raw_input(\"How many String Character to be replaced.\"))\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Before strset() : %s\\n\"%(string))\n",
+ "\n",
+ "string = symbol * n + string[n:]\n",
+ "sys.stdout.write(\"After strset() : %s\\n\"%(string))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter String :ABCDEFGHIJ\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Symbol for Replacement : +\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "How many String Character to be replaced.4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Before strset() : ABCDEFGHIJ\n",
+ "After strset() : ++++EFGHIJ\n"
+ ]
+ }
+ ],
+ "prompt_number": 28
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.33, Page number: 265<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the position from which the two strings are different.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "stra = raw_input(\"First String : \")\n",
+ "strb = raw_input(\"Second String : \")\n",
+ "\n",
+ "#There is no built in function for python to check upto which position the strings are equal.\n",
+ "for length in range(min(len(stra), len(strb))):\n",
+ " if stra[length] != strb[length]:\n",
+ " break\n",
+ "\n",
+ "sys.stdout.write(\"After %d Characters there is no match.\"%(length))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "First String : GOOD MORNING\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Second String : GOOD BYE\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "After 5 Characters there is no match."
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.34, Page number: 266<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print given string from first occurrence of given character.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "text1 = raw_input(\"Enter String : \")\n",
+ "text2 = raw_input(\"Enter Character :\")\n",
+ "\n",
+ "for length in range(0,len(text1)):\n",
+ " if text1[length] == text2[0]:\n",
+ " break\n",
+ " \n",
+ "sys.stdout.write(\"String from given Character : %s\"%(text1[length:]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter String : INDIA IS GREAT\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Character :G\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "String from given Character : GREAT"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.35, Page number: 266<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Count a character that appears in a given text\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "i = 0\n",
+ "count = 0\n",
+ "text = raw_input(\"Type Text Below.\")\n",
+ "find = raw_input(\"Type a character to count : \")\n",
+ "\n",
+ "#Calculation\n",
+ "while i < len(text): #There is no null terminating character for python string\n",
+ " if text[i] == find:\n",
+ " count += 1\n",
+ " i += 1\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nCharacter (%s) found in Given String = %d Times.\"%(find,count))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Type Text Below.Programming\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Type a character to count : m\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Character (m) found in Given String = 2 Times."
+ ]
+ }
+ ],
+ "prompt_number": 32
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.36, Page number: 267<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Count the character 'm' in a given string.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "count = 0\n",
+ "text = raw_input(\"\") #it is easy to get string at once in python\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"%s\"%(text))\n",
+ "\n",
+ "for i in range(0,len(text)):\n",
+ " if text[i] == '\\n':\n",
+ " break\n",
+ " else:\n",
+ " if text[i] == 'm':\n",
+ " count += 1\n",
+ " \n",
+ "sys.stdout.write(\"\\n\\nCharacter 'm' Found in Text = %d times.\"%(count))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Programming is a skill.\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Programming is a skill.\n",
+ "\n",
+ "Character 'm' Found in Text = 2 times."
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.37, Page number: 268<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Count the characters 'm', 'r', and 'o' that appears in a string without using any functions\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "text = \"Programming is good habit\"\n",
+ "m = 0\n",
+ "o = 0\n",
+ "r = 0\n",
+ "\n",
+ "#Calculation\n",
+ "for i in range(0,len(text)):\n",
+ " if text[i] == 'm':\n",
+ " m += 1\n",
+ " if text[i] == 'r':\n",
+ " r += 1\n",
+ " if text[i] == 'o':\n",
+ " o += 1\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nCharacter 'm' Found in Text = %d times.\\n\"%(m))\n",
+ "sys.stdout.write(\"\\nCharacter 'r' Found in Text = %d times.\\n\"%(r))\n",
+ "sys.stdout.write(\"\\nCharacter 'o' Found in Text = %d times.\"%(o))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Character 'm' Found in Text = 2 times.\n",
+ "\n",
+ "Character 'r' Found in Text = 2 times.\n",
+ "\n",
+ "Character 'o' Found in Text = 3 times."
+ ]
+ }
+ ],
+ "prompt_number": 46
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.38, Page number: 269<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Copy contents of one string to another string\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "ori = raw_input(\"Enter Your Name :\")\n",
+ "\n",
+ "#Copying\n",
+ "#Since strings in python are immutable, individual character assignment is not possible.\n",
+ "#but assignment operator simply copies the entire string to another\n",
+ "\n",
+ "dup = ori\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Original String : %s\"%(ori))\n",
+ "sys.stdout.write(\"\\nDuplicate String : %s\"%(dup))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Your Name :SACHIN\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Original String : SACHIN\n",
+ "Duplicate String : SACHIN"
+ ]
+ }
+ ],
+ "prompt_number": 34
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.39, Page number: 270<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Palindrome or not.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "i = 0\n",
+ "str1 = raw_input(\"Enter the word : \") #Since str is a keyword in python, str1 is used\n",
+ "j = len(str1)-1\n",
+ "\n",
+ "#Calculation\n",
+ "while i < j:\n",
+ " if str1[i] == str1[j]:\n",
+ " test = 1\n",
+ " else:\n",
+ " test = 0\n",
+ " break\n",
+ " i += 1\n",
+ " j -= 1\n",
+ " \n",
+ "#Result\n",
+ "if test == 1:\n",
+ " sys.stdout.write(\"Word is palindrome.\")\n",
+ "else:\n",
+ " sys.stdout.write(\"\\nWord is not Palindrome.\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter the word : ABBA\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Word is palindrome."
+ ]
+ }
+ ],
+ "prompt_number": 35
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.40, Page number: 271<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Compare the string using strcmp() function and display their ASCII difference.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a1 = \"NAGPUR\"\n",
+ "a2 = \"NAGPUR\"\n",
+ "a3 = \"PANDHARPUR\"\n",
+ "a4 = \"KOLHAPUR\"\n",
+ "a5 = \"AURANGABAD\"\n",
+ "a6 = \"HYDERABAD\"\n",
+ "\n",
+ "#Calculation\n",
+ "#There is no built in function which returns the ascii value differece of two strings\n",
+ "#ord function gives the ascii value of a character\n",
+ "c1 = ord(a1[0]) - ord(a2[0])\n",
+ "c2 = ord(a3[0]) - ord(a4[0])\n",
+ "c3 = ord(a5[0]) - ord(a6[0])\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nAscii Difference between two strings\\n\")\n",
+ "sys.stdout.write(\"Difference between (%s %s) = %d\\n\"%(a1,a2,c1))\n",
+ "sys.stdout.write(\"Difference between (%s %s) = %d\\n\"%(a3,a4,c2))\n",
+ "sys.stdout.write(\"Difference between (%s %s) = %d\\n\"%(a5,a6,c3))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Ascii Difference between two strings\n",
+ "Difference between (NAGPUR NAGPUR) = 0\n",
+ "Difference between (PANDHARPUR KOLHAPUR) = 5\n",
+ "Difference between (AURANGABAD HYDERABAD) = -7\n"
+ ]
+ }
+ ],
+ "prompt_number": 53
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.41, Page number: 272<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Sort city names alphabetically.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "city = [['0' for i in range(5)]for i in range(20)]\n",
+ "sys.stdout.write(\"Enter Names of Cities. \")\n",
+ "for i in range(5):\n",
+ " city[i] = raw_input(\"\")\n",
+ " \n",
+ "#Sorting & Result\n",
+ "sys.stdout.write(\"Sorted List of Cities.\\n\\n\")\n",
+ "for i in range(65,122+1):\n",
+ " for j in range(0,5):\n",
+ " if ord(city[j][0]) == i:\n",
+ " sys.stdout.write(\"\\n%s\"%(city[j]))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Names of Cities. "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "MUMBAI\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "NANED\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "BANGLORE\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "KANPUR\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "INDORE\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sorted List of Cities.\n",
+ "\n",
+ "\n",
+ "BANGLORE\n",
+ "INDORE\n",
+ "KANPUR\n",
+ "MUMBAI\n",
+ "NANED"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.42, Page number: 273<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Sort city names alphabetically\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "city = [['0' for i in range(5)]for i in range(20)]\n",
+ "sys.stdout.write(\"Enter Names of Cities. \")\n",
+ "for i in range(5):\n",
+ " city[i] = raw_input(\"\")\n",
+ " \n",
+ "#Sorting & Result\n",
+ "sys.stdout.write(\"Sorted List of Cities.\\n\\n\")\n",
+ "for i in range(0,5):\n",
+ " for j in range(0,5):\n",
+ " if city[j-1] > city[j]:\n",
+ " temp = city[j-1]\n",
+ " city[j-1] = city[j]\n",
+ " city[j] = temp\n",
+ " \n",
+ "for i in range(0,5):\n",
+ " sys.stdout.write(\"\\n%s\"%(city[i]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Names of Cities. "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "MUMBAI\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "NANED\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "BANGLORE\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "KANPUR\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "INDORE\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Sorted List of Cities.\n",
+ "\n",
+ "\n",
+ "BANGLORE\n",
+ "INDORE\n",
+ "KANPUR\n",
+ "MUMBAI\n",
+ "NANED"
+ ]
+ }
+ ],
+ "prompt_number": 38
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.43, Page number: 274<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find number of words in a given statement.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "count = 1 #Counts the starting word\n",
+ "i = 0\n",
+ "text = raw_input(\"Enter The Line of Text\\nGive One Space After Each Word\")\n",
+ "\n",
+ "#Calculation\n",
+ "while i < len(text): #There is no null terminating character in python\n",
+ " if ord(text[i]) == 32:\n",
+ " count += 1\n",
+ " i += 1\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nThe Number of words in line = %d\"%(count))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter The Line of Text\n",
+ "Give One Space After Each WordRead Books\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The Number of words in line = 2"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.44, Page number: 275<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find number of words in a given statement.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "count = 0 \n",
+ "i = 0\n",
+ "text = raw_input(\"Enter Text Below :\")\n",
+ "\n",
+ "#Calculation\n",
+ "while i < len(text): #There is no null terminating character in python for strings\n",
+ " if ord(text[i]) >= 97 and ord(text[i]) <= 122 or ord(text[i]) >= 65 and ord(text[i]) <= 90:\n",
+ " i += 1\n",
+ " continue\n",
+ " if ord(text[i]) == 32:\n",
+ " count += 1\n",
+ " i += 1\n",
+ " continue\n",
+ "\n",
+ "if i == len(text):\n",
+ " count += 1\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"The Number of words in line = %d\"%(count))\n",
+ " "
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Text Below :Reading is a good Habit\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Number of words in line = 5"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 8.45, Page number: 276<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Sort the last name of mobile customers alphabetically.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "fname = [['0' for i in range(20)] for i in range(10)]\n",
+ "sname = [['0' for i in range(20)] for i in range(10)]\n",
+ "surname = [['0' for i in range(20)] for i in range(10)]\n",
+ "name = [['0' for i in range(20)] for i in range(20)]\n",
+ "mobile = [['0' for i in range(20)] for i in range(10)]\n",
+ "temp = ['0' for i in range(20)]\n",
+ "\n",
+ "sys.stdout.write(\"Enter First Name, Second Name, surname and Mobile Number \")\n",
+ "for i in range(0,5):\n",
+ " fname[i] = raw_input(\"\")\n",
+ " sname[i] = raw_input(\"\")\n",
+ " surname[i] = raw_input(\"\")\n",
+ " mobile[i] = raw_input(\"\")\n",
+ " \n",
+ " name[i] = surname[i] + \" \" \n",
+ " temp[0] = fname[i][0]\n",
+ " name[i] = name[i] + temp[0] + \".\"\n",
+ " temp[0] = sname[i][0]\n",
+ " name[i] = name[i] + temp[0]\n",
+ " \n",
+ "for i in range(0,5):\n",
+ " for j in range(1,5-i):\n",
+ " if name[j-1] > name[j]:\n",
+ " temp = name[j-1]\n",
+ " name[j-1] = name[j]\n",
+ " name[j] = temp\n",
+ " temp = mobile[j-1]\n",
+ " mobile[j-1] = mobile[j]\n",
+ " mobile[j] = temp\n",
+ " \n",
+ "sys.stdout.write(\"List of Customers in alphanetical Order.\")\n",
+ "for i in range(0,5):\n",
+ " sys.stdout.write(\"\\n%-20s\\t %-10s\\n\"%(name[i],mobile[i]))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter First Name, Second Name, surname and Mobile Number "
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "K\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "S\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "MORE\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "458454\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "J\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "M\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "CHATE\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "658963\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "M\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "M\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "GORE\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "660585\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "L\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "K\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "JAIN\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "547855\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "J\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "J\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "JOSHI\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "354258\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "List of Customers in alphanetical Order.\n",
+ "CHATE J.M \t 658963 \n",
+ "\n",
+ "GORE M.M \t 660585 \n",
+ "\n",
+ "JAIN L.K \t 547855 \n",
+ "\n",
+ "JOSHI J.J \t 354258 \n",
+ "\n",
+ "MORE K.S \t 458454 \n"
+ ]
+ }
+ ],
+ "prompt_number": 43
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Programming_in_C_using_ANSI_C/KamthaneChapter9.ipynb b/Programming_in_C_using_ANSI_C/KamthaneChapter9.ipynb new file mode 100755 index 00000000..4da93c8d --- /dev/null +++ b/Programming_in_C_using_ANSI_C/KamthaneChapter9.ipynb @@ -0,0 +1,1999 @@ +{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h1>Chapter 9: Pointers<h1>"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.1, Page number: 282<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the address of the variable\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "num = int(raw_input(\"Enter a Number = \"))\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Value of num = %d\\n\"%(num))\n",
+ "sys.stdout.write(\"Address of num = %d\\n\"%(id(num)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Number = 20\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of num = 20\n",
+ "Address of num = 19554932\n"
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.2, Page number: 283<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the addresses of different variables together with their values.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "c = raw_input(\"Enter alphabet\")\n",
+ "i = int(raw_input(\"Enter number\"))\n",
+ "f = float(raw_input(\"Enter float\"))\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nAddress of (c) %c = %d\"%(c,id(c)))\n",
+ "sys.stdout.write(\"\\nAddress of (i) %d = %d\"%(i,id(i)))\n",
+ "sys.stdout.write(\"\\nAddress of (f) %.2f = %d\"%(f,id(f)))\n",
+ "#Memory address differs in different systems\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter alphabetC\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter number20\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter float2.5\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Address of (c) C = 48769192\n",
+ "Address of (i) 20 = 19554932\n",
+ "Address of (f) 2.50 = 44777808"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.3, Page number: 284<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Show pointer of any data type that occupies same space\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Result\n",
+ "#Garbage collector module is used for python memory management\n",
+ "sys.stdout.write(\"char %d byte & its pointer %d bytes\\n\"%(sys.getsizeof(chr),sys.getsizeof(id(chr))))\n",
+ "sys.stdout.write(\"int %d byte & its pointer %d bytes\\n\"%(sys.getsizeof(int),sys.getsizeof(id(int))))\n",
+ "sys.stdout.write(\"float %d byte & its pointer %d bytes\\n\"%(sys.getsizeof(float),sys.getsizeof(id(float))))\n",
+ "\n",
+ "#value tagged method is used in python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "char 36 byte & its pointer 12 bytes\n",
+ "int 436 byte & its pointer 12 bytes\n",
+ "float 436 byte & its pointer 12 bytes\n"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.4, Page number: 284<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the value of variable and its location using pointer\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "#There is no pointer concept in python\n",
+ "v = 10\n",
+ "p = v\n",
+ "#In python, variables of same value are tagged together instead of storing the value in different locations\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nAddress of v = %u\"%(id(v)))\n",
+ "sys.stdout.write(\"\\nValue of v = %d\"%(p))\n",
+ "sys.stdout.write(\"\\nAddress of p = %d\"%(id(p)))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Address of v = 29808764\n",
+ "Value of v = 10\n",
+ "Address of p = 29808764"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.5, Page number: 285<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print the value of variable by different ways.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = int(raw_input(\"Enter Integer Value\"))\n",
+ "b = float(raw_input(\"Enter float Value\"))\n",
+ "\n",
+ "pa = id(a)\n",
+ "pb = id(b)\n",
+ "\n",
+ "#Result\n",
+ "#There is no pointer concept in python. content of memory location can't be accessed directly by user.\n",
+ "sys.stdout.write(\"\\nAddress of a = %u\"%(pa))\n",
+ "sys.stdout.write(\"\\nValue of a = %d\"%(a))\n",
+ "sys.stdout.write(\"\\nValue of a = %d\"%(a))\n",
+ "sys.stdout.write(\"\\nValue of a = %d\"%(a))\n",
+ "\n",
+ "sys.stdout.write(\"\\nAddress of b = %u\"%(pb))\n",
+ "sys.stdout.write(\"\\nValue of b = %.2f\"%(b))\n",
+ "sys.stdout.write(\"\\nValue of b = %.2f\"%(b))\n",
+ "sys.stdout.write(\"\\nValue of b = %.2f\"%(b))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Integer Value4\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter float Value2.2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Address of a = 19555124\n",
+ "Value of a = 4\n",
+ "Value of a = 4\n",
+ "Value of a = 4\n",
+ "Address of b = 44777792\n",
+ "Value of b = 2.20\n",
+ "Value of b = 2.20\n",
+ "Value of b = 2.20"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.6, Page number: 286<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print value of variable using different pointer notations.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "v = 10\n",
+ "p = id(v)\n",
+ "\n",
+ "#Result\n",
+ "#There is no pointer concept in python and can't access memory location directly by user\n",
+ "sys.stdout.write(\"\\nv = %d v = %d v = %d\"%(v,v,v))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "v = 10 v = 10 v = 10"
+ ]
+ }
+ ],
+ "prompt_number": 13
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.7, Page number: 287<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print element and its address using pointer\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "i = int(raw_input(\"Enter a number : \"))\n",
+ "k = id(i)\n",
+ "\n",
+ "#Result\n",
+ "#There is no pointer concept in python and can't access memory location directly by user\n",
+ "sys.stdout.write(\"\\nAddress of i is %u\"%(k))\n",
+ "sys.stdout.write(\"\\nValue of i is %d\"%(i))\n",
+ "#The memory address differs in different systems\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a number : 15\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Address of i is 19554992\n",
+ "Value of i is 15"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.8, Page number: 287<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Add two numbers through variables and their pointers\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = int(raw_input(\"Enter Two Numbers : \"))\n",
+ "b = int(raw_input(\"Enter Two Numbers : \"))\n",
+ "ap = a\n",
+ "bp = b\n",
+ "\n",
+ "#Calculation\n",
+ "c = a + b\n",
+ "d = ap + bp\n",
+ "\n",
+ "#Result\n",
+ "#There is no pointer concept in python and can't access memory location directly by user\n",
+ "sys.stdout.write(\"\\nSum of A & B Using Variable : %d\"%(c))\n",
+ "sys.stdout.write(\"\\nSum of A & B Using Pointer : %d\"%(d))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Two Numbers : 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Two Numbers : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Sum of A & B Using Variable : 12\n",
+ "Sum of A & B Using Pointer : 12"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.9, Page number: 288<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Assign pointer value to another variable\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = 5\n",
+ "c = id(a)\n",
+ "b = a\n",
+ "\n",
+ "#Result\n",
+ "#There is no pointer concept in python and can't access memory location directly by user\n",
+ "sys.stdout.write(\"\\nMemory location of 'a' = %u\"%(c))\n",
+ "sys.stdout.write(\"\\nThe value of a = %d & b = %d\"%(a,b))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Memory location of 'a' = 29808824\n",
+ "The value of a = 5 & b = 5"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.10, Page number: 289<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Assign value of 'b' to 'a' through pointers and add the values.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = int(raw_input(\"Enter Value of 'a' & 'b' : \"))\n",
+ "b = int(raw_input(\"Enter Value of 'a' & 'b' : \"))\n",
+ "pa = id(a)\n",
+ "pb = id(b)\n",
+ "\n",
+ "#Result\n",
+ "#There is no pointer concept in python and can't access memory location directly by user\n",
+ "sys.stdout.write(\"\\nValue of a = %d & b = %d\"%(a,b))\n",
+ "sys.stdout.write(\"\\nAddress of a = %u\"%(pa))\n",
+ "sys.stdout.write(\"\\nAddress of b = %u\"%(pb))\n",
+ "sys.stdout.write(\"\\n\\nAddition of 'a' & 'b' : %d\"%(a+b))\n",
+ "\n",
+ "a = b\n",
+ "pa = id(a)\n",
+ "#In python, variables of same value are tagged together instead of storing the value in different locations\n",
+ "\n",
+ "sys.stdout.write(\"\\n*pa = %d *pb = %d\"%(a,b))\n",
+ "sys.stdout.write(\"\\npa = %u pb = %u\"%(pa,pb))\n",
+ "sys.stdout.write(\"\\nAddition of *pa + *pb : %d\"%(a+b))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Value of 'a' & 'b' : 8\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Value of 'a' & 'b' : 4\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Value of a = 8 & b = 4\n",
+ "Address of a = 19555076\n",
+ "Address of b = 19555124\n",
+ "\n",
+ "Addition of 'a' & 'b' : 12\n",
+ "*pa = 4 *pb = 4\n",
+ "pa = 19555124 pb = 19555124\n",
+ "Addition of *pa + *pb : 8"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.11, Page number: 290<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#The effect of increment on pointer variables. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = int(raw_input(\"Enter integer Value\"))\n",
+ "y = raw_input(\"Enter Character Value\")\n",
+ "z = float(raw_input(\"Enter float Value\"))\n",
+ "\n",
+ "x1 = id(x)\n",
+ "y1 = id(y)\n",
+ "z1 = id(z)\n",
+ "\n",
+ "#Result\n",
+ "#There is no pointer concept in python and can't access memory location directly by user\n",
+ "\n",
+ "sys.stdout.write(\"\\nAddress of x = %u\\n\"%(x1))\n",
+ "sys.stdout.write(\"\\nAddress of y = %u\\n\"%(y1))\n",
+ "sys.stdout.write(\"\\nAddress of z = %u\\n\"%(z1))\n",
+ "\n",
+ "x1 += 1\n",
+ "y1 += 1\n",
+ "z1 += 1\n",
+ "#In python, variables of same value are tagged together instead of storing the value in different locations\n",
+ "\n",
+ "sys.stdout.write(\"\\nAfter Increment in Pointers\\n\")\n",
+ "sys.stdout.write(\"\\nNow Address of x = %u\\n\"%(x1))\n",
+ "sys.stdout.write(\"Now Address of y = %u\\n\"%(y1))\n",
+ "sys.stdout.write(\"Now Address of z = %u\\n\"%(z1))\n",
+ "\n",
+ "sys.stdout.write(\"\\nSize of Integer : %d\"%(sys.getsizeof(x)))\n",
+ "sys.stdout.write(\"\\nSize of Character : %d\"%(sys.getsizeof(y)))\n",
+ "sys.stdout.write(\"\\nSize of Float : %d\"%(sys.getsizeof(z)))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter integer Value2\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Character ValueA\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter float Value2.2\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Address of x = 19555148\n",
+ "\n",
+ "Address of y = 48769192\n",
+ "\n",
+ "Address of z = 44777728\n",
+ "\n",
+ "After Increment in Pointers\n",
+ "\n",
+ "Now Address of x = 19555149\n",
+ "Now Address of y = 48769193\n",
+ "Now Address of z = 44777729\n",
+ "\n",
+ "Size of Integer : 12\n",
+ "Size of Character : 22\n",
+ "Size of Float : 16"
+ ]
+ }
+ ],
+ "prompt_number": 8
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.12, Page number: 291<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#The effect of increased and decreased operator used as prefix and suffix with pointer variable.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "i = int(raw_input(\"Enter Value of i = \"))\n",
+ "ii = id(i)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Address of i = %u\\n\"%(ii))\n",
+ "#There is no increment or decrement operator and pointer concept in python\n",
+ "ii += 1\n",
+ "sys.stdout.write(\"Address of i = %u\\n\"%(ii))\n",
+ "sys.stdout.write(\"Address of i = %u\\n\"%(ii))\n",
+ "ii += 1\n",
+ "ii -= 1\n",
+ "sys.stdout.write(\"Address of i = %u\\n\"%(ii))\n",
+ "sys.stdout.write(\"Address of i = %u\\n\"%(ii))\n",
+ "ii -= 1\n",
+ "sys.stdout.write(\"Address of i = %u\\n\"%(ii))\n",
+ "\n",
+ "#Memory address differs in different systems"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Value of i = 8\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Address of i = 19555076\n",
+ "Address of i = 19555077\n",
+ "Address of i = 19555077\n",
+ "Address of i = 19555077\n",
+ "Address of i = 19555077\n",
+ "Address of i = 19555076\n"
+ ]
+ }
+ ],
+ "prompt_number": 9
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.13, Page number: 292<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Perform different arithmetic operations using pointers\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = 25\n",
+ "b = 10\n",
+ "p = id(a)\n",
+ "j = id(b)\n",
+ "\n",
+ "#Result\n",
+ "#There is no pointer concept in python and user can't access memory contents directly\n",
+ "sys.stdout.write(\"\\nAddition a + b = %d\"%(a+b))\n",
+ "sys.stdout.write(\"\\nSubtraction a - b = %d\"%(a-b))\n",
+ "sys.stdout.write(\"\\nProduct a * b = %d\"%(a*b))\n",
+ "sys.stdout.write(\"\\nDivision a / b = %d\"%(a/b))\n",
+ "sys.stdout.write(\"\\na Mod b = %d\"%(a%b))"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Addition a + b = 35\n",
+ "Subtraction a - b = 15\n",
+ "Product a * b = 250\n",
+ "Division a / b = 2\n",
+ "a Mod b = 5"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.14, Page number: 293<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Compare two pointers. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = 2\n",
+ "j = id(a)\n",
+ "k = id(a)\n",
+ "\n",
+ "#Result\n",
+ "if j == k:\n",
+ " sys.stdout.write(\"\\nThe Tow Pointers have the same address.\")\n",
+ "else:\n",
+ " sys.stdout.write(\"\\nThe Pointers have the different address.\")\n",
+ " \n",
+ "sys.stdout.write(\"\\n\\nAddress of a (j) = %u\"%(j))\n",
+ "sys.stdout.write(\"\\nAddress of a (k) = %u\"%(k))\n",
+ "#Memory address differs in different systems"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "The Tow Pointers have the same address.\n",
+ "\n",
+ "Address of a (j) = 30726364\n",
+ "Address of a (k) = 30726364"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.15, Page number: 294<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display elements of an array. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = [2,4,6,8,10]\n",
+ "k = 1\n",
+ "\n",
+ "#Result\n",
+ "while k <= 5:\n",
+ " sys.stdout.write(\"%3d\"%(x[k-1]))\n",
+ " k += 1\n",
+ " \n",
+ "#There is no pointer concept in python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 2 4 6 8 10"
+ ]
+ }
+ ],
+ "prompt_number": 7
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.16, Page number: 295<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display array element with their addresses using array name as a pointer\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = [2,4,6,8,10]\n",
+ "k = 0\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nElement No.\\tElement\\tAddress\")\n",
+ "\n",
+ "while k < 5:\n",
+ " sys.stdout.write(\"\\nx[%d] \\t%13d %10u\"%(k,x[k],id(x[k])))\n",
+ " k += 1\n",
+ " \n",
+ "#There is no pointer concept in python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Element No.\tElement\tAddress\n",
+ "x[0] \t 2 30726364\n",
+ "x[1] \t 4 30726340\n",
+ "x[2] \t 6 30726316\n",
+ "x[3] \t 8 30726292\n",
+ "x[4] \t 10 30726268"
+ ]
+ }
+ ],
+ "prompt_number": 11
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.17, Page number: 296<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display array elements with their addresses using array name as a pointer\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "num = [10,25,35,45]\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nElement\\t Address\\n\")\n",
+ "\n",
+ "for i in range(0,4):\n",
+ " sys.stdout.write(\"num[%d] = %d \"%(i,num[i]))\n",
+ " sys.stdout.write(\"%8u\\n\"%(id(num[i])))\n",
+ " \n",
+ "#There is no pointer concept in python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Element\t Address\n",
+ "num[0] = 10 30726268\n",
+ "num[1] = 25 30726088\n",
+ "num[2] = 35 30725968\n",
+ "num[3] = 45 30725848\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.18, Page number: 296<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Access elements of array through different ways using pointer\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "arr = [10,20,30,40,50]\n",
+ "p = 0\n",
+ "\n",
+ "#Result\n",
+ "for p in range(0,5):\n",
+ " sys.stdout.write(\"Value of arr[%d] = \"%(p))\n",
+ " sys.stdout.write(\"%d | \"%(arr[p]))\n",
+ " sys.stdout.write(\"%d | \"%(arr[p]))\n",
+ " sys.stdout.write(\"%d | \"%(arr[p]))\n",
+ " sys.stdout.write(\"%d | \"%(arr[p]))\n",
+ " sys.stdout.write(\"address of arr[%d] = %u\\n\"%(p,id(arr[p])))\n",
+ " \n",
+ "#There is no pointer concept in python\n",
+ "#Memory address differs in different systems\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Value of arr[0] = 10 | 10 | 10 | 10 | address of arr[0] = 30726268\n",
+ "Value of arr[1] = 20 | 20 | 20 | 20 | address of arr[1] = 30726148\n",
+ "Value of arr[2] = 30 | 30 | 30 | 30 | address of arr[2] = 30726028\n",
+ "Value of arr[3] = 40 | 40 | 40 | 40 | address of arr[3] = 30725908\n",
+ "Value of arr[4] = 50 | 50 | 50 | 50 | address of arr[4] = 30725788\n"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.19, Page number: 297<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Find sum of all the elements of an array.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "sum1 = 0 #Since sum is a built-in function in python, sum1 is used\n",
+ "i = 0\n",
+ "a = [1,2,3,4,5]\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Elements Values Address\\n\\n\")\n",
+ "\n",
+ "while i < 5:\n",
+ " sys.stdout.write(\"a[%d]\\t %5d\\t %8u\\n\"%(i,a[i],id(a[i])))\n",
+ " sum1 = sum1 + a[i]\n",
+ " i += 1\n",
+ " \n",
+ "#There is no pointer concept in python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Elements Values Address\n",
+ "\n",
+ "a[0]\t 1\t 30726376\n",
+ "a[1]\t 2\t 30726364\n",
+ "a[2]\t 3\t 30726352\n",
+ "a[3]\t 4\t 30726340\n",
+ "a[4]\t 5\t 30726328\n"
+ ]
+ }
+ ],
+ "prompt_number": 20
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.20, Page number: 298<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Sum of squares and cubes of array elements using pointer\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "b = [1,2,3,4,5]\n",
+ "sumsq = 0\n",
+ "sumc = 0\n",
+ "\n",
+ "#Result\n",
+ "for j in range(0,5):\n",
+ " sumsq = sumsq + pow(b[j],2)\n",
+ " sumc = sumc + pow(b[j],3)\n",
+ " \n",
+ "sys.stdout.write(\"\\nSum of Squares of array elements : %d\"%(sumsq))\n",
+ "sys.stdout.write(\"\\nSum of Cubes of array elements : %d\"%(sumc))\n",
+ "\n",
+ "#There is no pointer concept in python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Sum of Squares of array elements : 55\n",
+ "Sum of Cubes of array elements : 225"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.21, Page number: 299<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Copy element of one array to another array using pointers.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "so = [10,20,30,40,50]\n",
+ "ds = [0 for i in range(0,5)]\n",
+ "\n",
+ "#Copying\n",
+ "for i in range(0,5):\n",
+ " ds[i] = so[i]\n",
+ " \n",
+ "sys.stdout.write(\"Original Array Duplicated Array\")\n",
+ "\n",
+ "for i in range(0,5):\n",
+ " sys.stdout.write(\"\\n\\t%d\\t\\t%d\"%(so[i],ds[i]))\n",
+ " \n",
+ "#There is no pointer concept in python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Original Array Duplicated Array\n",
+ "\t10\t\t10\n",
+ "\t20\t\t20\n",
+ "\t30\t\t30\n",
+ "\t40\t\t40\n",
+ "\t50\t\t50"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.22, Page number: 299<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Copy one array into another array. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "arr1 = [15,25,35,45,55]\n",
+ "arr2 = [0 for i in range(0,5)]\n",
+ "j = 4\n",
+ "\n",
+ "#Copying & Result\n",
+ "sys.stdout.write(\"\\nOriginal Array Duplicate Array\")\n",
+ "for i in range(0,5):\n",
+ " arr2[i] = arr1[j]\n",
+ " j -= 1\n",
+ " sys.stdout.write(\"\\n\\t%d\\t\\t%d\"%(arr1[i],arr2[i]))\n",
+ " \n",
+ "#There is no pointer concept in python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Original Array Duplicate Array\n",
+ "\t15\t\t55\n",
+ "\t25\t\t45\n",
+ "\t35\t\t35\n",
+ "\t45\t\t25\n",
+ "\t55\t\t15"
+ ]
+ }
+ ],
+ "prompt_number": 24
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.23, Page number: 300<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display array elements and their address using pointers\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = [[1,2,3],[4,5,6],[7,8,9]]\n",
+ "j = 1\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\tElements of An Array with their addresses\\n\\n\")\n",
+ "\n",
+ "p = id(a[0][0])\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " for j in range(0,3):\n",
+ " sys.stdout.write(\"%5d [%5u]\"%(a[i][j],id(a[i][j])))\n",
+ " sys.stdout.write(\"\\n\")\n",
+ " \n",
+ "#There is no pointer concept in python\n",
+ "#Memory address differs in different systems\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\tElements of An Array with their addresses\n",
+ "\n",
+ " 1 [30726376] 2 [30726364] 3 [30726352]\n",
+ " 4 [30726340] 5 [30726328] 6 [30726316]\n",
+ " 7 [30726304] 8 [30726292] 9 [30726280]\n"
+ ]
+ }
+ ],
+ "prompt_number": 25
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.24, Page number: 301<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display array elements and their address. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = [[1,2,3],[4,5,6],[7,8,9]]\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nElements of An Array with their addresses.\\n\\n\")\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " for j in range(0,3):\n",
+ " sys.stdout.write(\"%5d [%5u]\"%(a[i][j],id(a[i][j])))\n",
+ " sys.stdout.write(\"\\n\")\n",
+ " \n",
+ "#There is no pointer concept in python\n",
+ "#Memory address differs in different systems\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Elements of An Array with their addresses.\n",
+ "\n",
+ " 1 [30726376] 2 [30726364] 3 [30726352]\n",
+ " 4 [30726340] 5 [30726328] 6 [30726316]\n",
+ " 7 [30726304] 8 [30726292] 9 [30726280]\n"
+ ]
+ }
+ ],
+ "prompt_number": 26
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.25, Page number: 302<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Store addresses of different elements of an array using array of pointers\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "arrl = [5,10,15]\n",
+ "arrp = [0 for i in range(0,3)]\n",
+ "\n",
+ "for i in range(0,3):\n",
+ " arrp[i] = id(arrl[i])\n",
+ " \n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nAddress \\tElement\\n\")\n",
+ "\n",
+ "for k in range(0,3):\n",
+ " sys.stdout.write(\"%u\"%(arrp[k]))\n",
+ " sys.stdout.write(\"\\t%7d\\n\"%(arrl[k]))\n",
+ " \n",
+ "#There is no pointer concept in python\n",
+ "#Memory address differs in different systems\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Address \tElement\n",
+ "30726328\t 5\n",
+ "30726268\t 10\n",
+ "30726208\t 15\n"
+ ]
+ }
+ ],
+ "prompt_number": 29
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.26, Page number: 303<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display address of elements and pointers\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = [0,1,2,3,4]\n",
+ "p = [0 for i in range(0,5)]\n",
+ "\n",
+ "for i in range(0,5):\n",
+ " p[i] = id(a[i])\n",
+ " \n",
+ "#Result\n",
+ "for i in range(0,5):\n",
+ " sys.stdout.write(\"\\n%d at location\"%(a[i]))\n",
+ " sys.stdout.write(\"\\t%u at location\"%(id(a[i])))\n",
+ " sys.stdout.write(\" %u\"%(id(p[i])))\n",
+ " \n",
+ "#There is no pointer concept in python\n",
+ "#Memory address differs in different systems\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "0 at location\t30726388 at location 52456564\n",
+ "1 at location\t30726376 at location 52456360\n",
+ "2 at location\t30726364 at location 52456456\n",
+ "3 at location\t30726352 at location 52456420\n",
+ "4 at location\t30726340 at location 52456468"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.27, Page number: 304<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print value of a variable through pointer and pointer to pointer\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = 2\n",
+ "p = id(a)\n",
+ "q = id(p)\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\n Value of a = %d Address of a = %u\"%(a,id(a)))\n",
+ "sys.stdout.write(\"\\nThrough *p Value of a = %d Address of a = %u\"%(a,p))\n",
+ "sys.stdout.write(\"\\nThrough **q Vallue of a = %d Address of a = %d\"%(a,p))\n",
+ "\n",
+ "#There is no pointer concept in python\n",
+ "#Memory address differs in different systems\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ " Value of a = 2 Address of a = 30726364\n",
+ "Through *p Value of a = 2 Address of a = 30726364\n",
+ "Through **q Vallue of a = 2 Address of a = 30726364"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.28, Page number: 305<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Different levels of array of pointer to pointer and display the elements\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "a = [1,2,3]\n",
+ "b = [0 for i in range(0,3)]\n",
+ "c = [0 for i in range(0,3)]\n",
+ "d = [0 for i in range(0,3)]\n",
+ "e = [0 for i in range(0,3)]\n",
+ "f = [0 for i in range(0,3)]\n",
+ "\n",
+ "for k in range(0,3):\n",
+ " b[k] = id(a[k])\n",
+ " c[k] = id(b[k])\n",
+ " d[k] = id(c[k])\n",
+ " e[k] = id(d[k])\n",
+ " f[k] = id(e[k])\n",
+ " \n",
+ "#Result\n",
+ "for k in range(0,3):\n",
+ " sys.stdout.write(\"%3d\"%(a[k]))\n",
+ " sys.stdout.write(\"%3d\"%(a[k]))\n",
+ " sys.stdout.write(\"%3d\"%(a[k]))\n",
+ " sys.stdout.write(\"%3d\"%(a[k]))\n",
+ " sys.stdout.write(\"%3d\\n\"%(a[k]))\n",
+ " \n",
+ "#There is no pointer concept in python\n",
+ "#Memory address differs in different systems\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ " 1 1 1 1 1\n",
+ " 2 2 2 2 2\n",
+ " 3 3 3 3 3\n"
+ ]
+ }
+ ],
+ "prompt_number": 36
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.29, Page number: 306<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display string using character pointer\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "name = ['K','U','M','A','R']\n",
+ "ch = id(name)\n",
+ "i = 0\n",
+ "\n",
+ "#Result\n",
+ "while i < len(name): #There is no null terminating character in python string\n",
+ " sys.stdout.write(\"%c\"%(name[i]))\n",
+ " i += 1\n",
+ " \n",
+ "#There is no pointer concept in python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "KUMAR"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.30, Page number: 307<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Length of a given string including and excluding spaces using pointers\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "p = 0\n",
+ "q = 0\n",
+ "s = 0\n",
+ "str1 = ['P','O','I','N','T','E','R','S',' ','A','R','E',' ','E','A','S','Y']\n",
+ "\n",
+ "#Result\n",
+ "while s < len(str1): #There is no null termination character for python string\n",
+ " sys.stdout.write(\"%c\"%(str1[s]))\n",
+ " p += 1\n",
+ " if ord(str1[s]) == 32:\n",
+ " q += 1\n",
+ " s += 1\n",
+ "\n",
+ "sys.stdout.write(\"\\nLength of String including spaces : %d\"%(p))\n",
+ "sys.stdout.write(\"\\nLength of String excluding spaces : %d\"%(p-q))\n",
+ "\n",
+ "#There is no pointer concept in python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "POINTERS ARE EASY\n",
+ "Length of String including spaces : 17\n",
+ "Length of String excluding spaces : 15"
+ ]
+ }
+ ],
+ "prompt_number": 40
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.31, Page number: 308<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Interchange elements of character array using pointer\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "names = [\"kapil\",\"manoj\",\"amit\",\"amol\",\"pavan\",\"mahesh\"]\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"Original : %s %s\"%(names[3],names[4]))\n",
+ "\n",
+ "tmp = names[3]\n",
+ "names[3] = names[4]\n",
+ "names[4] = tmp\n",
+ "\n",
+ "sys.stdout.write(\"\\nNew : %s %s\"%(names[3],names[4]))\n",
+ "\n",
+ "#There is no pointer concept in python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Original : amol pavan\n",
+ "New : pavan amol"
+ ]
+ }
+ ],
+ "prompt_number": 41
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.32, Page number: 308<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#String comparison.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "c = 0\n",
+ "str1 = raw_input(\"Enter First String : \")\n",
+ "str2 = raw_input(\"Enter Second String : \")\n",
+ "a = 0\n",
+ "l = 0\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\nSimilar Characters Found in Both String\")\n",
+ "\n",
+ "while a < len(str1):\n",
+ " if str1[a] == str2[a]:\n",
+ " sys.stdout.write(\"\\n\\t%c\\t%c\"%(str1[a],str2[a]))\n",
+ " l += 1\n",
+ " else:\n",
+ " c += 1\n",
+ " a += 1\n",
+ " \n",
+ "if c == 0:\n",
+ " sys.stdout.write(\"\\nThe Strings are Identical\")\n",
+ "else:\n",
+ " sys.stdout.write(\"\\nThe Strings are different at %d places.\"%(c))\n",
+ " sys.stdout.write(\"\\nThe String Characters are similar at %d places.\"%(l))\n",
+ " \n",
+ "#There is no pointer concept in python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter First String : SUNDAY\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Second String : MONDAY\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "Similar Characters Found in Both String\n",
+ "\tN\tN\n",
+ "\tD\tD\n",
+ "\tA\tA\n",
+ "\tY\tY\n",
+ "The Strings are different at 2 places.\n",
+ "The String Characters are similar at 4 places."
+ ]
+ }
+ ],
+ "prompt_number": 1
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.33, Page number: 310<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Compare three characters using pointers.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "x = raw_input(\"Enter Three Characters\")\n",
+ "y = raw_input(\"Enter Three Characters\")\n",
+ "z = raw_input(\"Enter Three Characters\")\n",
+ "\n",
+ "stat = 0\n",
+ "\n",
+ "stat = y > x\n",
+ "if x == y:\n",
+ " sys.stdout.write(\"\\n1st and 2nd Character are same\\n\")\n",
+ "else:\n",
+ " if stat < 0:\n",
+ " sys.stdout.write(\"\\n2nd Character appears after the 1st Character in Alphabetic\\n\")\n",
+ " else:\n",
+ " sys.stdout.write(\"2nd Character appears before the first Character in Alphabetic\\n\")\n",
+ " \n",
+ "stat = y > z\n",
+ "\n",
+ "if y == z:\n",
+ " sys.stdout.write(\"\\n2nd and 3rd Character are same.\")\n",
+ "else:\n",
+ " if stat > 0:\n",
+ " sys.stdout.write(\"\\n2nd Character appears after the 3rd Character in Alphabetic\")\n",
+ " else:\n",
+ " sys.stdout.write(\"\\n2nd Character appears before the 3rd Character in Alphabetic\")"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three CharactersC\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three CharactersC\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter Three CharactersA\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "1st and 2nd Character are same\n",
+ "\n",
+ "2nd Character appears after the 3rd Character in Alphabetic"
+ ]
+ }
+ ],
+ "prompt_number": 2
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.34, Page number: 311<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Compare two strings irrespective of case. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "buf1 = \"computer\"\n",
+ "buf2 = \"computer\"\n",
+ "\n",
+ "#Comparison\n",
+ "stat = buf1 == buf2\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"The Characters upto 4th position are \")\n",
+ "if stat == 0:\n",
+ " sys.stdout.write(\"not \")\n",
+ "sys.stdout.write(\"same\")\n",
+ "\n",
+ "#There is no pointer concept in python and memicmp() function"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The Characters upto 4th position are same"
+ ]
+ }
+ ],
+ "prompt_number": 6
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.35, Page number: 311<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Print the string upto the first occurrence of a character\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "\n",
+ "src = raw_input(\"Enter a String : \")\n",
+ "f = raw_input(\"Enter a Character to find in the text : \")\n",
+ "dest = ['0' for i in range(0,len(src))]\n",
+ "ptr = 0\n",
+ "\n",
+ "while ptr < len(src):\n",
+ " if src[ptr] == f:\n",
+ " dest[ptr] = src[ptr]\n",
+ " break\n",
+ " else:\n",
+ " dest[ptr] = src[ptr]\n",
+ " ptr += 1\n",
+ "\n",
+ "if ptr == len(src):\n",
+ " sys.stdout.write(\"The character wasn't found\\n\")\n",
+ "else:\n",
+ " sys.stdout.write(\"String upto that Character : %s\"%(dest[0:ptr+1]))\n",
+ " \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a String : FUNCTIONS\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Character to find in the text : T\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "String upto that Character : ['F', 'U', 'N', 'C', 'T']"
+ ]
+ }
+ ],
+ "prompt_number": 3
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.36, Page number: 312<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Replace the contents of second string with the first string. \n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "src = raw_input(\"Enter a Source String : \")\n",
+ "dest = raw_input(\"Enter a Destination String :\")\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"\\n\\nDestination before memcpy : %s\\n\"%(dest))\n",
+ "dest = src[:len(src)] + dest[len(src):]\n",
+ "\n",
+ "sys.stdout.write(\"Destination after memcpy : %s\\n\"%(dest))\n",
+ "\n",
+ "#There is no pointer concept in python and memcpy function"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Source String : Tomorrow\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Enter a Destination String :Today is Sunday\n"
+ ]
+ },
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "\n",
+ "Destination before memcpy : Today is Sunday\n",
+ "Destination after memcpy : Tomorrowis Sunday\n"
+ ]
+ }
+ ],
+ "prompt_number": 5
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.37, Page number: 313<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Display the string through their pointer\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization\n",
+ "c = \"Central Processing Unit\"\n",
+ "m = \"Math Co- Processor\"\n",
+ "\n",
+ "#Result\n",
+ "sys.stdout.write(\"'c' is pointing the string '%s'\\n\"%(c))\n",
+ "sys.stdout.write(\"'m' is pointing the string '%s'\\n\"%(m))\n",
+ "\n",
+ "#There is no pointer concept in python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "'c' is pointing the string 'Central Processing Unit'\n",
+ "'m' is pointing the string 'Math Co- Processor'\n"
+ ]
+ }
+ ],
+ "prompt_number": 16
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "<h3>Example 9.38, Page number: 314<h3>"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Use void pointer to display the value of different variables.\n",
+ "\n",
+ "import sys\n",
+ "\n",
+ "#Variable Initialization & Result\n",
+ "pt = 12\n",
+ "sys.stdout.write(\"\\nP = %d\"%(pt))\n",
+ "pt = 5.4\n",
+ "sys.stdout.write(\"\\nR = %.1f\"%(pt))\n",
+ "pt = 'S'\n",
+ "sys.stdout.write(\"\\nC = %c\"%(pt))\n",
+ "\n",
+ "#There is no pointer concept in python"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "\n",
+ "P = 12\n",
+ "R = 5.4\n",
+ "C = S"
+ ]
+ }
+ ],
+ "prompt_number": 18
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [],
+ "language": "python",
+ "metadata": {},
+ "outputs": []
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+}
\ No newline at end of file diff --git a/Programming_in_C_using_ANSI_C/README.txt b/Programming_in_C_using_ANSI_C/README.txt new file mode 100755 index 00000000..e5dfcad4 --- /dev/null +++ b/Programming_in_C_using_ANSI_C/README.txt @@ -0,0 +1,10 @@ +Contributed By: Chithira G +Course: me +College/Institute/Organization: Lourdes Matha College of Science and Technology +Department/Designation: Computer Science +Book Title: Programming in C using ANSI C +Author: Ashok N Kamthane +Publisher: Pearson Education +Year of publication: 2006 +Isbn: 8131704378, 9788131704370 +Edition: 3
\ No newline at end of file diff --git a/Programming_in_C_using_ANSI_C/screenshots/screenshot1.png b/Programming_in_C_using_ANSI_C/screenshots/screenshot1.png Binary files differnew file mode 100755 index 00000000..61fbfcd0 --- /dev/null +++ b/Programming_in_C_using_ANSI_C/screenshots/screenshot1.png diff --git a/Programming_in_C_using_ANSI_C/screenshots/screenshot1_1.png b/Programming_in_C_using_ANSI_C/screenshots/screenshot1_1.png Binary files differnew file mode 100755 index 00000000..61fbfcd0 --- /dev/null +++ b/Programming_in_C_using_ANSI_C/screenshots/screenshot1_1.png diff --git a/Programming_in_C_using_ANSI_C/screenshots/screenshot2.png b/Programming_in_C_using_ANSI_C/screenshots/screenshot2.png Binary files differnew file mode 100755 index 00000000..df49d844 --- /dev/null +++ b/Programming_in_C_using_ANSI_C/screenshots/screenshot2.png diff --git a/Programming_in_C_using_ANSI_C/screenshots/screenshot2_1.png b/Programming_in_C_using_ANSI_C/screenshots/screenshot2_1.png Binary files differnew file mode 100755 index 00000000..df49d844 --- /dev/null +++ b/Programming_in_C_using_ANSI_C/screenshots/screenshot2_1.png diff --git a/Programming_in_C_using_ANSI_C/screenshots/screenshot3.png b/Programming_in_C_using_ANSI_C/screenshots/screenshot3.png Binary files differnew file mode 100755 index 00000000..42d9aec9 --- /dev/null +++ b/Programming_in_C_using_ANSI_C/screenshots/screenshot3.png diff --git a/Programming_in_C_using_ANSI_C/screenshots/screenshot3_1.png b/Programming_in_C_using_ANSI_C/screenshots/screenshot3_1.png Binary files differnew file mode 100755 index 00000000..42d9aec9 --- /dev/null +++ b/Programming_in_C_using_ANSI_C/screenshots/screenshot3_1.png |