{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Reinforce Learning and Q-learning" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import gym\n", "import numpy as np\n", "import random\n", "import matplotlib.pyplot as plt \n", "import numpy as np\n", "import tensorflow as tf \n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[2017-10-17 14:20:45,599] Making new env: FrozenLake-v0\n" ] } ], "source": [ "env = gym.make('FrozenLake-v0')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#Set learning parameters\n", "lr = .8\n", "y = .95\n", "num_episodes = 1000\n", "#Inizialize Q_table\n", "Q = np.zeros([env.observation_space.n, env.action_space.n])" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Discrete(16)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "env.action_space\n", "env.observation_space" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#create lists to contain total reward and steps per episode\n", "reward_List = []\n", "for i in range(num_episodes):\n", " #Reset environment and get first new observation\n", " s = env.reset()\n", " rAll = 0\n", " d = False\n", " j = 0\n", " while j < 99:\n", " j+=1\n", " #Choose an action by greedily picking from Q table\n", " a = np.argmax(Q[s,:] + np.random.randn(1,env.action_space.n)*(1./(i+1)))\n", " s1,r,d,_ = env.step(a)\n", " Q[s,a] = Q[s,a] + lr*(r + y*np.max(Q[s1,:]) - Q[s,a])\n", " rAll += r\n", " s = s1\n", " if d == True:\n", " break\n", " reward_List.append(rAll)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Score over time : 0.0\n" ] } ], "source": [ "print (\"Score over time : {}\".format(sum(reward_List)/num_episodes))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 7.21023531e-02 7.78525272e-03 4.04868733e-03 6.55108602e-03]\n", " [ 3.94300554e-04 1.68872863e-03 2.20284708e-03 1.01359095e-01]\n", " [ 2.13393014e-03 4.89684343e-02 4.45527980e-03 6.65123797e-03]\n", " [ 1.00771008e-03 1.06444741e-03 0.00000000e+00 4.42760714e-02]\n", " [ 1.27276264e-01 1.68941601e-03 7.76118615e-04 0.00000000e+00]\n", " [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]\n", " [ 3.79552172e-04 1.03431669e-04 1.92160511e-03 1.61772391e-06]\n", " [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]\n", " [ 4.20340008e-04 2.86786392e-03 6.67692920e-05 3.30674083e-01]\n", " [ 0.00000000e+00 4.62710960e-01 0.00000000e+00 0.00000000e+00]\n", " [ 4.32052913e-01 1.63372171e-04 1.85909072e-04 1.43521924e-03]\n", " [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]\n", " [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]\n", " [ 0.00000000e+00 0.00000000e+00 5.82585501e-01 0.00000000e+00]\n", " [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 9.31273396e-01]\n", " [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]]\n" ] } ], "source": [ "print (Q)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(16, 4)" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Q.shape" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nrkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.imshow(Q, cmap= 'hot', interpolation='nearest')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Up)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Left)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Right)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n", " (Down)\n", "SFFF\n", "FHFH\n", "FFFH\n", "HFF\u001b[41mG\u001b[0m\n" ] } ], "source": [ "for _ in range(1000):\n", " env.render()\n", " env.step(env.action_space.sample())" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# The Q-Network Approach\n", "##Implementing the network itself" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "tf.reset_default_graph()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "16" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "env.action_space.n\n", "env.observation_space.n" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#INPUTS are dimensionated with OBSERVATIONS\n", "#WEIGHTS are dimensionated with Q-MATRIX \n", "\n", "#These lines establish the feed-foward part of the network used to choose actions \n", "inputs1 = tf.placeholder(shape=[1,16], dtype=tf.float32)\n", "W = tf.Variable(tf.random_uniform([16,4],0,0.01))\n", "Qout = tf.matmul(inputs1,W)\n", "predict = tf.argmax(Qout,1)\n", "\n", "#Calculate the loss by taking the sum of squares difference between the\n", "#target and prediction Q values.\n", "nextQ = tf.placeholder(shape=[1,4],dtype=tf.float32)\n", "loss = tf.reduce_sum(tf.square(nextQ - Qout))\n", "trainer = tf.train.GradientDescentOptimizer(learning_rate=0.1)\n", "updateModel = trainer.minimize(loss)\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Training the network" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "WARNING:tensorflow:From /usr/local/lib/python3.6/site-packages/tensorflow/python/util/tf_should_use.py:175: initialize_all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.\n", "Instructions for updating:\n", "Use `tf.global_variables_initializer` instead.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "[2017-10-17 14:33:43,681] From /usr/local/lib/python3.6/site-packages/tensorflow/python/util/tf_should_use.py:175: initialize_all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.\n", "Instructions for updating:\n", "Use `tf.global_variables_initializer` instead.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Percent of succesful episodes: 0.0%\n" ] } ], "source": [ "init = tf.initialize_all_variables()\n", "#Set learning parameters\n", "y = .79\n", "e = 0.2\n", "num_episodes = 1000\n", "\n", "#create lists to contain total reward and steps per episode \n", "jList = []\n", "rList = []\n", "\n", "with tf.Session() as sess:\n", " sess.run(init)\n", " for i in range(num_episodes):\n", " s = env.reset()\n", " rAll = 0\n", " d = False\n", " j = 0\n", " #The Q-Network\n", " while j < 99:\n", " j+=1\n", " a,allQ = sess.run([predict,Qout],feed_dict={inputs1:np.identity(16)[s:s+1]})\n", " if np.random.rand(1) < e:\n", " a[0] = env.action_space.sample()\n", " s1,r,d,_ = env.step(a[0])\n", " #Obtain the Q' values by feeding the new state through our network\n", " Q1 = sess.run(Qout,feed_dict={inputs1:np.identity(16)[s1:s1+1]})\n", " #Obtain maxQ' and set our target value for chosen action.\n", " maxQ1 = np.max(Q1)\n", " targetQ = allQ\n", " targetQ[0,a[0]] = r + y*maxQ1\n", " #Train our network using target and predicted Q values\n", " _,W1 = sess.run([updateModel,W],feed_dict={inputs1:np.identity(16)[s:s+1],nextQ:targetQ})\n", " rAll += r\n", " s = s1\n", " if d == True:\n", " #Reduce chance of random action as we train the model.\n", " e = 1./((i/50) + 10)\n", " break\n", " jList.append(j)\n", " rList.append(rAll)\n", "print (\"Percent of succesful episodes: {}\".format(sum(rList)/num_episodes) + \"%\")" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(rList)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(jList)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "## In this case, Q-table is more efficient than q-network" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.4" } }, "nbformat": 4, "nbformat_minor": 2 }