--- /dev/null
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 132,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "import itertools\n",
+ "import functools\n",
+ "import collections\n",
+ "import random\n",
+ "from IPython.display import HTML, display"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "INITIAL_BEAD_COUNT = 3"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def xo_count(board):\n",
+ " xs = 0\n",
+ " os = 0\n",
+ " for c in board:\n",
+ " if c == 'x':\n",
+ " xs += 1\n",
+ " elif c == 'o':\n",
+ " os += 1\n",
+ " return xs, os"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 195,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def valid_board(board):\n",
+ " xs, os = xo_count(board)\n",
+ " return (xs - os) == 0 or (xs - os) == 1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def empty_board():\n",
+ " return tuple('.' * 9)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "('.', '.', '.', '.', '.', '.', '.', '.', '.')"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "empty_board()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def all_boards():\n",
+ " return [b for b in itertools.product('.xo', repeat=9)\n",
+ " if valid_board(b)\n",
+ " ]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def winner(board):\n",
+ " winning_player = None\n",
+ " if board[0] == board[1] == board[2] and board[0] != '.':\n",
+ " winning_player = board[0]\n",
+ " if board[3] == board[4] == board[5] and board[3] != '.':\n",
+ " winning_player = board[3]\n",
+ " if board[6] == board[7] == board[8] and board[6] != '.':\n",
+ " winning_player = board[6]\n",
+ " if board[0] == board[3] == board[6] and board[0] != '.':\n",
+ " winning_player = board[0]\n",
+ " if board[1] == board[4] == board[7] and board[1] != '.':\n",
+ " winning_player = board[1]\n",
+ " if board[2] == board[5] == board[8] and board[2] != '.':\n",
+ " winning_player = board[2]\n",
+ " if board[0] == board[4] == board[8] and board[0] != '.':\n",
+ " winning_player = board[0]\n",
+ " if board[2] == board[4] == board[6] and board[2] != '.':\n",
+ " winning_player = board[2]\n",
+ " return winning_player"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 196,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "6046"
+ ]
+ },
+ "execution_count": 196,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "len(all_boards())"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 197,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[('.', '.', '.', '.', '.', '.', '.', '.', '.'),\n",
+ " ('.', '.', '.', '.', '.', '.', '.', '.', 'x'),\n",
+ " ('.', '.', '.', '.', '.', '.', '.', 'x', '.'),\n",
+ " ('.', '.', '.', '.', '.', '.', '.', 'x', 'o'),\n",
+ " ('.', '.', '.', '.', '.', '.', '.', 'o', 'x'),\n",
+ " ('.', '.', '.', '.', '.', '.', 'x', '.', '.'),\n",
+ " ('.', '.', '.', '.', '.', '.', 'x', '.', 'o'),\n",
+ " ('.', '.', '.', '.', '.', '.', 'x', 'x', 'o'),\n",
+ " ('.', '.', '.', '.', '.', '.', 'x', 'o', '.'),\n",
+ " ('.', '.', '.', '.', '.', '.', 'x', 'o', 'x')]"
+ ]
+ },
+ "execution_count": 197,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "all_boards()[:10]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 198,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def show_board(b):\n",
+ " s = ''.join(b)\n",
+ " return s[0:3] + '\\n' + s[3:6] + '\\n' + s[6:9]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 199,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "...\n",
+ ".oo\n",
+ "xxx\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(show_board([b for b in all_boards() if winner(b)][0]))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 200,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ ".x.\n",
+ "oox\n",
+ "...\n"
+ ]
+ }
+ ],
+ "source": [
+ "test_board = all_boards()[1000]\n",
+ "\n",
+ "print(show_board(test_board))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 201,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def show_boards(bs):\n",
+ " rows = [[], [], []]\n",
+ " for b in bs:\n",
+ " s = ''.join(b)\n",
+ " for i in range(3):\n",
+ " rows[i] += [s[i*3:i*3+3]]\n",
+ " return '\\n'.join(' '.join(r) for r in rows)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 202,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ ".x. .x. .x. .x. .x. .x. .x. .x. .x. .x.\n",
+ "oox oox oox oox oox oox oox oox oox oox\n",
+ "... ..x .x. .xo .ox x.. x.o xxo xo. xox\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(show_boards(all_boards()[1000:1010]))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 203,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "# 0 1 2 6 3 0\n",
+ "# 3 4 5 -> 7 4 1\n",
+ "# 6 7 8 8 5 2\n",
+ "rotation = {0: 6, 1: 3, 2: 0, 3: 7, 4: 4, 5: 1, 6: 8, 7: 5, 8: 2}\n",
+ "inverse_rotation = {t: f for f, t in rotation.items()}"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 204,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "# 0 1 2 2 1 0\n",
+ "# 3 4 5 -> 5 4 3\n",
+ "# 6 7 8 8 7 6\n",
+ "reflection = {0: 2, 1: 1, 2: 0, 3: 5, 4: 4, 5: 3, 6: 8, 7: 7, 8: 6}"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 205,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def rotate(board, n=1):\n",
+ " b = board\n",
+ " for _ in range(n):\n",
+ " b = tuple(b[rotation[i]] for i in range(len(board)))\n",
+ " return b"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 206,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def reflect(board, r=True):\n",
+ " if r: \n",
+ " return tuple(board[reflection[i]] for i in range(len(board)))\n",
+ " else:\n",
+ " return board"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 207,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ ".x. .o. ... .x. .x.\n",
+ "oox .ox xoo xo. oox\n",
+ "... .x. .x. .o. ...\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(show_boards(rotate(test_board, i) for i in range(5)))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 184,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "..o o..\n",
+ "xox xox\n",
+ "xoo oox\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(show_boards([test_board, reflect(test_board)]))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def transform(board, n, r):\n",
+ " b = rotate(board, n)\n",
+ " return reflect(b, r)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 21,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def untransform(board, n, r):\n",
+ " b = reflect(board, r)\n",
+ " return rotate(b, abs(4-n))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def all_transforms(board):\n",
+ " return [(transform(board, rot, ref), rot, ref)\n",
+ " for rot in range(4)\n",
+ " for ref in [False, True]]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 185,
+ "metadata": {
+ "scrolled": true
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "..o o.. xx. .xx oox xoo oxo oxo\n",
+ "xox xox oo. .oo xox xox .oo oo.\n",
+ "xoo oox oxo oxo o.. ..o .xx xx.\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(show_boards(b for b, r, f in all_transforms(test_board)))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def score(board):\n",
+ " return ''.join(board)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'..oxoxxoo'"
+ ]
+ },
+ "execution_count": 25,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "score(test_board)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def canonical(board):\n",
+ " return max(all_transforms(board), key=lambda brf: score(brf[0]))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(('x', 'x', '.', 'o', 'o', '.', 'o', 'x', 'o'), 1, False)"
+ ]
+ },
+ "execution_count": 27,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "canonical(test_board)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "True"
+ ]
+ },
+ "execution_count": 28,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "b, r, f = canonical(test_board)\n",
+ "untransform(b, r, f) == test_board"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {
+ "collapsed": true,
+ "scrolled": true
+ },
+ "outputs": [],
+ "source": [
+ "for b, r, f in all_transforms(test_board):\n",
+ " assert untransform(b, r, f) == test_board"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "8953"
+ ]
+ },
+ "execution_count": 30,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "len(all_boards())"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "1262"
+ ]
+ },
+ "execution_count": 31,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "canonical_boards = set([canonical(b)[0] for b in all_boards()])\n",
+ "len(canonical_boards)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 186,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "... .x. x..\n",
+ ".x. ... ...\n",
+ "... ... ...\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(show_boards(b for b in sorted([b for b in canonical_boards if xo_count(b) == (1, 0)], key=score)))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def non_winning_boards():\n",
+ " return set([canonical(b)[0] for b in all_boards()\n",
+ " if not winner(b)\n",
+ " ])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[('.', '.', '.', '.', '.', '.', '.', '.', '.'),\n",
+ " ('.', '.', '.', '.', 'o', '.', '.', '.', '.'),\n",
+ " ('.', '.', '.', '.', 'x', '.', '.', '.', '.'),\n",
+ " ('.', 'o', '.', '.', '.', '.', '.', '.', '.'),\n",
+ " ('.', 'o', '.', '.', 'x', '.', '.', '.', '.'),\n",
+ " ('.', 'o', '.', '.', 'x', '.', '.', 'o', '.'),\n",
+ " ('.', 'o', '.', 'o', 'x', '.', '.', '.', '.'),\n",
+ " ('.', 'x', '.', '.', '.', '.', '.', '.', '.'),\n",
+ " ('.', 'x', '.', '.', '.', '.', '.', 'o', '.'),\n",
+ " ('.', 'x', '.', '.', 'o', '.', '.', '.', '.')]"
+ ]
+ },
+ "execution_count": 34,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "sorted(non_winning_boards())[:10]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 210,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def successors(board):\n",
+ " xs, os = xo_count(board)\n",
+ " succs = []\n",
+ " if (xs - os) == 0:\n",
+ " # add an x\n",
+ " for i in range(len(board)):\n",
+ " if board[i] == '.':\n",
+ " succs += [tuple(board[:i] + ('x',) + board[i+1:])]\n",
+ "\n",
+ " if (xs - os) == 1:\n",
+ " # add an o\n",
+ " for i in range(len(board)):\n",
+ " if board[i] == '.':\n",
+ " succs += [tuple(board[:i] + ('o',) + board[i+1:])]\n",
+ " return succs"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 211,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "('.', 'x', '.', 'o', 'o', 'x', '.', '.', '.')"
+ ]
+ },
+ "execution_count": 211,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "test_board"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 212,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[('x', 'x', '.', 'o', 'o', 'x', '.', '.', '.'),\n",
+ " ('.', 'x', 'x', 'o', 'o', 'x', '.', '.', '.'),\n",
+ " ('.', 'x', '.', 'o', 'o', 'x', 'x', '.', '.'),\n",
+ " ('.', 'x', '.', 'o', 'o', 'x', '.', 'x', '.'),\n",
+ " ('.', 'x', '.', 'o', 'o', 'x', '.', '.', 'x')]"
+ ]
+ },
+ "execution_count": 212,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "successors(test_board)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def vacants(board):\n",
+ " return [i for i, c in enumerate(board) if c == '.']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[0, 1]"
+ ]
+ },
+ "execution_count": 39,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "vacants(test_board)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 40,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def apply_move(board, position, piece):\n",
+ " return tuple(board[:position] + (piece,) + board[position+1:])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(('o', '.', 'o', 'x', 'o', 'x', 'x', 'o', 'o'),\n",
+ " ('.', 'x', 'o', 'x', 'o', 'x', 'x', 'o', 'o'))"
+ ]
+ },
+ "execution_count": 41,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "apply_move(test_board, 0, 'o'), apply_move(test_board, 1, 'x')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def token_for_player(is_player_1):\n",
+ " if is_player_1:\n",
+ " return 'x'\n",
+ " else:\n",
+ " return 'o'"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 43,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def new_game(player1, player2):\n",
+ " return {'board': empty_board(),\n",
+ " 'player1': player1,\n",
+ " 'player2': player2,\n",
+ " 'player1_active': True,\n",
+ " 'history': []}"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 79,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def game_finished(game):\n",
+ " return (winner(game['board']) is not None) or (game['board'].count('.') == 0)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 50,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def active_player(game):\n",
+ " if game['player1_active']:\n",
+ " return game['player1']\n",
+ " else:\n",
+ " return game['player2']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 213,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def new_menace():\n",
+ " boxes = {'human?': False}\n",
+ " for b in non_winning_boards():\n",
+ " box = collections.Counter()\n",
+ " for s in vacants(b):\n",
+ " box[s] = INITIAL_BEAD_COUNT\n",
+ " boxes[b] = box\n",
+ " return boxes"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 214,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{('x', '.', 'o', '.', 'o', 'x', '.', 'x', 'o'): Counter({1: 3, 3: 3, 6: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', 'x', 'o', 'o', 'x'): Counter({2: 3, 4: 3}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 3, 2: 3, 3: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', '.', 'o', 'x', 'o', 'x', 'o'): Counter({2: 3, 3: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 4: 3, 5: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 5: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', '.', 'x', 'o'): Counter({3: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x'): Counter({2: 3, 3: 3, 4: 3, 5: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'o', '.', 'x', '.'): Counter({3: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', 'x', 'x', 'o', 'o'): Counter({2: 3, 4: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', '.', 'o', 'x', 'o', 'o', '.'): Counter({2: 3, 3: 3, 8: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 3, 2: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', '.', 'x', 'o'): Counter({2: 3, 6: 3}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({3: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'x', 'o', '.', 'o'): Counter({4: 3, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'o', '.', 'x'): Counter({4: 3, 5: 3, 7: 3}),\n",
+ " ('x', 'x', '.', '.', 'x', 'o', '.', 'o', 'o'): Counter({2: 3, 3: 3, 6: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'o', 'x', 'o', 'x', 'o', 'o', 'x', '.'): Counter({8: 3}),\n",
+ " ('o', 'x', 'o', 'x', '.', '.', '.', 'x', 'o'): Counter({4: 3, 5: 3, 6: 3}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 2: 3, 3: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({3: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', 'x', 'o', 'o', '.'): Counter({2: 3, 4: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({4: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('o', 'x', 'o', 'x', 'o', 'x', '.', '.', '.'): Counter({6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'x', '.', 'x', 'o', 'o'): Counter({3: 3, 5: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 2: 3, 3: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'x', '.', '.', 'o'): Counter({3: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'o', '.', 'o', 'x', 'x', '.', '.', 'o'): Counter({2: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'x', 'o', 'o', '.'): Counter({2: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'x', 'o', 'o'): Counter({2: 3}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', '.', 'x', 'o'): Counter({2: 3, 3: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 4: 3, 5: 3, 8: 3}),\n",
+ " ('x', 'o', 'x', '.', 'x', '.', 'o', 'o', '.'): Counter({3: 3, 5: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'x', 'o', '.'): Counter({4: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3}),\n",
+ " ('x', 'o', 'x', 'o', '.', '.', 'o', '.', 'x'): Counter({4: 3, 5: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', '.', '.', '.', 'o', 'x', 'o', 'o'): Counter({2: 3, 3: 3, 4: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x'): Counter({2: 3, 3: 3, 5: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'x', '.', 'o', 'o'): Counter({4: 3, 6: 3}),\n",
+ " ('x', 'o', 'o', 'o', 'x', 'x', '.', 'x', '.'): Counter({6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'x', 'x', '.', 'o'): Counter({3: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 3, 4: 3, 5: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 3, 2: 3, 3: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'o', 'x', 'o', 'x', '.', '.', '.', 'o'): Counter({5: 3, 6: 3, 7: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'x', '.', '.', '.', 'o'): Counter({5: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', '.', '.', 'o', '.', 'o', 'x', 'o'): Counter({2: 3, 3: 3, 5: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', '.', 'o', 'x'): Counter({6: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({0: 3, 2: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 3, 1: 3, 2: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'x', 'x', 'o', '.', 'o'): Counter({3: 3, 7: 3}),\n",
+ " ('x', 'o', 'o', 'o', 'x', 'x', '.', '.', '.'): Counter({6: 3, 7: 3, 8: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({0: 3, 2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', '.', 'x', 'o', 'o'): Counter({2: 3, 4: 3, 5: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'x', 'o', 'o'): Counter({4: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 8: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 3, 2: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'o', '.', '.', '.'): Counter({6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'x', 'o', '.', 'o', '.'): Counter({3: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 4: 3, 7: 3, 8: 3}),\n",
+ " 'human?': False,\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', '.', 'x', 'x'): Counter({3: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'x', 'x', 'o', 'o', 'o', '.'): Counter({8: 3}),\n",
+ " ('x', 'x', '.', 'x', 'o', 'o', '.', '.', 'o'): Counter({2: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'o', 'x', 'o', '.', '.', '.', 'o', 'x'): Counter({4: 3, 5: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 3, 2: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'x', '.', '.', 'o', 'o'): Counter({3: 3, 5: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'o', '.', 'o', '.', 'x', '.', 'x', 'o'): Counter({2: 3, 4: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', 'x', 'o', 'x'): Counter(),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 5: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'x', '.', 'x', 'o', 'o'): Counter({5: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', '.', '.', 'o', 'x', 'o', 'x'): Counter({3: 3, 4: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({1: 3, 3: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 3: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 5: 3, 7: 3}),\n",
+ " ('x', 'o', 'x', '.', 'x', '.', 'o', '.', 'o'): Counter({3: 3, 5: 3, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({1: 3, 3: 3, 4: 3, 6: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'o', 'o', 'o', 'x', 'x', 'o', 'x', '.'): Counter({8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', '.', 'x', 'o', '.'): Counter({3: 3, 5: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', '.', '.', 'o'): Counter({6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', '.', '.', '.', 'x', 'o', 'o'): Counter({3: 3, 4: 3, 5: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 3, 3: 3, 5: 3, 8: 3}),\n",
+ " ('o', 'x', '.', 'x', 'o', 'x', '.', 'o', '.'): Counter({2: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 3, 2: 3, 3: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', 'o', 'o', '.'): Counter({8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', '.', '.', 'x', 'o'): Counter({3: 3, 5: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({3: 3, 4: 3, 5: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', '.', 'o', '.'): Counter({6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', 'x', '.', 'o'): Counter({2: 3, 3: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', 'x', 'x', '.'): Counter({5: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', 'x', 'o', '.'): Counter({8: 3}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 2: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o'): Counter({1: 3, 2: 3, 3: 3, 4: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', '.', 'x', '.'): Counter({6: 3, 8: 3}),\n",
+ " ('x', 'o', 'x', 'o', 'o', '.', '.', 'x', '.'): Counter({5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', '.', '.', 'o'): Counter({3: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({1: 3, 2: 3, 3: 3, 6: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({0: 3, 2: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'o', 'o', 'o', '.', 'x', '.', 'x', '.'): Counter({4: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({4: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'o', 'x', 'o'): Counter({2: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 5: 3, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 3, 2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', 'x', '.', '.'): Counter({5: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'o', 'o', '.', '.'): Counter({4: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', 'x', '.', 'o', 'o'): Counter({2: 3, 4: 3, 6: 3}),\n",
+ " ('x', 'o', '.', '.', 'o', 'o', 'x', '.', 'x'): Counter({2: 3, 3: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({4: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', '.', '.', 'o', 'o', 'x'): Counter({3: 3, 4: 3, 5: 3}),\n",
+ " ('o', 'x', 'o', 'x', 'x', '.', 'o', '.', '.'): Counter({5: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'o', 'o', '.', '.', 'o', 'x', '.', 'x'): Counter({3: 3, 4: 3, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 3, 3: 3, 5: 3, 7: 3}),\n",
+ " ('x', 'o', '.', '.', 'x', 'o', 'x', 'o', '.'): Counter({2: 3, 3: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', 'x', '.', 'o'): Counter({7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({4: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', '.', 'o', 'o', '.', 'x'): Counter({3: 3, 4: 3, 7: 3}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'o', '.', 'o', '.'): Counter({2: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('o', 'x', 'o', 'x', '.', 'x', 'o', '.', '.'): Counter({4: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 3, 4: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'o', '.', 'o', 'x'): Counter({4: 3, 6: 3}),\n",
+ " ('x', 'o', '.', '.', '.', 'x', 'o', 'x', 'o'): Counter({2: 3, 3: 3, 4: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', '.', 'x', 'x'): Counter({4: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', 'x', '.', 'x'): Counter({4: 3, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o'): Counter({1: 3, 3: 3, 4: 3, 5: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'x', '.', 'o'): Counter({2: 3, 7: 3}),\n",
+ " ('x', 'o', 'o', '.', 'o', 'x', 'x', '.', '.'): Counter({3: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', '.', 'x', 'o'): Counter({4: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', '.', '.', 'x', 'o', '.', 'o'): Counter({3: 3, 4: 3, 7: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'x', '.', 'o'): Counter({4: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', '.', 'x', 'o'): Counter({6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', 'x', 'o', 'x'): Counter({4: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', '.', 'x', 'o'): Counter({2: 3, 5: 3, 6: 3}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'o', 'x', 'o', '.'): Counter({2: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'o', '.', 'x'): Counter({4: 3, 7: 3}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'x', 'o', '.', 'o'): Counter({2: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', 'o', '.', 'x'): Counter({2: 3, 3: 3, 7: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 3, 2: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x'): Counter({3: 3, 4: 3, 5: 3, 7: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 3, 2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('o', 'x', '.', '.', 'x', 'x', 'o', '.', 'o'): Counter({2: 3, 3: 3, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 3: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'o', '.', '.', '.'): Counter({6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'o', '.', '.', 'x', 'o', '.', 'x', 'o'): Counter({2: 3, 3: 3, 6: 3}),\n",
+ " ('x', 'x', '.', 'x', 'o', 'o', '.', 'o', 'x'): Counter({2: 3, 6: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', 'x', 'o', 'x'): Counter({2: 3, 4: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({0: 3, 2: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 2: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 3, 3: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'o', 'x', 'o'): Counter({4: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({3: 3, 4: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', '.', 'o', '.'): Counter({3: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 4: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'o', 'x', 'o', 'o'): Counter({2: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('o', 'x', 'o', 'x', 'o', '.', '.', 'x', '.'): Counter({5: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({3: 3, 4: 3, 5: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 5: 3, 8: 3}),\n",
+ " ('o', 'x', '.', 'x', '.', 'x', '.', 'o', 'o'): Counter({2: 3, 4: 3, 6: 3}),\n",
+ " ('o', 'x', '.', 'o', 'o', 'x', '.', 'x', '.'): Counter({2: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 4: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'o', 'o', '.', 'o', 'x', '.', 'x', '.'): Counter({3: 3, 6: 3, 8: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({0: 3, 2: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', '.', 'x', 'o', 'o', '.', 'o'): Counter({2: 3, 3: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'o', 'o', 'x'): Counter({4: 3}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'o', '.', '.', 'o'): Counter({2: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'x', 'x', 'o', '.', 'o', '.'): Counter({6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x'): Counter({3: 3, 4: 3, 5: 3, 6: 3}),\n",
+ " ('x', 'o', 'o', '.', '.', 'x', 'o', 'x', '.'): Counter({3: 3, 4: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'o', 'x', 'o', 'x', 'o', '.', 'x', '.'): Counter({6: 3, 8: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({0: 3, 2: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'x', 'x', 'o', '.', 'o', 'o'): Counter({2: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', 'x', '.', '.'): Counter({3: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 7: 3}),\n",
+ " ('o', 'x', 'o', 'x', 'o', 'x', '.', 'x', '.'): Counter({6: 3, 8: 3}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', 'x', '.', 'o'): Counter({3: 3, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 3, 3: 3, 6: 3, 8: 3}),\n",
+ " ('o', 'x', 'o', 'x', 'x', 'o', '.', '.', '.'): Counter({6: 3, 7: 3, 8: 3}),\n",
+ " ('x', '.', 'o', '.', 'x', 'x', 'o', 'o', '.'): Counter({1: 3, 3: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'o', '.', '.', 'o', 'x', 'o', 'x', '.'): Counter({2: 3, 3: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', 'x', '.', 'o'): Counter({2: 3, 5: 3, 7: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', 'o', 'x', '.'): Counter({2: 3, 4: 3, 8: 3}),\n",
+ " ('x', 'o', 'x', 'o', 'x', '.', '.', 'o', '.'): Counter({5: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 5: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('o', 'x', '.', 'o', 'x', 'x', '.', 'o', '.'): Counter({2: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'o', '.', '.', 'x', '.', 'o', 'x', 'o'): Counter({2: 3, 3: 3, 5: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 3, 3: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({4: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'x', '.', '.', 'o', '.', 'o'): Counter({4: 3, 5: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', '.', '.', 'o', '.', 'o', 'x'): Counter({3: 3, 4: 3, 6: 3}),\n",
+ " ('x', 'o', 'x', 'o', '.', 'o', 'x', '.', '.'): Counter({4: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'o', 'o', '.', '.', 'x', 'x', 'o', '.'): Counter({3: 3, 4: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', 'x', '.', '.'): Counter({4: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', '.', '.', 'x'): Counter({4: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', 'o', '.', 'o'): Counter({7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 3, 2: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', '.', '.', 'x'): Counter({5: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', 'x', 'x', 'o'): Counter({5: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({0: 3, 2: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', 'x', 'o', 'o'): Counter(),\n",
+ " ('x', 'x', 'o', '.', 'o', 'x', '.', 'x', 'o'): Counter({3: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', 'x', 'o', 'x'): Counter({3: 3}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', 'o', 'x', '.'): Counter({3: 3, 8: 3}),\n",
+ " ('x', 'x', '.', '.', 'o', 'x', 'o', '.', 'o'): Counter({2: 3, 3: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'x', '.', 'x', '.', 'o'): Counter({5: 3, 7: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x', '.', 'x', '.', 'o', '.', 'o', 'x', 'o'): Counter({1: 3, 3: 3, 5: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({4: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'o', 'o', '.', '.', 'x', '.', 'x', 'o'): Counter({3: 3, 4: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 4: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x'): Counter({2: 3, 3: 3, 4: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'x', '.', 'o', '.', '.'): Counter({5: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 4: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 3, 2: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', '.', 'o', 'x'): Counter({4: 3, 6: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 3, 3: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'o', 'x', 'o', 'x', '.', '.', 'x', 'o'): Counter({5: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 8: 3}),\n",
+ " ('x', 'o', 'x', 'o', '.', '.', 'o', 'x', '.'): Counter({4: 3, 5: 3, 8: 3}),\n",
+ " ('o', 'x', 'o', 'x', '.', 'o', '.', 'x', '.'): Counter({4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'o', '.', '.', 'x', 'o', 'o', 'x', '.'): Counter({2: 3, 3: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'o', 'x', '.'): Counter({2: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({1: 3, 3: 3, 5: 3, 6: 3}),\n",
+ " ('x', 'o', 'x', 'o', '.', '.', 'x', '.', 'o'): Counter({4: 3, 5: 3, 7: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', '.', 'x', '.'): Counter({4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'x', 'o', '.'): Counter({4: 3, 5: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', '.', 'x', '.', 'o'): Counter({3: 3, 5: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({4: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'x', '.', '.', 'o'): Counter({6: 3, 7: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', '.', 'o', 'o', 'x'): Counter({2: 3, 4: 3, 5: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', 'o', '.', 'x'): Counter({2: 3, 4: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o'): Counter({2: 3, 3: 3, 5: 3, 6: 3}),\n",
+ " ('x', 'o', 'o', '.', 'o', '.', 'x', '.', 'x'): Counter({3: 3, 5: 3, 7: 3}),\n",
+ " ('x', 'o', 'x', '.', 'x', '.', 'o', 'x', 'o'): Counter({3: 3, 5: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', 'x', 'o', '.'): Counter({3: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', '.', '.', 'o', 'x'): Counter({3: 3, 5: 3, 6: 3}),\n",
+ " ('x', 'o', 'x', 'o', 'x', '.', 'o', 'x', 'o'): Counter({5: 3}),\n",
+ " ('x', 'x', '.', 'o', 'x', '.', 'x', 'o', 'o'): Counter({2: 3, 5: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'x', 'o', 'x', '.', 'o', 'o'): Counter({2: 3, 6: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 3, 3: 3, 4: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'o', '.', 'x'): Counter({2: 3, 7: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({0: 3, 2: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', '.', '.', 'o', 'x', 'o'): Counter({3: 3, 4: 3, 5: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 3, 3: 3, 5: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'o', 'x', 'o', '.', '.', '.', 'x', 'o'): Counter({4: 3, 5: 3, 6: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({0: 3, 2: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 8: 3}),\n",
+ " ('x', 'o', 'x', '.', 'o', '.', 'x', '.', 'o'): Counter({3: 3, 5: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 3, 3: 3, 4: 3, 7: 3}),\n",
+ " ('o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', '.', 'x', 'o'): Counter({2: 3, 4: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', 'x', 'o', '.', '.', 'x', 'o'): Counter({5: 3, 6: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'x', 'x', '.', '.', 'o', 'o'): Counter({5: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', '.', 'o', 'x'): Counter({2: 3, 3: 3, 6: 3}),\n",
+ " ('x', 'x', '.', '.', 'o', '.', 'x', 'o', 'o'): Counter({2: 3, 3: 3, 5: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 2: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'x', '.', 'o', '.'): Counter({3: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'x', '.', 'o', 'o', '.'): Counter({2: 3, 5: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'x', '.', 'o', '.', 'o', 'o'): Counter({2: 3, 4: 3, 6: 3}),\n",
+ " ('.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 3, 1: 3, 2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'x', '.', 'o', 'o'): Counter({2: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 4: 3, 6: 3, 7: 3}),\n",
+ " ('o', 'x', 'o', 'x', 'x', '.', '.', 'o', '.'): Counter({5: 3, 6: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'o', 'x', 'o', 'o', '.', 'x', '.', 'x'): Counter({5: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', 'x', '.', 'x'): Counter({5: 3, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 3, 2: 3, 3: 3, 6: 3, 7: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({1: 3, 2: 3, 3: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x'): Counter({2: 3, 4: 3, 5: 3, 6: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 3, 3: 3, 5: 3, 8: 3}),\n",
+ " ('x', 'o', '.', '.', 'x', 'x', '.', 'o', 'o'): Counter({2: 3, 3: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 4: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'o', 'x', 'o', '.', 'o', 'x', 'o', 'x'): Counter({4: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'o', '.', 'o', 'o', 'x', '.', 'x', '.'): Counter({2: 3, 6: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'o', '.', '.', 'o', 'x', '.', 'x', 'o'): Counter({2: 3, 3: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', '.', '.', 'o'): Counter({2: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 3, 4: 3, 5: 3, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', '.', 'o', '.'): Counter({4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'o', 'x', '.'): Counter({4: 3, 5: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 3, 2: 3, 3: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 6: 3}),\n",
+ " ('x', 'o', '.', '.', 'x', 'x', 'o', 'o', '.'): Counter({2: 3, 3: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', 'x', 'o', 'x', 'o'): Counter({2: 3, 4: 3}),\n",
+ " ('x', '.', 'o', '.', 'x', 'x', '.', 'o', 'o'): Counter({1: 3, 3: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', '.', 'o', 'x', 'o'): Counter({2: 3, 4: 3, 5: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', '.', 'o', '.'): Counter({2: 3, 6: 3, 8: 3}),\n",
+ " ('o', 'x', 'o', 'x', '.', 'x', 'o', 'x', 'o'): Counter({4: 3}),\n",
+ " ('x', 'o', 'x', 'o', 'x', '.', 'o', '.', '.'): Counter({5: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({4: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', 'x', 'o', 'x'): Counter({2: 3, 3: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 3, 4: 3, 5: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', 'x', 'x', 'o', 'o', '.', '.'): Counter({7: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({4: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', 'x', 'o', '.', 'o'): Counter({2: 3, 4: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'o', 'x', 'o', 'o', '.', 'x', '.', '.'): Counter({5: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 4: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', '.', 'o', '.', 'o', 'o', 'x'): Counter({2: 3, 3: 3, 5: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 6: 3}),\n",
+ " ('x', 'o', 'o', '.', 'x', '.', 'o', 'x', '.'): Counter({3: 3, 5: 3, 8: 3}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 3, 2: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', '.', 'x', 'o', 'x'): Counter({3: 3, 5: 3}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'o', 'x', '.', 'o'): Counter({2: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 3, 3: 3, 5: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({3: 3, 4: 3, 5: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', '.', '.', '.'): Counter({6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'x', 'x', '.', 'o', '.', 'o'): Counter({5: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', '.', '.', 'o'): Counter({4: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', '.', 'x', '.'): Counter({3: 3, 6: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'o', 'x', 'o', 'x', 'o', '.', '.', '.'): Counter({6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'o', 'x', 'o', 'x', '.', 'o', 'x', '.'): Counter({5: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 3, 3: 3, 5: 3, 7: 3}),\n",
+ " ('o', 'x', '.', 'x', 'x', 'o', '.', '.', 'o'): Counter({2: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'o', 'o', '.', 'x'): Counter({4: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', 'o', 'x', 'o'): Counter({3: 3}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'o', '.', 'x', '.'): Counter({6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', '.', 'o', 'x'): Counter({2: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'x', '.', '.', 'o', '.'): Counter({5: 3, 6: 3, 8: 3}),\n",
+ " ('o', 'o', '.', 'o', 'x', 'x', '.', 'x', '.'): Counter({2: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', 'x', 'x', '.'): Counter({4: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o'): Counter({1: 3, 2: 3, 3: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', 'x', 'o', '.', '.', 'o', '.'): Counter({5: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({4: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'o', '.', 'o', 'x'): Counter({6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({3: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'x', '.', 'x', 'o', '.'): Counter({5: 3, 8: 3}),\n",
+ " ('x', 'o', 'o', '.', '.', 'x', 'x', '.', 'o'): Counter({3: 3, 4: 3, 7: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'o', '.', '.', 'x', 'o', 'x', '.', 'o'): Counter({2: 3, 3: 3, 7: 3}),\n",
+ " ('x', 'o', 'x', 'o', '.', 'o', 'x', '.', 'x'): Counter({4: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'o', 'o', '.', 'x', '.', 'x', '.', 'o'): Counter({3: 3, 5: 3, 7: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 5: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 7: 3}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', 'x', 'o', '.'): Counter({2: 3, 3: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 4: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'o', 'x', '.', '.'): Counter({7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'x', 'o', 'o', '.'): Counter({4: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', '.', 'o', 'x'): Counter({4: 3, 5: 3, 6: 3}),\n",
+ " ('o', 'x', 'o', 'x', '.', 'x', 'o', 'x', '.'): Counter({4: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', '.', 'o', 'x'): Counter({2: 3, 5: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'x', 'o', 'x'): Counter({4: 3, 5: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 6: 3, 7: 3}),\n",
+ " ('o', 'x', '.', 'o', 'x', 'x', '.', '.', 'o'): Counter({2: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', '.', 'x', 'o', 'o', '.', '.'): Counter({3: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', '.', 'o', 'x'): Counter({2: 3, 4: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'o', '.', '.', 'x'): Counter({6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({3: 3, 4: 3, 6: 3, 7: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 4: 3, 6: 3, 7: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 3, 2: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('o', 'x', '.', '.', 'x', 'x', 'o', 'o', '.'): Counter({2: 3, 3: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'x', 'o', '.', '.', 'o', 'x'): Counter({5: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', 'o', '.', '.'): Counter({7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 3, 3: 3, 4: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'o', '.', 'o', 'x', 'x', '.', 'x', 'o'): Counter({2: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({4: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'o', 'x', 'o', '.', 'o', '.', 'x', '.'): Counter({4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'o', 'o', '.', 'x', '.', '.', 'x', 'o'): Counter({3: 3, 5: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 3, 3: 3, 5: 3, 6: 3}),\n",
+ " ('x', 'o', 'x', '.', 'o', '.', 'o', 'x', '.'): Counter({3: 3, 5: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 3: 3, 4: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', 'x', 'o', '.'): Counter({2: 3, 5: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'x', 'o', 'x', 'o', '.'): Counter({3: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'x', '.', '.', 'o', 'o'): Counter({2: 3, 5: 3, 6: 3}),\n",
+ " ('o', 'x', 'o', 'x', 'x', '.', '.', '.', 'o'): Counter({5: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'x', 'x', 'o', 'o', '.'): Counter({3: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', 'o', '.', 'x'): Counter({2: 3, 5: 3, 7: 3}),\n",
+ " ('x', 'o', 'x', '.', '.', '.', 'x', 'o', 'o'): Counter({3: 3, 4: 3, 5: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', '.', '.', 'x', 'o', 'o', '.'): Counter({3: 3, 4: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', '.', 'o', 'x', '.', 'o', 'o'): Counter({2: 3, 3: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'o', 'x', '.'): Counter({4: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'x', '.', 'o', 'o', '.'): Counter({3: 3, 5: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', 'o', 'x', '.'): Counter({2: 3, 5: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 4: 3, 5: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'o', 'o', 'x'): Counter({2: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', '.', 'x', 'o'): Counter({4: 3, 5: 3, 6: 3}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', 'x', 'o', 'o'): Counter({3: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', 'x', 'o', 'x'): Counter({5: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 2: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'o', '.', '.', 'x', 'x', 'o', '.', 'o'): Counter({2: 3, 3: 3, 7: 3}),\n",
+ " ('x', '.', 'o', '.', 'x', 'x', 'o', '.', 'o'): Counter({1: 3, 3: 3, 7: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({4: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', '.', 'x', 'x'): Counter({5: 3, 6: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 3, 2: 3, 3: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 3, 3: 3, 5: 3, 7: 3}),\n",
+ " ('o', 'x', '.', 'x', 'x', 'o', '.', 'o', '.'): Counter({2: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', 'o', 'x', 'x'): Counter({4: 3}),\n",
+ " ('x', 'x', 'o', 'x', 'o', '.', '.', '.', 'o'): Counter({5: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'x', '.', 'o', '.'): Counter({6: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', 'x', 'x', '.'): Counter({3: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'x', '.', 'o', 'o'): Counter({6: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', 'x', 'o', '.'): Counter({2: 3, 4: 3, 8: 3}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', 'o', 'x', '.'): Counter({2: 3, 3: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', '.', '.', 'x'): Counter({6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', 'x', 'o', 'x'): Counter({2: 3, 5: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'o', '.', '.'): Counter({4: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x'): Counter({3: 3, 4: 3, 5: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('x', '.', 'o', '.', '.', 'x', 'o', 'x', 'o'): Counter({1: 3, 3: 3, 4: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 4: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'o', 'x', 'x'): Counter({4: 3, 5: 3}),\n",
+ " ('x', 'x', 'o', '.', '.', 'x', '.', 'o', 'o'): Counter({3: 3, 4: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', 'x', 'x', 'o'): Counter(),\n",
+ " ('x', 'x', '.', '.', 'x', 'o', 'o', 'o', '.'): Counter({2: 3, 3: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'o', 'o', '.', '.'): Counter({2: 3, 7: 3, 8: 3}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 2: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 3, 4: 3, 5: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', '.', '.', 'o', 'o', 'x', '.'): Counter({3: 3, 4: 3, 8: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({0: 3, 2: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 3, 3: 3, 4: 3, 7: 3}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'o', 'x', '.', '.'): Counter({3: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 7: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 4: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 5: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', '.', 'x', 'x', 'o'): Counter({3: 3, 5: 3}),\n",
+ " ('x', 'x', 'o', '.', '.', 'x', 'x', 'o', 'o'): Counter({3: 3, 4: 3}),\n",
+ " ('x', 'x', 'o', '.', 'x', '.', 'o', '.', 'o'): Counter({3: 3, 5: 3, 7: 3}),\n",
+ " ('o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'x', 'o', '.'): Counter({2: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'x', 'x', 'o'): Counter({4: 3, 5: 3}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', 'o', '.', '.'): Counter({3: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'o', '.', 'o', '.'): Counter({4: 3, 6: 3, 8: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 3, 2: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', '.', 'o', 'o'): Counter({6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'o', '.', 'o', 'x', 'x', '.', 'o', '.'): Counter({2: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', '.', 'x', 'o', 'x', 'o'): Counter({3: 3, 4: 3}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'o', 'o', 'o', 'x'): Counter({4: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 3, 4: 3, 5: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'x', 'o', 'o', '.', 'o', '.'): Counter({2: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', '.', '.', 'o', 'o', 'o', 'x'): Counter({2: 3, 3: 3, 4: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'o', 'x', 'o', '.'): Counter({8: 3}),\n",
+ " ('x', 'o', 'x', 'o', 'o', '.', '.', '.', 'x'): Counter({5: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', '.', '.', 'o', 'x', 'x', 'o', 'o'): Counter({2: 3, 3: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 3, 3: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'o', 'o', 'o', 'x', '.', '.', 'x', '.'): Counter({5: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 3, 4: 3, 5: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 3: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 3, 2: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 5: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 3, 2: 3, 3: 3, 6: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'o', '.', '.', 'x', 'x', 'o', 'x', 'o'): Counter({2: 3, 3: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', '.', 'o', '.', 'x', 'x', 'o', 'x', 'o'): Counter({1: 3, 3: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'x', 'x', 'o', '.'): Counter({3: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'x', '.', 'o'): Counter({4: 3, 5: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', 'x', '.', '.'): Counter({7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 3, 3: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', '.', '.', 'x', 'o', 'x', 'o', 'o'): Counter({2: 3, 3: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({3: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', '.', 'x', 'x', '.', 'o', 'o'): Counter({3: 3, 6: 3}),\n",
+ " ('x', 'o', 'x', '.', '.', '.', 'o', 'x', 'o'): Counter({3: 3, 4: 3, 5: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 3, 2: 3, 3: 3, 4: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'o', 'o', 'o', 'x', 'x', '.', 'x', 'o'): Counter({6: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'x', 'x', 'o', 'o'): Counter({3: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 3, 3: 3, 5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'o', 'o', '.', 'x', '.', 'x', 'o', '.'): Counter({3: 3, 5: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', 'x', '.', 'x'): Counter({3: 3, 7: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', 'x', '.', 'o'): Counter({2: 3, 4: 3, 7: 3}),\n",
+ " ('o', 'x', '.', '.', 'o', 'x', 'o', 'x', '.'): Counter({2: 3, 3: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 5: 3, 7: 3}),\n",
+ " ('o', 'x', 'o', 'x', '.', 'x', '.', 'o', '.'): Counter({4: 3, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({4: 3, 5: 3, 7: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'o', '.', '.'): Counter({2: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'x', '.', 'o', '.', 'o'): Counter({2: 3, 5: 3, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 3: 3, 5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({5: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', '.', 'x', '.'): Counter({5: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', '.', '.', 'o', 'o', 'x', 'o'): Counter({2: 3, 3: 3, 4: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', '.', '.', 'x'): Counter({3: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'x', '.', '.', '.', 'o', 'o'): Counter({4: 3, 5: 3, 6: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 3: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 7: 3}),\n",
+ " ('x', 'o', '.', '.', 'o', 'x', 'x', '.', 'o'): Counter({2: 3, 3: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', '.', 'o', 'x', 'o', '.'): Counter({3: 3, 4: 3, 8: 3})}"
+ ]
+ },
+ "execution_count": 214,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "new_menace()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 53,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def menace_move(game):\n",
+ " board, r, f = canonical(game['board'])\n",
+ " player = active_player(game)\n",
+ " token = token_for_player(game['player1_active'])\n",
+ " cmove = random.choice(list(player[board].elements()))\n",
+ " cmove_board = apply_move(empty_board(), cmove, token)\n",
+ " moved_board = untransform(cmove_board, r, f)\n",
+ " return moved_board.index(token)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def new_human():\n",
+ " return {'human?': True}"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 71,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def human_move(game):\n",
+ " if game['history']:\n",
+ " print('Opponent moved to', game['history'][-1]['move'])\n",
+ " else:\n",
+ " print('You play first.')\n",
+ " print('The board is:')\n",
+ " print(show_board(game['board']))\n",
+ " \n",
+ " valid_moves = vacants(game['board'])\n",
+ " valid_input = False\n",
+ " \n",
+ " while not valid_input:\n",
+ " user_input = input('Your move ({})? '.format(', '.join(str(m) for m in valid_moves)))\n",
+ " if user_input.isnumeric():\n",
+ " move = int(user_input)\n",
+ " if move in valid_moves:\n",
+ " valid_input = True\n",
+ " else:\n",
+ " print('Number not a valid move.')\n",
+ " else:\n",
+ " print('Please enter a number.')\n",
+ " return move"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 61,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def make_move(game):\n",
+ " if game['player1_active']:\n",
+ " active = game['player1']\n",
+ " else:\n",
+ " active = game['player2']\n",
+ " if active['human?']:\n",
+ " move = human_move(game)\n",
+ " else:\n",
+ " move = menace_move(game)\n",
+ " token = token_for_player(game['player1_active'])\n",
+ " game['history'] += [{'player1?': game['player1_active'], 'move': move, 'board': game['board']}]\n",
+ " game['board'] = apply_move(game['board'], move, token)\n",
+ " game['player1_active'] = not game['player1_active'] "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 215,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(('x', '.', '.', '.', '.', 'o', 'o', 'x', '.'),\n",
+ " [{'board': ('.', '.', '.', '.', '.', '.', '.', '.', '.'),\n",
+ " 'move': 0,\n",
+ " 'player1?': True},\n",
+ " {'board': ('x', '.', '.', '.', '.', '.', '.', '.', '.'),\n",
+ " 'move': 5,\n",
+ " 'player1?': False},\n",
+ " {'board': ('x', '.', '.', '.', '.', 'o', '.', '.', '.'),\n",
+ " 'move': 7,\n",
+ " 'player1?': True},\n",
+ " {'board': ('x', '.', '.', '.', '.', 'o', '.', 'x', '.'),\n",
+ " 'move': 6,\n",
+ " 'player1?': False}])"
+ ]
+ },
+ "execution_count": 215,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "p1 = new_menace()\n",
+ "p2 = new_menace()\n",
+ "g = new_game(p1, p2)\n",
+ "for _ in range(4):\n",
+ " make_move(g)\n",
+ "g['board'], g['history']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 63,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def play_game(game):\n",
+ " while not game_finished(game):\n",
+ " make_move(game)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 80,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def winning_player(game):\n",
+ " if winner(game['board']) is None:\n",
+ " return None\n",
+ " elif game['history'][-1]['player1?']:\n",
+ " return game['player1']\n",
+ " else:\n",
+ " return game['player2']\n",
+ "\n",
+ "def losing_player(game):\n",
+ " if winner(game['board']) is None:\n",
+ " return None\n",
+ " elif game['history'][-1]['player1?']:\n",
+ " return game['player2']\n",
+ " else:\n",
+ " return game['player1'] "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 216,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(('.', 'x', 'x', '.', 'x', 'o', 'o', 'x', 'o'),\n",
+ " [{'board': ('.', '.', '.', '.', '.', '.', '.', '.', '.'),\n",
+ " 'move': 1,\n",
+ " 'player1?': True},\n",
+ " {'board': ('.', 'x', '.', '.', '.', '.', '.', '.', '.'),\n",
+ " 'move': 5,\n",
+ " 'player1?': False},\n",
+ " {'board': ('.', 'x', '.', '.', '.', 'o', '.', '.', '.'),\n",
+ " 'move': 4,\n",
+ " 'player1?': True},\n",
+ " {'board': ('.', 'x', '.', '.', 'x', 'o', '.', '.', '.'),\n",
+ " 'move': 6,\n",
+ " 'player1?': False},\n",
+ " {'board': ('.', 'x', '.', '.', 'x', 'o', 'o', '.', '.'),\n",
+ " 'move': 2,\n",
+ " 'player1?': True},\n",
+ " {'board': ('.', 'x', 'x', '.', 'x', 'o', 'o', '.', '.'),\n",
+ " 'move': 8,\n",
+ " 'player1?': False},\n",
+ " {'board': ('.', 'x', 'x', '.', 'x', 'o', 'o', '.', 'o'),\n",
+ " 'move': 7,\n",
+ " 'player1?': True}])"
+ ]
+ },
+ "execution_count": 216,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "p1 = new_menace()\n",
+ "p2 = new_menace()\n",
+ "g = new_game(p1, p2)\n",
+ "play_game(g)\n",
+ "g['board'], g['history']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 217,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ ".xx\n",
+ ".xo\n",
+ "oxo\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(show_board(g['board']))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 218,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'x'"
+ ]
+ },
+ "execution_count": 218,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "winner(g['board'])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 219,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "You play first.\n",
+ "The board is:\n",
+ "...\n",
+ "...\n",
+ "...\n",
+ "Your move (0, 1, 2, 3, 4, 5, 6, 7, 8)? 4\n",
+ "Opponent moved to 5\n",
+ "The board is:\n",
+ "...\n",
+ ".xo\n",
+ "...\n",
+ "Your move (0, 1, 2, 3, 6, 7, 8)? 2\n",
+ "Opponent moved to 3\n",
+ "The board is:\n",
+ "..x\n",
+ "oxo\n",
+ "...\n",
+ "Your move (0, 1, 6, 7, 8)? 6\n",
+ "\n",
+ "Final position\n",
+ "..x\n",
+ "oxo\n",
+ "x..\n",
+ "You won\n"
+ ]
+ }
+ ],
+ "source": [
+ "p1 = new_menace()\n",
+ "ph = new_human()\n",
+ "if random.choice([True, False]):\n",
+ " g = new_game(p1, ph)\n",
+ "else:\n",
+ " g = new_game(ph, p1)\n",
+ "play_game(g)\n",
+ "\n",
+ "print('\\nFinal position')\n",
+ "print(show_board(g['board']))\n",
+ "if winner(g['board']) is None:\n",
+ " print('A draw')\n",
+ "elif winning_player(g) == ph:\n",
+ " print('You won')\n",
+ "else:\n",
+ " print('You lost')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 220,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "..x\n",
+ "oxo\n",
+ "x..\n"
+ ]
+ }
+ ],
+ "source": [
+ "print(show_board(g['board']))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 91,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def winning_moves(game):\n",
+ " return [h for h in game['history'] \n",
+ " if h['player1?'] == game['history'][-1]['player1?']]\n",
+ "\n",
+ "def losing_moves(game):\n",
+ " return [h for h in game['history'] \n",
+ " if h['player1?'] != game['history'][-1]['player1?']]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 130,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def update_players(game, allow_drop_move=False):\n",
+ " if winner(game['board']) is not None:\n",
+ " update_winner(game)\n",
+ " update_loser(game, allow_drop_move=allow_drop_move)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 111,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def update_winner(game):\n",
+ " player = winning_player(game)\n",
+ " moves = winning_moves(game)\n",
+ " for m in moves:\n",
+ " board, r, f = canonical(m['board'])\n",
+ " move_board = apply_move(empty_board(), m['move'], '+')\n",
+ " cmove_board = transform(move_board, r, f)\n",
+ " cmove = cmove_board.index('+')\n",
+ " player[board][cmove] += 1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 126,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def update_loser(game, allow_drop_move=False):\n",
+ " player = losing_player(game)\n",
+ " moves = losing_moves(game)\n",
+ " for m in moves:\n",
+ " board, r, f = canonical(m['board'])\n",
+ " move_board = apply_move(empty_board(), m['move'], '+')\n",
+ " cmove_board = transform(move_board, r, f)\n",
+ " cmove = cmove_board.index('+')\n",
+ "# if player[board][cmove] > 1:\n",
+ "# player[board][cmove] -= 1\n",
+ " if allow_drop_move:\n",
+ " if len(list(player[board].elements())) > 1:\n",
+ " player[board][cmove] -= 1\n",
+ " else:\n",
+ " if player[board][cmove] > 1:\n",
+ " player[board][cmove] -= 1\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 221,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "({('x', '.', 'o', '.', 'o', 'x', '.', 'x', 'o'): Counter({1: 1, 3: 1, 6: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 2, 4: 5, 5: 2, 6: 3, 8: 5}),\n",
+ " ('x', 'x', '.', 'o', '.', 'x', 'o', 'o', 'x'): Counter({2: 1, 4: 1}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 27, 2: 494, 3: 446, 6: 1146, 8: 88}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 1, 3: 1, 6: 1, 7: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 5, 3: 10, 4: 6, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', '.', 'o', 'x', 'o', 'x', 'o'): Counter({2: 12, 3: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 4: 1, 5: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 3, 3: 1, 4: 3, 5: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 10, 4: 22, 5: 7, 6: 7, 7: 12, 8: 16}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', '.', 'x', 'o'): Counter({3: 3, 6: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x'): Counter({2: 2, 3: 1, 4: 1, 5: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 13, 6: 25, 7: 2, 8: 6}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'o', '.', 'x', '.'): Counter({3: 1, 6: 1, 8: 115}),\n",
+ " ('x', 'x', '.', 'o', '.', 'x', 'x', 'o', 'o'): Counter({2: 3, 4: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 1, 3: 2, 6: 4, 8: 1}),\n",
+ " ('x', 'x', '.', '.', 'o', 'x', 'o', 'o', '.'): Counter({2: 23, 3: 1, 8: 1}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 9, 2: 3, 6: 5, 7: 2, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 2, 4: 3, 5: 2, 6: 3, 7: 3, 8: 5}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', '.', 'x', 'o'): Counter({2: 3, 6: 1}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 8, 3: 4, 5: 4, 6: 2, 8: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({3: 3, 5: 12, 6: 2, 7: 7}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'x', 'o', '.', 'o'): Counter({4: 4, 7: 6}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 2, 3: 3, 4: 3, 6: 4, 8: 5}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'o', '.', 'x'): Counter({4: 4, 5: 3, 7: 2}),\n",
+ " ('x', 'x', '.', '.', 'x', 'o', '.', 'o', 'o'): Counter({2: 189, 3: 1, 6: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 6: 1, 7: 1, 8: 6}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 209, 3: 301, 5: 454, 6: 475, 8: 269}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 3, 3: 5, 4: 8, 6: 3, 8: 2}),\n",
+ " ('x', 'o', 'x', 'o', 'x', 'o', 'o', 'x', '.'): Counter({8: 1277}),\n",
+ " ('o', 'x', 'o', 'x', '.', '.', '.', 'x', 'o'): Counter({4: 5, 5: 2, 6: 1}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 8, 2: 23, 3: 7, 4: 4, 6: 1, 7: 2, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({3: 2, 4: 1, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', 'x', 'o', 'o', '.'): Counter({2: 3, 4: 4, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 6, 3: 6, 6: 5, 7: 1, 8: 5}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 36, 3: 89, 5: 77, 6: 166, 7: 89}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({4: 5, 6: 1, 7: 1, 8: 2}),\n",
+ " ('o', 'x', 'o', 'x', 'o', 'x', '.', '.', '.'): Counter({6: 2, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 1, 3: 1, 6: 1, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'x', '.', 'x', 'o', 'o'): Counter({3: 3, 5: 26}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 2, 2: 16, 3: 15, 4: 14, 6: 25, 7: 2, 8: 12}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'x', '.', '.', 'o'): Counter({3: 1, 6: 7, 7: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 1, 5: 1, 6: 1, 7: 1}),\n",
+ " ('x', 'o', '.', 'o', 'x', 'x', '.', '.', 'o'): Counter({2: 11, 6: 75, 7: 3}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'x', 'o', 'o', '.'): Counter({2: 1, 8: 22}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 4, 3: 4, 4: 3, 5: 3, 6: 4}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'x', 'o', 'o'): Counter({2: 27}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', '.', 'x', 'o'): Counter({2: 11, 3: 2, 6: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 4, 4: 1, 5: 2, 8: 1}),\n",
+ " ('x', 'o', 'x', '.', 'x', '.', 'o', 'o', '.'): Counter({3: 1, 5: 1, 8: 110}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'x', 'o', '.'): Counter({4: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 8, 5: 9, 6: 4, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x'): Counter({2: 2, 3: 3, 4: 4, 5: 4, 6: 3}),\n",
+ " ('x', 'o', 'x', 'o', '.', '.', 'o', '.', 'x'): Counter({4: 4, 5: 6, 7: 6}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 4, 3: 1, 6: 2, 7: 1}),\n",
+ " ('x', 'x', '.', '.', '.', 'o', 'x', 'o', 'o'): Counter({2: 5, 3: 5, 4: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x'): Counter({2: 1, 3: 1, 5: 1, 6: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({4: 5, 5: 2, 6: 2, 7: 2, 8: 1}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'x', '.', 'o', 'o'): Counter({4: 1, 6: 9}),\n",
+ " ('x', 'o', 'o', 'o', 'x', 'x', '.', 'x', '.'): Counter({6: 1, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'x', 'x', '.', 'o'): Counter({3: 3, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 3, 4: 7, 5: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 5, 2: 2, 3: 3, 6: 5, 7: 4}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({5: 15, 6: 487, 7: 10}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 1, 5: 1, 6: 1, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({5: 14, 6: 1, 7: 439}),\n",
+ " ('x', 'x', '.', '.', 'o', '.', 'o', 'x', 'o'): Counter({2: 10, 3: 1, 5: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', '.', 'o', 'x'): Counter({6: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({0: 747, 2: 600, 5: 1, 6: 499, 8: 184}),\n",
+ " ('.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 1, 1: 1, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', '.', 'x', 'x', 'o', '.', 'o'): Counter({3: 1, 7: 18}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({6: 11, 7: 11, 8: 681}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({0: 14, 2: 5, 3: 1, 4: 5, 5: 2, 6: 9, 8: 4}),\n",
+ " ('x', 'x', '.', 'o', '.', '.', 'x', 'o', 'o'): Counter({2: 4, 4: 3, 5: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'x', 'o', 'o'): Counter({4: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 3: 4, 4: 5, 5: 5, 8: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 1, 2: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 4: 8, 5: 2, 6: 7, 8: 5}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({6: 1, 7: 233, 8: 399}),\n",
+ " ('x', 'x', 'o', '.', 'x', 'o', '.', 'o', '.'): Counter({3: 1, 6: 1, 8: 172}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 4: 3, 7: 2, 8: 8}),\n",
+ " 'human?': False,\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', '.', 'x', 'x'): Counter({3: 11, 6: 14}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'x', 'x', 'o', 'o', 'o', '.'): Counter({8: 11}),\n",
+ " ('x', 'x', '.', 'x', 'o', 'o', '.', '.', 'o'): Counter({2: 7, 6: 5, 7: 3}),\n",
+ " ('x', 'o', 'x', 'o', '.', '.', '.', 'o', 'x'): Counter({4: 7, 5: 4, 6: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1268, 5: 788, 6: 687, 7: 14, 8: 1807}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 4: 1, 5: 2, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 3, 2: 1, 3: 1, 4: 1, 6: 8, 8: 2}),\n",
+ " ('x', 'x', 'o', '.', 'x', '.', '.', 'o', 'o'): Counter({3: 1, 5: 1, 6: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 6, 3: 4, 4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'o', '.', 'o', '.', 'x', '.', 'x', 'o'): Counter({2: 3, 4: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', 'x', 'o', 'x'): Counter(),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 25, 5: 1, 7: 1, 8: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 3: 1, 5: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'x', '.', 'x', 'o', 'o'): Counter({5: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 3, 3: 5, 4: 4, 6: 4, 7: 4}),\n",
+ " ('x', 'x', 'o', '.', '.', 'o', 'x', 'o', 'x'): Counter({3: 1, 4: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({1: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({1: 1, 3: 2, 5: 1, 6: 3, 7: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({1: 12, 3: 3, 5: 5, 7: 4, 8: 7}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 1, 3: 1, 5: 1, 7: 20}),\n",
+ " ('x', 'o', 'x', '.', 'x', '.', 'o', '.', 'o'): Counter({3: 1, 5: 1, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({1: 3, 3: 3, 4: 7, 6: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 1, 3: 451, 5: 807, 6: 1025, 8: 1897}),\n",
+ " ('x', 'o', 'o', 'o', 'x', 'x', 'o', 'x', '.'): Counter({8: 413}),\n",
+ " ('x', 'x', 'o', '.', 'o', '.', 'x', 'o', '.'): Counter({3: 11, 5: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', '.', '.', 'o'): Counter({6: 1, 7: 3}),\n",
+ " ('x', 'x', 'o', '.', '.', '.', 'x', 'o', 'o'): Counter({3: 9, 4: 2, 5: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 2, 3: 1, 5: 1, 8: 1}),\n",
+ " ('o', 'x', '.', 'x', 'o', 'x', '.', 'o', '.'): Counter({2: 1, 6: 2, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 43, 2: 1, 3: 1, 6: 2, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', 'o', 'o', '.'): Counter({8: 227}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', '.', 'o', '.', '.', 'x', 'o'): Counter({3: 1, 5: 1, 6: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({3: 2, 4: 4, 5: 5, 6: 4}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', '.', 'o', '.'): Counter({6: 1, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 1, 5: 1, 6: 1, 8: 1}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', 'x', '.', 'o'): Counter({2: 17, 3: 7, 7: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', 'x', 'x', '.'): Counter({5: 19, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', 'x', 'o', '.'): Counter({8: 3}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 442, 2: 5384, 3: 1790, 5: 7, 6: 14740, 7: 8, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o'): Counter({1: 3, 2: 2, 3: 3, 4: 3, 6: 6}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 106, 3: 2, 5: 2, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 7, 4: 3, 5: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', '.', 'x', '.'): Counter({6: 22, 8: 3}),\n",
+ " ('x', 'o', 'x', 'o', 'o', '.', '.', 'x', '.'): Counter({5: 7, 6: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({3: 1237, 6: 20, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({1: 2, 2: 3, 3: 3, 6: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({0: 3, 2: 4, 4: 3, 5: 1, 6: 3, 8: 2}),\n",
+ " ('x', 'o', 'o', 'o', '.', 'x', '.', 'x', '.'): Counter({4: 3, 6: 5, 8: 4}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({4: 3, 5: 1, 6: 8, 8: 1}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'o', 'x', 'o'): Counter({2: 20}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 1, 3: 1, 5: 1, 7: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 5, 2: 3, 3: 2, 4: 16, 5: 2, 6: 11, 7: 4}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', 'x', '.', '.'): Counter({5: 3, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'o', 'o', '.', '.'): Counter({4: 2, 7: 1, 8: 4}),\n",
+ " ('x', 'x', '.', 'o', '.', 'x', '.', 'o', 'o'): Counter({2: 5, 4: 3, 6: 3}),\n",
+ " ('x', 'o', '.', '.', 'o', 'o', 'x', '.', 'x'): Counter({2: 2, 3: 4, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 5: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({4: 1, 5: 1, 6: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', '.', '.', '.', 'o', 'o', 'x'): Counter({3: 1, 4: 4, 5: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({5: 31, 7: 38, 8: 43}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 4, 3: 745, 5: 519, 7: 305, 8: 2804}),\n",
+ " ('x', 'o', 'o', '.', '.', 'o', 'x', '.', 'x'): Counter({3: 3, 4: 4, 7: 5}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 1, 3: 1, 5: 1, 7: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 79, 3: 123, 8: 124}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', 'x', '.', 'o'): Counter({7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({4: 4, 5: 9, 7: 1, 8: 5}),\n",
+ " ('x', 'x', 'o', '.', '.', 'o', 'o', '.', 'x'): Counter({3: 3, 4: 5, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 295, 6: 110, 8: 303}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 5: 1, 6: 1, 8: 1}),\n",
+ " ('o', 'x', 'o', 'x', '.', 'x', 'o', '.', '.'): Counter({4: 7, 7: 2, 8: 4}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 4, 4: 14, 6: 3, 7: 2}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'o', '.', 'o', 'x'): Counter({4: 1, 6: 1}),\n",
+ " ('x', 'o', '.', '.', '.', 'x', 'o', 'x', 'o'): Counter({2: 3, 3: 4, 4: 5}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', '.', 'x', 'x'): Counter({4: 7, 6: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 2, 3: 20, 5: 2, 7: 11, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', 'x', '.', 'x'): Counter({4: 24, 7: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o'): Counter({1: 3, 3: 2, 4: 1, 5: 2}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'x', '.', 'o'): Counter({2: 3, 7: 1}),\n",
+ " ('x', 'o', 'o', '.', 'o', 'x', 'x', '.', '.'): Counter({3: 15, 7: 7, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', '.', 'x', 'o'): Counter({4: 3, 6: 1}),\n",
+ " ('x', 'x', 'o', '.', '.', 'x', 'o', '.', 'o'): Counter({3: 1, 4: 2, 7: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 2, 3: 3, 4: 5, 5: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'x', '.', 'o'): Counter({4: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', '.', 'x', 'o'): Counter({6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 3: 1, 6: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', 'x', 'o', 'x'): Counter({4: 9}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 4, 3: 3, 5: 8, 6: 10, 8: 5}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', '.', 'x', 'o'): Counter({2: 7, 5: 4, 6: 2}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'o', 'x', 'o', '.'): Counter({2: 1, 8: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 5: 1, 6: 729, 7: 1913, 8: 2}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'o', '.', 'x'): Counter({4: 14, 7: 1}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'x', 'o', '.', 'o'): Counter({2: 1, 7: 20}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 11, 5: 5, 6: 3, 7: 3, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 1, 3: 1, 5: 1, 6: 36, 8: 1}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', 'o', '.', 'x'): Counter({2: 8, 3: 2, 7: 2}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 5: 1, 6: 1, 7: 1, 8: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 4, 2: 3, 4: 3, 6: 3, 7: 2, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x'): Counter({3: 2, 4: 23, 5: 1, 7: 2}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 1, 2: 1, 3: 1, 4: 68, 5: 2, 6: 2, 7: 1, 8: 8}),\n",
+ " ('o', 'x', '.', '.', 'x', 'x', 'o', '.', 'o'): Counter({2: 1, 3: 13, 7: 19}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 3: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'o', '.', '.', '.'): Counter({6: 14, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 3, 4: 4, 5: 2, 6: 5, 8: 4}),\n",
+ " ('x', 'o', '.', '.', 'x', 'o', '.', 'x', 'o'): Counter({2: 39, 3: 1, 6: 1}),\n",
+ " ('x', 'x', '.', 'x', 'o', 'o', '.', 'o', 'x'): Counter({2: 1, 6: 1}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', 'x', 'o', 'x'): Counter({2: 1, 4: 21}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({0: 4, 2: 3, 6: 5, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 2: 1, 3: 1, 5: 21, 6: 1, 7: 38, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 5, 3: 4, 6: 6, 8: 5}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'o', 'x', 'o'): Counter({4: 15}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({3: 3, 4: 2, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 355, 6: 611, 8: 82}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 4: 5, 5: 2, 7: 3, 8: 6}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'o', 'x', 'o', 'o'): Counter({2: 251}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 6: 1, 7: 13, 8: 5}),\n",
+ " ('o', 'x', 'o', 'x', 'o', '.', '.', 'x', '.'): Counter({5: 1, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({3: 5, 4: 2, 5: 19, 7: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 3: 1, 5: 1, 8: 22}),\n",
+ " ('o', 'x', '.', 'x', '.', 'x', '.', 'o', 'o'): Counter({2: 3, 4: 3, 6: 3}),\n",
+ " ('o', 'x', '.', 'o', 'o', 'x', '.', 'x', '.'): Counter({2: 1, 6: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 4: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o'): Counter({2: 4, 3: 3, 4: 2, 6: 5}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 11, 5: 10, 6: 11, 8: 9}),\n",
+ " ('x', 'o', 'o', '.', 'o', 'x', '.', 'x', '.'): Counter({3: 2, 6: 9, 8: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({0: 3, 2: 3, 6: 4, 8: 5}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 95, 3: 1, 7: 141}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'o', 'o', 'x'): Counter({4: 7}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 357, 6: 1, 7: 42}),\n",
+ " ('x', 'x', 'o', 'x', 'x', 'o', '.', 'o', '.'): Counter({6: 2, 8: 27}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x'): Counter({3: 1, 4: 2, 5: 1, 6: 1}),\n",
+ " ('x', 'o', 'o', '.', '.', 'x', 'o', 'x', '.'): Counter({3: 2, 4: 4, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 3: 4, 4: 49, 5: 14, 6: 9, 7: 5, 8: 2}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 3: 1, 6: 1, 7: 1, 8: 4130}),\n",
+ " ('x', 'o', 'x', 'o', 'x', 'o', '.', 'x', '.'): Counter({6: 1, 8: 1}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({0: 4, 2: 3, 4: 2, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'x', 'x', 'o', '.', 'o', 'o'): Counter({2: 11, 6: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', 'x', '.', '.'): Counter({3: 12, 7: 3, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 4, 3: 2, 4: 6, 7: 7}),\n",
+ " ('o', 'x', 'o', 'x', 'o', 'x', '.', 'x', '.'): Counter({6: 5, 8: 7}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', 'x', '.', 'o'): Counter({3: 3, 7: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 2, 3: 1, 6: 1, 8: 17}),\n",
+ " ('o', 'x', 'o', 'x', 'x', 'o', '.', '.', '.'): Counter({6: 1, 7: 154, 8: 6}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 1, 3: 410, 8: 275}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 7: 25, 8: 1}),\n",
+ " ('x', 'o', '.', '.', 'o', 'x', 'o', 'x', '.'): Counter({2: 6, 3: 1, 8: 1}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', 'x', '.', 'o'): Counter({2: 14, 5: 4, 7: 1}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', 'o', 'x', '.'): Counter({2: 3, 4: 6, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({5: 67, 6: 297, 8: 160}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 3: 1, 5: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 4, 3: 1, 4: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('o', 'x', '.', 'o', 'x', 'x', '.', 'o', '.'): Counter({2: 1, 6: 4, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 3, 3: 151, 5: 104}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 1, 3: 1, 6: 1, 7: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({4: 15, 5: 1, 7: 2, 8: 1}),\n",
+ " ('x', 'x', 'o', 'x', '.', '.', 'o', '.', 'o'): Counter({4: 3, 5: 2, 7: 2}),\n",
+ " ('x', 'x', 'o', '.', '.', 'o', '.', 'o', 'x'): Counter({3: 6, 4: 7, 6: 3}),\n",
+ " ('x', 'o', 'x', 'o', '.', 'o', 'x', '.', '.'): Counter({4: 7, 7: 1, 8: 3}),\n",
+ " ('x', 'o', 'o', '.', '.', 'x', 'x', 'o', '.'): Counter({3: 4, 4: 5, 8: 4}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', 'x', '.', '.'): Counter({4: 3, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', '.', '.', 'x'): Counter({4: 3, 6: 1, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 2, 5: 1, 6: 1, 7: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', 'o', '.', 'o'): Counter({7: 354}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 4, 3: 2, 4: 1, 8: 11}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 3, 4: 5, 5: 3, 6: 3, 7: 7}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 5, 3: 4, 4: 6, 6: 3, 8: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 307, 2: 445, 6: 222, 7: 470, 8: 880}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 2, 3: 3, 4: 2, 6: 2}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', '.', '.', 'x'): Counter({5: 1, 6: 1, 7: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', 'x', 'x', 'o'): Counter({5: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({0: 3, 2: 7, 3: 10, 5: 6, 6: 2, 8: 4}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', 'x', 'o', 'o'): Counter(),\n",
+ " ('x', 'x', 'o', '.', 'o', 'x', '.', 'x', 'o'): Counter({3: 3, 6: 20}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', 'x', 'o', 'x'): Counter({3: 18}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', 'o', 'x', '.'): Counter({3: 1, 8: 1}),\n",
+ " ('x', 'x', '.', '.', 'o', 'x', 'o', '.', 'o'): Counter({2: 9, 3: 1, 7: 4}),\n",
+ " ('x', 'x', 'o', 'o', 'x', '.', 'x', '.', 'o'): Counter({5: 38, 7: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 4: 1, 5: 1, 7: 1, 8: 1}),\n",
+ " ('x', '.', 'x', '.', 'o', '.', 'o', 'x', 'o'): Counter({1: 9, 3: 6, 5: 7}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 4, 3: 4, 4: 1, 5: 2, 7: 5}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({4: 9, 5: 1, 6: 1, 7: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({4: 4, 5: 2, 6: 4, 7: 3, 8: 5}),\n",
+ " ('x', 'o', 'o', '.', '.', 'x', '.', 'x', 'o'): Counter({3: 7, 4: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 9, 4: 13, 7: 2, 8: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 5: 1, 7: 1, 8: 19}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x'): Counter({2: 1, 3: 1, 4: 1, 6: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({5: 160, 7: 307, 8: 395}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 4: 9, 5: 7, 7: 3, 8: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 3, 4: 2, 5: 3, 6: 5, 8: 5}),\n",
+ " ('.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 2373,\n",
+ " 2: 3710,\n",
+ " 3: 3193,\n",
+ " 5: 9975,\n",
+ " 6: 2080,\n",
+ " 7: 31,\n",
+ " 8: 1687}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', '.', 'o', 'x'): Counter({4: 3, 6: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 1, 3: 1, 6: 1, 8: 1}),\n",
+ " ('x', 'o', 'x', 'o', 'x', '.', '.', 'x', 'o'): Counter({5: 1, 6: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 4, 3: 2, 4: 6, 5: 6, 8: 4}),\n",
+ " ('x', 'o', 'x', 'o', '.', '.', 'o', 'x', '.'): Counter({4: 4, 5: 3, 8: 4}),\n",
+ " ('o', 'x', 'o', 'x', '.', 'o', '.', 'x', '.'): Counter({4: 4, 6: 1, 8: 4}),\n",
+ " ('x', 'o', '.', '.', 'x', 'o', 'o', 'x', '.'): Counter({2: 6, 3: 9, 8: 492}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 10, 3: 4, 7: 3, 8: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 6, 3: 4, 4: 2, 6: 2, 8: 8}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'o', 'x', '.'): Counter({2: 10, 8: 2}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({1: 3, 3: 1, 5: 18, 6: 2}),\n",
+ " ('x', 'o', 'x', 'o', '.', '.', 'x', '.', 'o'): Counter({4: 4, 5: 3, 7: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 1, 3: 1, 6: 1, 7: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 2, 3: 2, 4: 14, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', '.', 'x', '.'): Counter({4: 3, 6: 3, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'x', 'o', '.'): Counter({4: 5, 5: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', '.', 'x', '.', 'o'): Counter({3: 14, 5: 4, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({4: 3, 5: 4, 6: 3, 7: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 2, 4: 1, 5: 2, 6: 6, 8: 3}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'x', '.', '.', 'o'): Counter({6: 10, 7: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 6: 20, 7: 3, 8: 1}),\n",
+ " ('x', 'x', '.', 'o', '.', '.', 'o', 'o', 'x'): Counter({2: 3, 4: 3, 5: 5}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', 'o', '.', 'x'): Counter({2: 6, 4: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o'): Counter({2: 10, 3: 1, 5: 1, 6: 17}),\n",
+ " ('x', 'o', 'o', '.', 'o', '.', 'x', '.', 'x'): Counter({3: 8, 5: 1, 7: 5}),\n",
+ " ('x', 'o', 'x', '.', 'x', '.', 'o', 'x', 'o'): Counter({3: 3, 5: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 1, 5: 3, 6: 1, 8: 1}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', 'x', 'o', '.'): Counter({3: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 8, 3: 4, 5: 3, 7: 1, 8: 7}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 4: 4, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', '.', 'o', '.', '.', 'o', 'x'): Counter({3: 1, 5: 1, 6: 8}),\n",
+ " ('x', 'o', 'x', 'o', 'x', '.', 'o', 'x', 'o'): Counter({5: 3}),\n",
+ " ('x', 'x', '.', 'o', 'x', '.', 'x', 'o', 'o'): Counter({2: 3, 5: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 1, 4: 4, 6: 2, 8: 4}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 646, 3: 101, 6: 314, 7: 1527, 8: 56}),\n",
+ " ('x', 'x', '.', 'x', 'o', 'x', '.', 'o', 'o'): Counter({2: 2, 6: 9}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 4, 3: 2, 4: 4, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'o', '.', 'x'): Counter({2: 21, 7: 1}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({0: 2, 2: 3, 4: 4, 6: 2, 8: 4}),\n",
+ " ('x', 'x', 'o', '.', '.', '.', 'o', 'x', 'o'): Counter({3: 1, 4: 4, 5: 4}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 6, 3: 1, 5: 1, 7: 12}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({5: 3, 6: 31, 7: 2, 8: 2}),\n",
+ " ('x', 'o', 'x', 'o', '.', '.', '.', 'x', 'o'): Counter({4: 4, 5: 3, 6: 4}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({0: 1, 2: 1, 3: 1, 5: 1, 6: 5, 8: 4}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 5: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 3: 1, 4: 1, 8: 1}),\n",
+ " ('x', 'o', 'x', '.', 'o', '.', 'x', '.', 'o'): Counter({3: 9, 5: 1, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 1, 3: 1, 4: 1, 7: 1}),\n",
+ " ('o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 18, 3: 1, 5: 1, 6: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 1, 3: 4, 5: 3, 6: 6, 8: 12}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', '.', 'x', 'o'): Counter({2: 5, 4: 4, 6: 2}),\n",
+ " ('x', 'x', 'o', 'x', 'o', '.', '.', 'x', 'o'): Counter({5: 10, 6: 6}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 95, 5: 26, 6: 46, 7: 206, 8: 35}),\n",
+ " ('x', 'x', 'o', 'x', 'x', '.', '.', 'o', 'o'): Counter({5: 11, 6: 13}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 3: 1, 6: 1, 8: 1}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', '.', 'o', 'x'): Counter({2: 9, 3: 12, 6: 2}),\n",
+ " ('x', 'x', '.', '.', 'o', '.', 'x', 'o', 'o'): Counter({2: 5, 3: 18, 5: 4}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 158, 3: 293, 6: 560, 7: 99, 8: 535}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 2: 1, 3: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x'): Counter({1: 3, 3: 3, 4: 3, 5: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 5, 3: 13, 6: 1, 8: 4}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'x', '.', 'o', '.'): Counter({3: 1, 6: 15, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 263, 5: 1, 8: 384}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 11, 3: 2, 4: 3, 5: 2, 8: 7}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 4, 3: 1, 4: 1, 5: 3, 6: 1, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 1, 3: 1, 4: 5, 5: 2, 6: 1, 8: 13}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 4, 3: 4, 6: 5, 8: 10}),\n",
+ " ('x', 'x', '.', 'x', '.', 'o', '.', 'o', 'o'): Counter({2: 8, 4: 3, 6: 4}),\n",
+ " ('.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 25,\n",
+ " 1: 13,\n",
+ " 2: 89,\n",
+ " 3: 1,\n",
+ " 4: 45379,\n",
+ " 5: 1,\n",
+ " 6: 5,\n",
+ " 7: 25,\n",
+ " 8: 65}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'x', '.', 'o', 'o'): Counter({2: 3, 6: 24}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 2, 4: 1, 6: 1, 7: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({5: 141, 6: 10, 8: 8}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 11, 7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 4, 4: 3, 6: 4, 7: 1, 8: 4}),\n",
+ " ('x', 'o', 'x', 'o', 'o', '.', 'x', '.', 'x'): Counter({5: 5, 7: 22}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', 'x', '.', 'x'): Counter({5: 32, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 1, 2: 622, 3: 1, 6: 1, 7: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 3: 1, 6: 1, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({1: 1, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x'): Counter({2: 1, 4: 1, 5: 1, 6: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 1, 3: 1, 5: 1, 8: 28}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o'): Counter({2: 1, 3: 128, 6: 306}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 2, 3: 1, 4: 1, 5: 1, 6: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 4: 6, 5: 2, 7: 3, 8: 4}),\n",
+ " ('x', 'o', 'x', 'o', '.', 'o', 'x', 'o', 'x'): Counter({4: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 3: 160, 5: 8, 6: 123, 8: 5}),\n",
+ " ('x', 'o', '.', 'o', 'o', 'x', '.', 'x', '.'): Counter({2: 4, 6: 4, 8: 7}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 4: 49, 5: 2, 6: 7, 7: 8, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 32, 5: 1, 7: 21, 8: 1}),\n",
+ " ('x', 'o', '.', '.', 'o', 'x', '.', 'x', 'o'): Counter({2: 3, 3: 5, 6: 5}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 2, 3: 2, 4: 2, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 2, 4: 1, 6: 1, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', '.', '.', 'o'): Counter({2: 4, 6: 3, 7: 5}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 2, 4: 1, 5: 1, 7: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 3: 1, 6: 32, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', '.', 'o', '.'): Counter({4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'o', 'x', '.'): Counter({4: 9, 5: 2, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 28, 2: 37, 3: 44, 6: 213, 8: 343}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 4: 4, 5: 4, 6: 3, 8: 6}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({1: 1, 3: 1, 4: 2, 5: 4, 6: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 2, 3: 291, 8: 543}),\n",
+ " ('x', 'x', '.', 'o', '.', 'x', 'o', 'x', 'o'): Counter({2: 2, 4: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o'): Counter({1: 1, 3: 1196, 6: 8}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o'): Counter({2: 6, 3: 6, 4: 1, 5: 1, 6: 8}),\n",
+ " ('x', 'x', '.', 'o', '.', '.', 'o', 'x', 'o'): Counter({2: 4, 4: 5, 5: 4}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', '.', 'o', '.'): Counter({2: 13, 6: 5, 8: 6}),\n",
+ " ('o', 'x', 'o', 'x', '.', 'x', 'o', 'x', 'o'): Counter({4: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({5: 17, 7: 11, 8: 487}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({4: 1, 6: 7, 7: 2, 8: 4}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', 'x', 'o', 'x'): Counter({2: 1, 3: 24}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 7, 3: 6, 5: 1, 6: 3, 7: 5}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 3, 4: 3, 5: 3, 6: 2}),\n",
+ " ('x', 'x', 'o', 'x', 'x', 'o', 'o', '.', '.'): Counter({7: 1, 8: 20}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({4: 3, 6: 3, 7: 2, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', 'x', 'o', '.', 'o'): Counter({2: 4, 4: 3, 7: 4}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 4, 3: 1, 4: 4, 7: 2, 8: 6}),\n",
+ " ('x', 'o', 'x', 'o', 'o', '.', 'x', '.', '.'): Counter({5: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 7, 4: 3, 7: 2, 8: 9}),\n",
+ " ('x', 'x', '.', '.', 'o', '.', 'o', 'o', 'x'): Counter({2: 10, 3: 1, 5: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 7, 3: 4, 4: 1, 6: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 151, 5: 103, 8: 306}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 3, 2: 2, 3: 5, 4: 3, 6: 7, 8: 1}),\n",
+ " ('x', 'x', 'o', '.', 'o', '.', 'x', 'o', 'x'): Counter({3: 3, 5: 1}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'o', 'x', '.', 'o'): Counter({2: 24, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 6, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 1, 3: 1, 5: 5, 6: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({3: 1, 4: 1, 5: 1, 7: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', '.', '.', '.'): Counter({6: 3, 7: 2, 8: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 1, 3: 1, 5: 1, 6: 1, 7: 9}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 26, 7: 2, 8: 1}),\n",
+ " ('x', 'x', 'o', 'x', 'x', '.', 'o', '.', 'o'): Counter({5: 11, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', '.', '.', 'o'): Counter({4: 3, 6: 3, 7: 4}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 1, 4: 1, 6: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', '.', 'x', '.'): Counter({3: 1, 6: 1, 8: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 2, 3: 4, 4: 11, 5: 1, 8: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 2, 3: 4, 4: 12, 6: 3, 7: 2, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({6: 69, 7: 176, 8: 75}),\n",
+ " ('x', 'o', 'x', 'o', 'x', '.', 'o', 'x', '.'): Counter({5: 1, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 22, 3: 1, 5: 1, 7: 1}),\n",
+ " ('o', 'x', '.', 'x', 'x', 'o', '.', '.', 'o'): Counter({2: 63, 6: 2, 7: 63}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 8, 3: 1, 4: 2, 5: 1, 7: 2}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'o', 'o', '.', 'x'): Counter({4: 17, 7: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', 'o', 'x', 'o'): Counter({3: 1272}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'o', '.', 'x', '.'): Counter({6: 8, 8: 7}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 2, 3: 4, 4: 4, 6: 4, 7: 5}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', '.', 'o', 'x'): Counter({2: 3, 6: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({5: 10, 6: 11, 8: 586}),\n",
+ " ('o', 'o', '.', 'o', 'x', 'x', '.', 'x', '.'): Counter({2: 1, 6: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', 'x', 'x', '.'): Counter({4: 6, 8: 13}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o'): Counter({1: 1, 2: 2, 3: 4, 6: 19}),\n",
+ " ('x', 'x', 'o', 'x', 'o', '.', '.', 'o', '.'): Counter({5: 1, 6: 7, 8: 2}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({4: 1, 5: 1, 6: 1, 7: 1}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'o', '.', 'o', 'x'): Counter({6: 31}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({3: 10, 5: 8, 6: 30, 7: 7}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 1, 3: 1, 4: 1, 8: 2}),\n",
+ " ('x', 'x', 'o', 'o', 'x', '.', 'x', 'o', '.'): Counter({5: 1, 8: 3}),\n",
+ " ('x', 'o', 'o', '.', '.', 'x', 'x', '.', 'o'): Counter({3: 3, 4: 5, 7: 4}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 11, 6: 6, 7: 4, 8: 4}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 174, 3: 455, 7: 1}),\n",
+ " ('x', 'o', 'x', 'o', '.', 'o', 'x', '.', 'x'): Counter({4: 14, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 1, 5: 1, 6: 1, 8: 15}),\n",
+ " ('x', 'o', 'o', '.', 'x', '.', 'x', '.', 'o'): Counter({3: 726, 5: 5, 7: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 4: 4, 6: 4, 8: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 1, 3: 1, 5: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 3, 3: 2, 4: 8, 5: 4, 7: 4}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', 'x', 'o', '.'): Counter({2: 7, 3: 6, 8: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 5, 4: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'o', 'x', '.', '.'): Counter({7: 1, 8: 22}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'x', 'o', 'o', '.'): Counter({4: 3, 8: 10}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', '.', 'o', 'x'): Counter({4: 5, 5: 4, 6: 3}),\n",
+ " ('o', 'x', 'o', 'x', '.', 'x', 'o', 'x', '.'): Counter({4: 5, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', '.', 'o', 'x'): Counter({2: 11, 5: 5, 6: 2}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'x', 'o', 'x'): Counter({4: 3, 5: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 1, 3: 1, 4: 8, 5: 3, 6: 5, 8: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 23, 3: 1, 6: 1, 7: 2}),\n",
+ " ('o', 'x', '.', 'o', 'x', 'x', '.', '.', 'o'): Counter({2: 1, 6: 20, 7: 26}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 7: 182, 8: 177}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', '.', 'o', 'x'): Counter({2: 6, 4: 6, 6: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 4, 4: 3, 6: 3, 7: 5, 8: 5}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'o', '.', '.', 'x'): Counter({6: 18, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({3: 1, 4: 13, 6: 1, 7: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 2, 4: 3, 6: 4, 7: 2}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 15, 2: 6, 5: 1, 6: 1, 7: 1, 8: 7}),\n",
+ " ('o', 'x', '.', '.', 'x', 'x', 'o', 'o', '.'): Counter({2: 1, 3: 22, 8: 1}),\n",
+ " ('x', 'x', 'o', 'x', 'o', '.', '.', 'o', 'x'): Counter({5: 1, 6: 25}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', 'o', '.', '.'): Counter({7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 3, 3: 4, 4: 5, 6: 4, 7: 3}),\n",
+ " ('x', 'o', '.', 'o', 'x', 'x', '.', 'x', 'o'): Counter({2: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({4: 7, 5: 4, 6: 2, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 6: 1, 7: 2, 8: 20}),\n",
+ " ('x', 'o', 'x', 'o', '.', 'o', '.', 'x', '.'): Counter({4: 3, 6: 3, 8: 2}),\n",
+ " ('x', 'o', 'o', '.', 'x', '.', '.', 'x', 'o'): Counter({3: 1, 5: 11, 6: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 6, 3: 1, 5: 3, 6: 2}),\n",
+ " ('x', 'o', 'x', '.', 'o', '.', 'o', 'x', '.'): Counter({3: 3, 5: 5, 8: 4}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3, 3: 3, 4: 4, 7: 5, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', 'x', 'o', '.'): Counter({2: 9, 5: 3, 8: 1}),\n",
+ " ('x', 'x', 'o', '.', 'x', 'o', 'x', 'o', '.'): Counter({3: 1, 8: 24}),\n",
+ " ('x', 'x', '.', 'o', 'x', '.', '.', 'o', 'o'): Counter({2: 419, 5: 1, 6: 5}),\n",
+ " ('o', 'x', 'o', 'x', 'x', '.', '.', '.', 'o'): Counter({5: 47, 6: 1, 7: 80}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 9, 4: 4, 6: 2, 7: 2, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', '.', 'x', 'x', 'o', 'o', '.'): Counter({3: 1, 8: 24}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 4, 4: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', 'o', '.', 'x'): Counter({2: 9, 5: 2, 7: 1}),\n",
+ " ('x', 'o', 'x', '.', '.', '.', 'x', 'o', 'o'): Counter({3: 5, 4: 5, 5: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 8, 4: 4, 5: 3, 6: 4, 7: 2}),\n",
+ " ('x', 'x', 'o', '.', '.', 'x', 'o', 'o', '.'): Counter({3: 1, 4: 2, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', '.', '.', 'o', 'x', '.', 'o', 'o'): Counter({2: 16, 3: 1, 6: 11}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'o', 'x', '.'): Counter({4: 9, 8: 1}),\n",
+ " ('x', 'x', 'o', '.', 'x', '.', 'o', 'o', '.'): Counter({3: 1, 5: 1, 8: 125}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 1, 3: 1, 5: 1, 6: 2, 8: 1}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', 'o', 'x', '.'): Counter({2: 10, 5: 4, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 18, 4: 1, 5: 2, 7: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 5, 4: 6, 6: 4, 7: 4, 8: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 2, 4: 4, 5: 3, 6: 5, 7: 2, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'o', 'o', 'x'): Counter({2: 12}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', '.', 'x', 'o'): Counter({4: 3, 5: 3, 6: 1}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', 'x', 'o', 'o'): Counter({3: 504}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', 'x', 'o', 'x'): Counter({5: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 1, 3: 1, 4: 1, 5: 1, 6: 1, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 12, 2: 11, 3: 2, 6: 1, 7: 33, 8: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 2, 4: 1, 6: 1, 8: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 1, 3: 452, 7: 12}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 1, 3: 606, 7: 692}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({4: 3, 5: 2, 6: 4, 8: 2}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 2, 3: 1, 4: 5, 6: 4, 7: 4}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', '.', 'x', 'x'): Counter({5: 10, 6: 14}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 1, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 4, 3: 1, 6: 4, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 1, 3: 1, 5: 1, 7: 36}),\n",
+ " ('o', 'x', '.', 'x', 'x', 'o', '.', 'o', '.'): Counter({2: 14, 6: 8, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 4: 1, 6: 2, 8: 2}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 12, 3: 1, 4: 1, 5: 2, 8: 9}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', 'o', 'x', 'x'): Counter({4: 7}),\n",
+ " ('x', 'x', 'o', 'x', 'o', '.', '.', '.', 'o'): Counter({5: 1, 6: 13, 7: 1}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'x', '.', 'o', '.'): Counter({6: 9, 8: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 4: 1, 6: 4, 7: 4, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', 'x', 'x', '.'): Counter({3: 3, 8: 11}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'x', '.', 'o', 'o'): Counter({6: 10}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', 'x', 'o', '.'): Counter({2: 3, 4: 4, 8: 3}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', 'o', 'x', '.'): Counter({2: 6, 3: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 3, 4: 4, 6: 3, 8: 4}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 5: 1, 6: 1, 7: 2, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', '.', '.', 'x'): Counter({6: 28, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 5: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', 'x', 'o', 'x'): Counter({2: 3, 5: 49}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'o', '.', '.'): Counter({4: 6, 7: 3, 8: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x'): Counter({3: 1, 4: 1, 5: 1, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 1, 4: 10, 6: 1, 8: 1}),\n",
+ " ('x', '.', 'o', '.', '.', 'x', 'o', 'x', 'o'): Counter({1: 4, 3: 4, 4: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 10, 4: 3, 6: 7, 7: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'o', 'x', 'x'): Counter({4: 14, 5: 1}),\n",
+ " ('x', 'x', 'o', '.', '.', 'x', '.', 'o', 'o'): Counter({3: 2, 4: 3, 6: 4}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', 'x', 'x', 'o'): Counter(),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 163, 3: 1, 8: 254}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 371, 7: 385, 8: 140}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 2: 1, 3: 16, 6: 4, 7: 1, 8: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({4: 7, 5: 3, 6: 3, 7: 2, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 1, 4: 33, 5: 1, 8: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 4: 3, 5: 3, 6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', '.', '.', 'o', 'o', 'x', '.'): Counter({3: 2, 4: 4, 8: 5}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({0: 3, 2: 2, 5: 1, 6: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 1, 3: 1, 4: 1, 7: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 230, 7: 1, 8: 300}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 2, 4: 1, 6: 2, 7: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 155, 5: 1, 7: 244, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 8, 4: 8, 5: 4, 7: 3, 8: 4}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o'): Counter({2: 1, 3: 1, 4: 1, 5: 1}),\n",
+ " ('x', 'x', 'o', '.', 'o', '.', 'x', 'x', 'o'): Counter({3: 3, 5: 10}),\n",
+ " ('x', 'x', 'o', '.', '.', 'x', 'x', 'o', 'o'): Counter({3: 3, 4: 1}),\n",
+ " ('x', 'x', 'o', '.', 'x', '.', 'o', '.', 'o'): Counter({3: 1, 5: 1, 7: 112}),\n",
+ " ('o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 13, 3: 5, 6: 1, 8: 2}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'x', 'o', '.'): Counter({2: 3, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'x', 'x', 'o'): Counter({4: 3, 5: 13}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({3: 427, 7: 696, 8: 139}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'o', '.', 'o', '.'): Counter({4: 3, 6: 3, 8: 6}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 1, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 10}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', '.', 'o', 'o'): Counter({6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 8, 3: 3, 4: 5, 7: 3, 8: 4}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 4: 1, 5: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 213, 6: 423, 8: 58}),\n",
+ " ('x', 'x', 'o', '.', '.', 'x', 'o', 'x', 'o'): Counter({3: 2, 4: 6}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'o', 'o', 'o', 'x'): Counter({4: 7}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 1, 4: 1, 5: 1, 8: 3}),\n",
+ " ('x', 'x', '.', 'x', 'o', 'o', '.', 'o', '.'): Counter({2: 6, 6: 3, 8: 4}),\n",
+ " ('x', 'x', '.', '.', '.', 'o', 'o', 'o', 'x'): Counter({2: 4, 3: 3, 4: 8}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'o', 'x', 'o', '.'): Counter({8: 218}),\n",
+ " ('x', 'o', 'x', 'o', 'o', '.', '.', '.', 'x'): Counter({5: 14, 6: 1, 7: 1}),\n",
+ " ('x', 'x', '.', '.', 'o', 'x', 'x', 'o', 'o'): Counter({2: 1, 3: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 1, 5: 1, 6: 1, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 7, 3: 11, 6: 2, 7: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({5: 5, 6: 21, 8: 574}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 1, 4: 1, 5: 1, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({1: 281, 3: 123, 5: 761, 7: 647, 8: 1751}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 2, 3: 4, 4: 3, 6: 1, 8: 5}),\n",
+ " ('o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 277, 3: 1980, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 3: 1, 4: 1, 5: 1, 7: 1, 8: 1}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 7, 2: 9, 4: 22, 5: 1, 6: 13, 7: 6, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 9, 3: 3, 5: 1, 8: 4}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 1, 3: 426, 5: 70, 6: 482, 7: 6}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 1, 2: 2, 3: 2, 6: 2, 8: 5}),\n",
+ " ('o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 2, 3: 1, 4: 1, 6: 1, 8: 1}),\n",
+ " ('x', 'o', '.', '.', 'x', 'x', 'o', 'x', 'o'): Counter({2: 1, 3: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 412, 5: 64, 6: 205, 7: 141, 8: 176}),\n",
+ " ('x', '.', 'o', '.', 'x', 'x', 'o', 'x', 'o'): Counter({1: 1, 3: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 5: 38, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 1, 3: 3, 4: 3, 7: 1}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'x', 'x', 'o', '.'): Counter({3: 3, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'x', '.', 'o'): Counter({4: 3, 5: 3, 7: 2}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', 'x', '.', '.'): Counter({7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 1, 3: 2, 5: 2811, 6: 2, 7: 1}),\n",
+ " ('x', 'x', '.', '.', 'x', 'o', 'x', 'o', 'o'): Counter({2: 21, 3: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({3: 2, 4: 4, 5: 5, 6: 4, 7: 4}),\n",
+ " ('x', 'x', 'o', '.', 'x', 'x', '.', 'o', 'o'): Counter({3: 3, 6: 16}),\n",
+ " ('x', 'o', 'x', '.', '.', '.', 'o', 'x', 'o'): Counter({3: 3, 4: 3, 5: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 1, 2: 2, 3: 2, 4: 2, 6: 9, 7: 2}),\n",
+ " ('x', 'o', 'o', 'o', 'x', 'x', '.', 'x', 'o'): Counter({6: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'x', 'x', 'o', 'o'): Counter({3: 43}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 6, 5: 16, 6: 1, 7: 2}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 17, 3: 1, 5: 1, 6: 3, 8: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 460, 5: 110, 8: 403}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', 'x', '.', 'x'): Counter({3: 22, 7: 1}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', 'x', '.', 'o'): Counter({2: 5, 4: 4, 7: 3}),\n",
+ " ('o', 'x', '.', '.', 'o', 'x', 'o', 'x', '.'): Counter({2: 1, 3: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 1, 3: 1, 5: 1, 7: 1}),\n",
+ " ('o', 'x', 'o', 'x', '.', 'x', '.', 'o', '.'): Counter({4: 6, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 4: 3, 5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({4: 5, 5: 3, 7: 4, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 2, 3: 5, 4: 4, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'o', '.', '.'): Counter({2: 9, 7: 3, 8: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 46, 5: 1, 7: 501}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 39, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', '.', 'x', '.'): Counter({5: 2, 6: 2, 8: 1}),\n",
+ " ('x', 'x', '.', '.', '.', 'o', 'o', 'x', 'o'): Counter({2: 3, 3: 1, 4: 6}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', '.', '.', 'x'): Counter({3: 1, 6: 5, 7: 1}),\n",
+ " ('x', 'x', 'o', 'x', '.', '.', '.', 'o', 'o'): Counter({4: 2, 5: 3, 6: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 5, 4: 7, 7: 3, 8: 4}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 3: 1, 4: 3, 6: 5, 7: 4, 8: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 6, 3: 5, 4: 2, 7: 1}),\n",
+ " ('x', 'o', '.', '.', 'o', 'x', 'x', '.', 'o'): Counter({2: 1, 3: 14, 7: 4}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 5, 6: 4, 8: 4}),\n",
+ " ('x', 'x', 'o', '.', '.', 'o', 'x', 'o', '.'): Counter({3: 4, 4: 1, 8: 6})},\n",
+ " {('x', '.', 'o', '.', 'o', 'x', '.', 'x', 'o'): Counter({1: 1, 3: 1, 6: 4}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 3, 4: 3, 5: 3, 6: 5, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', 'x', 'o', 'o', 'x'): Counter({2: 1, 4: 3}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 17, 2: 29, 3: 36, 6: 25, 8: 12}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 1, 3: 1, 6: 1, 7: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 20, 3: 532, 4: 78, 7: 130, 8: 261}),\n",
+ " ('x', 'x', '.', '.', 'o', 'x', 'o', 'x', 'o'): Counter({2: 12, 3: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 2, 4: 4, 5: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 2, 3: 2, 4: 2, 5: 4}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 23, 3: 165, 4: 4422, 5: 56, 6: 432, 7: 203, 8: 34}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', '.', 'x', 'o'): Counter({3: 3, 6: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x'): Counter({2: 1, 3: 2, 4: 1, 5: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 3, 6: 38, 7: 2, 8: 3}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'o', '.', 'x', '.'): Counter({3: 1, 6: 1, 8: 47}),\n",
+ " ('x', 'x', '.', 'o', '.', 'x', 'x', 'o', 'o'): Counter({2: 3, 4: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 1, 3: 1, 6: 4, 8: 1}),\n",
+ " ('x', 'x', '.', '.', 'o', 'x', 'o', 'o', '.'): Counter({2: 9, 3: 1, 8: 1}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 7, 2: 3, 6: 6, 7: 1, 8: 4}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 4: 5, 5: 3, 6: 4, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', '.', 'x', 'o'): Counter({2: 3, 6: 1}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 8, 3: 3, 5: 1, 6: 1, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({3: 1, 5: 9, 6: 1, 7: 15}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'x', 'o', '.', 'o'): Counter({4: 9, 7: 5}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 4, 3: 1, 4: 1, 6: 4, 8: 2}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'o', '.', 'x'): Counter({4: 21, 5: 1, 7: 1}),\n",
+ " ('x', 'x', '.', '.', 'x', 'o', '.', 'o', 'o'): Counter({2: 69, 3: 1, 6: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 6: 1, 7: 1, 8: 7}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 333, 3: 489, 5: 380, 6: 1023, 8: 837}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 3, 3: 3, 4: 5, 6: 3, 8: 2}),\n",
+ " ('x', 'o', 'x', 'o', 'x', 'o', 'o', 'x', '.'): Counter({8: 785}),\n",
+ " ('o', 'x', 'o', 'x', '.', '.', '.', 'x', 'o'): Counter({4: 5, 5: 2, 6: 3}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 2: 18, 3: 3, 4: 2, 6: 3, 7: 1, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({3: 2, 4: 2, 5: 4, 6: 3, 7: 3}),\n",
+ " ('x', 'x', '.', 'o', '.', 'x', 'o', 'o', '.'): Counter({2: 4, 4: 2, 8: 8}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 14, 3: 13, 6: 2, 7: 1, 8: 2}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 103, 3: 56, 5: 276, 6: 90, 7: 784}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({4: 5, 6: 2, 7: 3, 8: 3}),\n",
+ " ('o', 'x', 'o', 'x', 'o', 'x', '.', '.', '.'): Counter({6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 1, 3: 1, 6: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', '.', 'x', '.', 'x', 'o', 'o'): Counter({3: 3, 5: 29}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 39, 2: 2317, 3: 58, 4: 1404, 6: 1572, 7: 7, 8: 22}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'x', '.', '.', 'o'): Counter({3: 1, 6: 5, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 1, 5: 1, 6: 1, 7: 1}),\n",
+ " ('x', 'o', '.', 'o', 'x', 'x', '.', '.', 'o'): Counter({2: 17, 6: 22, 7: 3}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'x', 'o', 'o', '.'): Counter({2: 1, 8: 22}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 6, 3: 9, 4: 1, 5: 5, 6: 24}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'x', 'o', 'o'): Counter({2: 92}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', '.', 'x', 'o'): Counter({2: 6, 3: 3, 6: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 2, 4: 1, 5: 3, 8: 1}),\n",
+ " ('x', 'o', 'x', '.', 'x', '.', 'o', 'o', '.'): Counter({3: 1, 5: 1, 8: 321}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'x', 'o', '.'): Counter({4: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 4, 5: 7, 6: 3, 8: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x'): Counter({2: 1, 3: 1, 4: 21, 5: 1, 6: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x'): Counter({4: 272, 5: 75, 7: 140}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 4, 3: 1, 6: 1, 7: 3}),\n",
+ " ('x', 'x', '.', '.', '.', 'o', 'x', 'o', 'o'): Counter({2: 29, 3: 53, 4: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x'): Counter({2: 3, 3: 1, 5: 1, 6: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({4: 26, 5: 2, 6: 1, 7: 1, 8: 3}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'x', '.', 'o', 'o'): Counter({4: 2, 6: 10}),\n",
+ " ('x', 'o', 'o', 'o', 'x', 'x', '.', 'x', '.'): Counter({6: 1, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'x', 'x', '.', 'o'): Counter({3: 3, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 3, 4: 5, 5: 2, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 4, 2: 3, 3: 3, 6: 3, 7: 4}),\n",
+ " ('x', 'o', 'x', 'o', 'x', '.', '.', '.', 'o'): Counter({5: 7, 6: 703, 7: 6}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 1, 5: 1, 6: 1, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({5: 10, 6: 1, 7: 310}),\n",
+ " ('x', 'x', '.', '.', 'o', '.', 'o', 'x', 'o'): Counter({2: 4, 3: 3, 5: 2}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', '.', 'o', 'x'): Counter({6: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({0: 28, 2: 18, 5: 1, 6: 26, 8: 19}),\n",
+ " ('.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 1, 1: 1, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', '.', 'x', 'x', 'o', '.', 'o'): Counter({3: 1, 7: 20}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({6: 16, 7: 14, 8: 521}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({0: 6, 2: 9, 3: 3, 4: 3, 5: 4, 6: 4, 8: 15}),\n",
+ " ('x', 'x', '.', 'o', '.', '.', 'x', 'o', 'o'): Counter({2: 88, 4: 4, 5: 5}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'x', 'o', 'o'): Counter({4: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 3: 367, 4: 125, 5: 1, 8: 1}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 1, 2: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 5, 4: 5, 5: 3, 6: 3, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({6: 1, 7: 219, 8: 115}),\n",
+ " ('x', 'x', 'o', '.', 'x', 'o', '.', 'o', '.'): Counter({3: 1, 6: 1, 8: 63}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({3: 2, 4: 5, 7: 4, 8: 2}),\n",
+ " 'human?': False,\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', '.', 'x', 'x'): Counter({3: 10, 6: 10}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'x', 'x', 'o', 'o', 'o', '.'): Counter({8: 6}),\n",
+ " ('x', 'x', '.', 'x', 'o', 'o', '.', '.', 'o'): Counter({2: 11, 6: 5, 7: 2}),\n",
+ " ('x', 'o', 'x', 'o', '.', '.', '.', 'o', 'x'): Counter({4: 88, 5: 49, 6: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 859, 5: 437, 6: 368, 7: 16, 8: 706}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 4, 4: 3, 5: 1, 6: 1, 7: 2, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 2, 2: 3, 3: 3, 4: 9, 6: 1, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'x', '.', '.', 'o', 'o'): Counter({3: 1, 5: 1, 6: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 3: 2, 4: 18, 6: 1, 8: 1}),\n",
+ " ('x', 'o', '.', 'o', '.', 'x', '.', 'x', 'o'): Counter({2: 3, 4: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', 'x', 'o', 'x'): Counter(),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 25, 5: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 3: 1, 5: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'x', '.', 'x', 'o', 'o'): Counter({5: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 2, 3: 4, 4: 4, 6: 4, 7: 8}),\n",
+ " ('x', 'x', 'o', '.', '.', 'o', 'x', 'o', 'x'): Counter({3: 1, 4: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({1: 2, 3: 2, 4: 5, 5: 3, 6: 3, 7: 4}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({1: 1, 3: 1, 5: 1, 6: 1029, 7: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({1: 626, 3: 1, 5: 38, 7: 36, 8: 109}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 2, 3: 1, 5: 1, 7: 16}),\n",
+ " ('x', 'o', 'x', '.', 'x', '.', 'o', '.', 'o'): Counter({3: 1, 5: 1, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({1: 1, 3: 3, 4: 5, 6: 2}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 1, 3: 1435, 5: 279, 6: 358, 8: 516}),\n",
+ " ('x', 'o', 'o', 'o', 'x', 'x', 'o', 'x', '.'): Counter({8: 189}),\n",
+ " ('x', 'x', 'o', '.', 'o', '.', 'x', 'o', '.'): Counter({3: 60, 5: 3, 8: 7}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', '.', '.', 'o'): Counter({6: 1, 7: 3}),\n",
+ " ('x', 'x', 'o', '.', '.', '.', 'x', 'o', 'o'): Counter({3: 47, 4: 1, 5: 8}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 1, 3: 1, 5: 1, 8: 1}),\n",
+ " ('o', 'x', '.', 'x', 'o', 'x', '.', 'o', '.'): Counter({2: 3, 6: 1, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 1, 2: 1, 3: 2, 6: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', 'o', 'o', '.'): Counter({8: 285}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 1, 3: 1, 4: 3, 5: 1, 6: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', '.', 'o', '.', '.', 'x', 'o'): Counter({3: 1, 5: 1, 6: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({3: 4, 4: 5, 5: 5, 6: 4}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', '.', 'o', '.'): Counter({6: 1, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 1, 5: 1, 6: 1, 8: 1}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', 'x', '.', 'o'): Counter({2: 23, 3: 5, 7: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', 'x', 'x', '.'): Counter({5: 20, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', 'x', 'o', '.'): Counter({8: 3}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 3913, 2: 1396, 3: 3356, 5: 1, 6: 2434, 7: 12, 8: 188}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o'): Counter({1: 2, 2: 1, 3: 7, 4: 1, 6: 9}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 103, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 127, 3: 309, 4: 732, 5: 9, 7: 78}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', '.', 'x', '.'): Counter({6: 8, 8: 3}),\n",
+ " ('x', 'o', 'x', 'o', 'o', '.', '.', 'x', '.'): Counter({5: 24, 6: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({3: 730, 6: 22, 7: 4}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({1: 1, 2: 2, 3: 3, 6: 5}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({0: 1, 2: 2, 4: 7, 5: 3, 6: 2, 8: 1}),\n",
+ " ('x', 'o', 'o', 'o', '.', 'x', '.', 'x', '.'): Counter({4: 6, 6: 4, 8: 10}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({4: 4, 5: 3, 6: 4, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'o', 'x', 'o'): Counter({2: 14}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 1, 3: 1, 5: 1, 7: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 3, 2: 1036, 3: 13, 4: 342, 5: 6, 6: 1250, 7: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', 'x', '.', '.'): Counter({5: 3, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'o', 'o', '.', '.'): Counter({4: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', '.', 'o', '.', 'x', '.', 'o', 'o'): Counter({2: 8, 4: 1, 6: 5}),\n",
+ " ('x', 'o', '.', '.', 'o', 'o', 'x', '.', 'x'): Counter({2: 1, 3: 50, 7: 29}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 5: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({4: 3, 5: 4, 6: 3, 8: 2}),\n",
+ " ('x', 'x', 'o', '.', '.', '.', 'o', 'o', 'x'): Counter({3: 1, 4: 23, 5: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({5: 54, 7: 52, 8: 137}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 7, 3: 25, 5: 183, 7: 112, 8: 1989}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x'): Counter({3: 215, 4: 38, 7: 56}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 5, 3: 1, 5: 2, 7: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 228, 3: 248, 8: 194}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', 'x', '.', 'o'): Counter({7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({4: 3, 5: 7, 7: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', '.', 'o', 'o', '.', 'x'): Counter({3: 1, 4: 32, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 48, 6: 163, 8: 84}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 5: 1, 6: 1, 8: 1}),\n",
+ " ('o', 'x', 'o', 'x', '.', 'x', 'o', '.', '.'): Counter({4: 4, 7: 2, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 3, 4: 4, 6: 2, 7: 2}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'o', '.', 'o', 'x'): Counter({4: 1, 6: 1}),\n",
+ " ('x', 'o', '.', '.', '.', 'x', 'o', 'x', 'o'): Counter({2: 3, 3: 3, 4: 5}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', '.', 'x', 'x'): Counter({4: 8, 6: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 2, 3: 404, 5: 1, 7: 93, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', 'x', '.', 'x'): Counter({4: 9, 7: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o'): Counter({1: 3, 3: 2, 4: 2, 5: 2}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'x', '.', 'o'): Counter({2: 3, 7: 1}),\n",
+ " ('x', 'o', 'o', '.', 'o', 'x', 'x', '.', '.'): Counter({3: 61, 7: 35, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', '.', 'x', 'o'): Counter({4: 3, 6: 1}),\n",
+ " ('x', 'x', 'o', '.', '.', 'x', 'o', '.', 'o'): Counter({3: 1, 4: 2, 7: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 4, 5: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'x', '.', 'o'): Counter({4: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', '.', 'x', 'o'): Counter({6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 3: 1, 6: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', 'x', 'o', 'x'): Counter({4: 173}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 22, 3: 4, 5: 8, 6: 6, 8: 5}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', '.', 'x', 'o'): Counter({2: 5, 5: 4, 6: 2}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'o', 'x', 'o', '.'): Counter({2: 1, 8: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 2, 5: 1, 6: 821, 7: 559, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'o', '.', 'x'): Counter({4: 7, 7: 2}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'x', 'o', '.', 'o'): Counter({2: 1, 7: 23}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 40, 5: 6, 6: 2, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 1, 3: 2, 5: 1, 6: 8, 8: 3}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', 'o', '.', 'x'): Counter({2: 31, 3: 1, 7: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 5: 1, 6: 1, 7: 2, 8: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 2, 2: 5, 4: 2, 6: 4, 7: 3, 8: 9}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x'): Counter({3: 3, 4: 3, 5: 2, 7: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 1, 2: 1, 3: 1, 4: 109, 5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('o', 'x', '.', '.', 'x', 'x', 'o', '.', 'o'): Counter({2: 1, 3: 43, 7: 38}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 3: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'o', '.', '.', '.'): Counter({6: 13, 7: 1, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 1, 4: 249, 5: 1, 6: 1, 8: 1}),\n",
+ " ('x', 'o', '.', '.', 'x', 'o', '.', 'x', 'o'): Counter({2: 16, 3: 1, 6: 1}),\n",
+ " ('x', 'x', '.', 'x', 'o', 'o', '.', 'o', 'x'): Counter({2: 1, 6: 1}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', 'x', 'o', 'x'): Counter({2: 3, 4: 6}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({0: 4, 2: 3, 6: 4, 8: 6}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 2: 1, 3: 1, 5: 1, 6: 12, 7: 1, 8: 2418}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 2, 3: 2, 6: 17, 8: 8}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'o', 'x', 'o'): Counter({4: 11}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({3: 3, 4: 3, 6: 3, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 145, 6: 240, 8: 200}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 4: 4, 5: 8, 7: 14, 8: 736}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'o', 'x', 'o', 'o'): Counter({2: 287}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 6: 1, 7: 8, 8: 1}),\n",
+ " ('o', 'x', 'o', 'x', 'o', '.', '.', 'x', '.'): Counter({5: 1, 6: 3, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({3: 3, 4: 3, 5: 6, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 3: 1, 5: 1, 8: 23}),\n",
+ " ('o', 'x', '.', 'x', '.', 'x', '.', 'o', 'o'): Counter({2: 3, 4: 3, 6: 5}),\n",
+ " ('o', 'x', '.', 'o', 'o', 'x', '.', 'x', '.'): Counter({2: 2, 6: 3, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 2, 4: 1, 7: 2, 8: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 6: 5}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 5, 5: 16, 6: 26, 8: 8}),\n",
+ " ('x', 'o', 'o', '.', 'o', 'x', '.', 'x', '.'): Counter({3: 1, 6: 10, 8: 1}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({0: 2, 2: 5, 6: 3, 8: 5}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 178, 3: 1, 7: 198}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'o', 'o', 'x'): Counter({4: 8}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 215, 6: 1, 7: 112}),\n",
+ " ('x', 'x', 'o', 'x', 'x', 'o', '.', 'o', '.'): Counter({6: 1, 8: 16}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x'): Counter({3: 2, 4: 1, 5: 1, 6: 6}),\n",
+ " ('x', 'o', 'o', '.', '.', 'x', 'o', 'x', '.'): Counter({3: 1, 4: 9, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 2, 3: 30, 4: 2244, 5: 3, 6: 2399, 7: 1, 8: 542}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 3: 1, 6: 1, 7: 1, 8: 2655}),\n",
+ " ('x', 'o', 'x', 'o', 'x', 'o', '.', 'x', '.'): Counter({6: 1, 8: 1}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({0: 3, 2: 4, 4: 3, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'x', 'x', 'o', '.', 'o', 'o'): Counter({2: 10, 6: 6}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', 'x', '.', '.'): Counter({3: 19, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 7, 3: 2, 4: 2, 7: 6}),\n",
+ " ('o', 'x', 'o', 'x', 'o', 'x', '.', 'x', '.'): Counter({6: 4, 8: 11}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', 'x', '.', 'o'): Counter({3: 3, 7: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 3, 3: 1, 6: 1, 8: 21}),\n",
+ " ('o', 'x', 'o', 'x', 'x', 'o', '.', '.', '.'): Counter({6: 1, 7: 321, 8: 9}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 1, 3: 107, 8: 162}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 2, 7: 19, 8: 4}),\n",
+ " ('x', 'o', '.', '.', 'o', 'x', 'o', 'x', '.'): Counter({2: 8, 3: 1, 8: 1}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', 'x', '.', 'o'): Counter({2: 21, 5: 4, 7: 2}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', 'o', 'x', '.'): Counter({2: 5, 4: 6, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({5: 257, 6: 278, 8: 317}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 3: 1, 5: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 2, 3: 1, 4: 1, 6: 1, 7: 1, 8: 8}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 2: 1, 3: 1, 4: 44, 5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('o', 'x', '.', 'o', 'x', 'x', '.', 'o', '.'): Counter({2: 1, 6: 24, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 3, 3: 22, 5: 140}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 1, 3: 1, 6: 1, 7: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({4: 4, 5: 2, 7: 3, 8: 2}),\n",
+ " ('x', 'x', 'o', 'x', '.', '.', 'o', '.', 'o'): Counter({4: 3, 5: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', '.', '.', 'o', '.', 'o', 'x'): Counter({3: 8, 4: 6, 6: 11}),\n",
+ " ('x', 'o', 'x', 'o', '.', 'o', 'x', '.', '.'): Counter({4: 27, 7: 1, 8: 2}),\n",
+ " ('x', 'o', 'o', '.', '.', 'x', 'x', 'o', '.'): Counter({3: 42, 4: 51, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', 'x', '.', '.'): Counter({4: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', '.', '.', 'x'): Counter({4: 12, 6: 1, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 5: 2, 6: 1, 7: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', 'o', '.', 'o'): Counter({7: 268}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 5, 3: 3, 4: 4, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 3, 4: 6, 5: 5, 6: 5, 7: 6}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 6: 3, 8: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 12, 2: 27, 6: 33, 7: 18, 8: 17}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 6: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', '.', '.', 'x'): Counter({5: 1, 6: 1, 7: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', 'x', 'x', 'o'): Counter({5: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({0: 9, 2: 10, 3: 8, 5: 4, 6: 5, 8: 2}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', 'x', 'o', 'o'): Counter(),\n",
+ " ('x', 'x', 'o', '.', 'o', 'x', '.', 'x', 'o'): Counter({3: 3, 6: 20}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', 'x', 'o', 'x'): Counter({3: 344}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', 'o', 'x', '.'): Counter({3: 1, 8: 1}),\n",
+ " ('x', 'x', '.', '.', 'o', 'x', 'o', '.', 'o'): Counter({2: 6, 3: 1, 7: 2}),\n",
+ " ('x', 'x', 'o', 'o', 'x', '.', 'x', '.', 'o'): Counter({5: 25, 7: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 2, 3: 1, 4: 1, 5: 1, 7: 1, 8: 1}),\n",
+ " ('x', '.', 'x', '.', 'o', '.', 'o', 'x', 'o'): Counter({1: 17, 3: 3, 5: 5}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 802, 3: 1, 4: 1, 5: 1, 7: 6}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({4: 5, 5: 7, 6: 2, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({4: 223, 5: 180, 6: 2, 7: 22, 8: 14}),\n",
+ " ('x', 'o', 'o', '.', '.', 'x', '.', 'x', 'o'): Counter({3: 4, 4: 5, 6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 4, 4: 3, 7: 2, 8: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 5: 1, 7: 2, 8: 10}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x'): Counter({2: 1, 3: 1, 4: 1, 6: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({5: 270, 7: 87, 8: 141}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 10, 4: 17, 5: 6, 7: 6, 8: 20}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 5, 4: 6, 5: 7, 6: 27, 8: 17}),\n",
+ " ('.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 2137, 2: 1316, 3: 221, 5: 292, 6: 2347, 7: 12, 8: 5714}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', '.', 'o', 'x'): Counter({4: 3, 6: 2}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 1, 3: 1, 6: 1, 8: 1}),\n",
+ " ('x', 'o', 'x', 'o', 'x', '.', '.', 'x', 'o'): Counter({5: 1, 6: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 6, 3: 10, 4: 6, 5: 6, 8: 9}),\n",
+ " ('x', 'o', 'x', 'o', '.', '.', 'o', 'x', '.'): Counter({4: 9, 5: 11, 8: 90}),\n",
+ " ('o', 'x', 'o', 'x', '.', 'o', '.', 'x', '.'): Counter({4: 5, 6: 1, 8: 3}),\n",
+ " ('x', 'o', '.', '.', 'x', 'o', 'o', 'x', '.'): Counter({2: 8, 3: 9, 8: 334}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 15, 3: 2, 7: 2, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 5, 3: 10, 4: 6, 6: 7, 8: 5}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'o', 'x', '.'): Counter({2: 8, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({1: 4, 3: 1, 5: 20, 6: 1}),\n",
+ " ('x', 'o', 'x', 'o', '.', '.', 'x', '.', 'o'): Counter({4: 222, 5: 8, 7: 8}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 1, 3: 1, 6: 1, 7: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 2, 3: 3, 4: 3, 8: 2}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', '.', 'x', '.'): Counter({4: 9, 6: 1, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'x', 'o', '.'): Counter({4: 18, 5: 3, 8: 17}),\n",
+ " ('x', 'x', 'o', '.', 'o', '.', 'x', '.', 'o'): Counter({3: 9, 5: 7, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({4: 4, 5: 4, 6: 5, 7: 4}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 3, 4: 2, 5: 1, 6: 10, 8: 8}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'x', '.', '.', 'o'): Counter({6: 18, 7: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 6: 14, 7: 5, 8: 1}),\n",
+ " ('x', 'x', '.', 'o', '.', '.', 'o', 'o', 'x'): Counter({2: 9, 4: 26, 5: 4}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', 'o', '.', 'x'): Counter({2: 13, 4: 19, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o'): Counter({2: 10, 3: 1, 5: 3, 6: 14}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x'): Counter({3: 383, 5: 1, 7: 451}),\n",
+ " ('x', 'o', 'x', '.', 'x', '.', 'o', 'x', 'o'): Counter({3: 3, 5: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 12, 5: 2, 6: 3, 8: 2}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', 'x', 'o', '.'): Counter({3: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 19, 3: 2, 5: 2, 7: 2, 8: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 4: 1, 6: 2, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', '.', 'o', '.', '.', 'o', 'x'): Counter({3: 1, 5: 1, 6: 158}),\n",
+ " ('x', 'o', 'x', 'o', 'x', '.', 'o', 'x', 'o'): Counter({5: 3}),\n",
+ " ('x', 'x', '.', 'o', 'x', '.', 'x', 'o', 'o'): Counter({2: 3, 5: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 3, 4: 5, 6: 3, 8: 4}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 576, 3: 241, 6: 222, 7: 171, 8: 94}),\n",
+ " ('x', 'x', '.', 'x', 'o', 'x', '.', 'o', 'o'): Counter({2: 1, 6: 18}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 1, 3: 3, 4: 3, 8: 2}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'o', '.', 'x'): Counter({2: 11, 7: 1}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({0: 4, 2: 3, 4: 3, 6: 3, 8: 4}),\n",
+ " ('x', 'x', 'o', '.', '.', '.', 'o', 'x', 'o'): Counter({3: 2, 4: 3, 5: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 6, 3: 1, 5: 1, 7: 13}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({5: 1, 6: 28, 7: 1, 8: 1}),\n",
+ " ('x', 'o', 'x', 'o', '.', '.', '.', 'x', 'o'): Counter({4: 5, 5: 3, 6: 8}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({0: 1, 2: 1, 3: 1, 5: 1, 6: 3, 8: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 5: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({3: 717, 5: 1, 7: 30}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 2, 3: 4, 4: 3, 7: 2}),\n",
+ " ('o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 10, 3: 2, 5: 1, 6: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 6, 3: 4, 5: 2, 6: 23, 8: 20}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', '.', 'x', 'o'): Counter({2: 3, 4: 5, 6: 2}),\n",
+ " ('x', 'x', 'o', 'x', 'o', '.', '.', 'x', 'o'): Counter({5: 14, 6: 6}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 177, 5: 188, 6: 103, 7: 553, 8: 263}),\n",
+ " ('x', 'x', 'o', 'x', 'x', '.', '.', 'o', 'o'): Counter({5: 11, 6: 11}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 3: 1, 6: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x'): Counter({2: 339, 3: 164, 6: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o'): Counter({2: 31, 3: 39, 5: 29}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 341, 3: 147, 6: 703, 7: 96, 8: 1591}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 2: 1, 3: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x'): Counter({1: 1, 3: 2, 4: 90, 5: 1, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 19, 3: 8, 6: 5, 8: 2}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'x', '.', 'o', '.'): Counter({3: 1, 6: 6, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 272, 5: 1, 8: 52}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 14, 3: 1, 4: 1, 5: 1, 8: 12}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 6, 3: 1, 4: 1, 5: 5, 6: 8, 7: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 2, 3: 2, 4: 7, 5: 3, 6: 1, 8: 5}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 4, 3: 11, 6: 9, 8: 9}),\n",
+ " ('x', 'x', '.', 'x', '.', 'o', '.', 'o', 'o'): Counter({2: 4, 4: 3, 6: 5}),\n",
+ " ('.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 3072,\n",
+ " 1: 6,\n",
+ " 2: 5368,\n",
+ " 3: 4,\n",
+ " 4: 23299,\n",
+ " 5: 5,\n",
+ " 6: 2362,\n",
+ " 7: 2,\n",
+ " 8: 10107}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'x', '.', 'o', 'o'): Counter({2: 3, 6: 17}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 2, 4: 3, 6: 3, 7: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({5: 311, 6: 10, 8: 6}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 2, 3: 4, 7: 2, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 5, 4: 2, 6: 1, 7: 1, 8: 6}),\n",
+ " ('x', 'o', 'x', 'o', 'o', '.', 'x', '.', 'x'): Counter({5: 11, 7: 8}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', 'x', '.', 'x'): Counter({5: 30, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 2, 2: 1801, 3: 1, 6: 1, 7: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 3: 4, 6: 1, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({1: 4, 2: 2, 3: 11, 5: 4, 6: 12, 7: 4}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x'): Counter({2: 1, 4: 2, 5: 1, 6: 2}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 1, 3: 3, 5: 2, 8: 17}),\n",
+ " ('x', 'o', '.', '.', 'x', 'x', '.', 'o', 'o'): Counter({2: 1, 3: 96, 6: 61}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 5, 3: 1, 4: 1, 5: 1, 6: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 4: 21, 5: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'o', 'x', 'o', '.', 'o', 'x', 'o', 'x'): Counter({4: 6}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 3: 323, 5: 104, 6: 509, 8: 12}),\n",
+ " ('x', 'o', '.', 'o', 'o', 'x', '.', 'x', '.'): Counter({2: 3, 6: 5, 8: 4}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 4, 3: 3, 4: 20, 5: 2, 6: 6, 7: 4, 8: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 18, 5: 1, 7: 32, 8: 1}),\n",
+ " ('x', 'o', '.', '.', 'o', 'x', '.', 'x', 'o'): Counter({2: 3, 3: 6, 6: 5}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 2, 3: 1, 4: 4, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 2, 4: 2, 6: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', '.', '.', 'o'): Counter({2: 9, 6: 3, 7: 5}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 4, 4: 2, 5: 3, 7: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 3: 1, 6: 6, 7: 1, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', '.', 'o', '.'): Counter({4: 7, 6: 3, 8: 3}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'o', 'x', '.'): Counter({4: 5, 5: 1, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 168, 2: 364, 3: 68, 6: 288, 8: 666}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 11, 4: 14, 5: 7, 6: 8, 8: 20}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({1: 1, 3: 1, 4: 1, 5: 1, 6: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 3: 105, 8: 77}),\n",
+ " ('x', 'x', '.', 'o', '.', 'x', 'o', 'x', 'o'): Counter({2: 1, 4: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o'): Counter({1: 1, 3: 542, 6: 13}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o'): Counter({2: 21, 3: 1, 4: 1, 5: 3, 6: 5}),\n",
+ " ('x', 'x', '.', 'o', '.', '.', 'o', 'x', 'o'): Counter({2: 5, 4: 5, 5: 4}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', '.', 'o', '.'): Counter({2: 10, 6: 3, 8: 5}),\n",
+ " ('o', 'x', 'o', 'x', '.', 'x', 'o', 'x', 'o'): Counter({4: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({5: 11, 7: 7, 8: 767}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({4: 3, 6: 4, 7: 1, 8: 4}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', 'x', 'o', 'x'): Counter({2: 2, 3: 15}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 11, 3: 6, 5: 5, 6: 5, 7: 4}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 3, 4: 4, 5: 3, 6: 2}),\n",
+ " ('x', 'x', 'o', 'x', 'x', 'o', 'o', '.', '.'): Counter({7: 1, 8: 17}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({4: 4, 6: 3, 7: 2, 8: 2}),\n",
+ " ('x', 'x', '.', 'o', '.', 'x', 'o', '.', 'o'): Counter({2: 9, 4: 2, 7: 4}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 4, 3: 4, 4: 6, 7: 7, 8: 10}),\n",
+ " ('x', 'o', 'x', 'o', 'o', '.', 'x', '.', '.'): Counter({5: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 4, 4: 3, 7: 2, 8: 8}),\n",
+ " ('x', 'x', '.', '.', 'o', '.', 'o', 'o', 'x'): Counter({2: 503, 3: 1, 5: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 8, 3: 2, 4: 1, 6: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 124, 5: 77, 8: 145}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 4, 2: 1, 3: 7, 4: 2, 6: 2, 8: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', '.', 'x', 'o', 'x'): Counter({3: 3, 5: 1}),\n",
+ " ('x', 'x', '.', 'o', 'x', 'o', 'x', '.', 'o'): Counter({2: 19, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 6: 1, 7: 3, 8: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 5, 3: 1, 5: 1, 6: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({3: 3, 4: 2, 5: 3, 7: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', '.', '.', '.'): Counter({6: 3, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 1, 3: 1, 5: 1, 6: 1, 7: 1551}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 23, 7: 2, 8: 1}),\n",
+ " ('x', 'x', 'o', 'x', 'x', '.', 'o', '.', 'o'): Counter({5: 4, 7: 13}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', '.', '.', 'o'): Counter({4: 3, 6: 3, 7: 5}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 3, 4: 3, 6: 3, 8: 1}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', '.', 'x', '.'): Counter({3: 1, 6: 1, 8: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 4, 3: 4, 4: 3, 5: 1, 8: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 4: 12, 6: 1, 7: 2, 8: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({6: 139, 7: 104, 8: 282}),\n",
+ " ('x', 'o', 'x', 'o', 'x', '.', 'o', 'x', '.'): Counter({5: 1, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 13, 3: 1, 5: 1, 7: 4}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 53, 6: 1, 7: 179}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 10, 3: 4, 4: 1, 5: 1, 7: 6}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'o', 'o', '.', 'x'): Counter({4: 6, 7: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', 'o', 'x', 'o'): Counter({3: 736}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'o', '.', 'x', '.'): Counter({6: 14, 8: 13}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 1, 3: 3, 4: 13, 6: 4, 7: 4}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', '.', 'o', 'x'): Counter({2: 3, 6: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({5: 14, 6: 6, 8: 162}),\n",
+ " ('o', 'o', '.', 'o', 'x', 'x', '.', 'x', '.'): Counter({2: 3, 6: 2, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', 'x', 'x', '.'): Counter({4: 4, 8: 6}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o'): Counter({1: 1, 2: 3, 3: 2, 6: 16}),\n",
+ " ('x', 'x', 'o', 'x', 'o', '.', '.', 'o', '.'): Counter({5: 5, 6: 6, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({4: 3, 5: 3, 6: 1, 7: 1}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'o', '.', 'o', 'x'): Counter({6: 185}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({3: 14, 5: 6, 6: 28, 7: 4}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 5, 3: 1, 4: 4, 8: 2}),\n",
+ " ('x', 'x', 'o', 'o', 'x', '.', 'x', 'o', '.'): Counter({5: 1, 8: 3}),\n",
+ " ('x', 'o', 'o', '.', '.', 'x', 'x', '.', 'o'): Counter({3: 92, 4: 4, 7: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 8, 6: 4, 7: 4, 8: 16}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 534, 3: 331, 7: 1}),\n",
+ " ('x', 'o', 'x', 'o', '.', 'o', 'x', '.', 'x'): Counter({4: 6, 7: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 2, 5: 1, 6: 1, 8: 17}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({3: 1087, 5: 8, 7: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 1, 4: 4, 6: 2, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 1, 3: 1, 5: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 63, 3: 5, 4: 61, 5: 62, 7: 9}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', 'x', 'o', '.'): Counter({2: 45, 3: 36, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 4: 1, 7: 3, 8: 2}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'o', 'x', '.', '.'): Counter({7: 1, 8: 18}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'x', 'o', 'o', '.'): Counter({4: 7, 8: 4}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', '.', 'o', 'x'): Counter({4: 11, 5: 3, 6: 6}),\n",
+ " ('o', 'x', 'o', 'x', '.', 'x', 'o', 'x', '.'): Counter({4: 5, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', '.', 'o', 'x'): Counter({2: 505, 5: 4, 6: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'x', 'o', 'x'): Counter({4: 3, 5: 2}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 2, 3: 1, 4: 11, 5: 1, 6: 1, 8: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 25, 3: 1, 6: 1, 7: 2}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 1, 6: 92, 7: 100}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 7: 205, 8: 232}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', '.', 'o', 'x'): Counter({2: 11, 4: 18, 6: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 1, 3: 1, 4: 2, 5: 1, 6: 1, 7: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 12, 4: 12, 6: 7, 7: 9, 8: 25}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'o', '.', '.', 'x'): Counter({6: 15, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({3: 3, 4: 3, 6: 3, 7: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 2, 4: 5, 6: 3, 7: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 21, 2: 15, 5: 1, 6: 5, 7: 1, 8: 8}),\n",
+ " ('o', 'x', '.', '.', 'x', 'x', 'o', 'o', '.'): Counter({2: 1, 3: 40, 8: 1}),\n",
+ " ('x', 'x', 'o', 'x', 'o', '.', '.', 'o', 'x'): Counter({5: 1, 6: 13}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', 'o', '.', '.'): Counter({7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 3, 3: 3, 4: 5, 6: 4, 7: 2}),\n",
+ " ('x', 'o', '.', 'o', 'x', 'x', '.', 'x', 'o'): Counter({2: 3, 6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({4: 4, 5: 4, 6: 1, 8: 4}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 6: 1, 7: 1, 8: 24}),\n",
+ " ('x', 'o', 'x', 'o', '.', 'o', '.', 'x', '.'): Counter({4: 15, 6: 2, 8: 1}),\n",
+ " ('x', 'o', 'o', '.', 'x', '.', '.', 'x', 'o'): Counter({3: 1, 5: 19, 6: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o'): Counter({2: 12, 3: 1, 5: 1, 6: 3}),\n",
+ " ('x', 'o', 'x', '.', 'o', '.', 'o', 'x', '.'): Counter({3: 3, 5: 14, 8: 6}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({1: 4, 3: 2, 4: 4, 7: 2, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', 'x', 'o', '.'): Counter({2: 88, 5: 7, 8: 1}),\n",
+ " ('x', 'x', 'o', '.', 'x', 'o', 'x', 'o', '.'): Counter({3: 1, 8: 23}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o'): Counter({2: 188, 5: 1, 6: 14}),\n",
+ " ('o', 'x', 'o', 'x', 'x', '.', '.', '.', 'o'): Counter({5: 93, 6: 1, 7: 86}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 12, 4: 39, 6: 4, 7: 3, 8: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', '.', 'x', 'x', 'o', 'o', '.'): Counter({3: 1, 8: 17}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 4: 3, 6: 3, 7: 3, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', 'o', '.', 'x'): Counter({2: 22, 5: 1, 7: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o'): Counter({3: 191, 4: 263, 5: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 22, 4: 11, 5: 6, 6: 2, 7: 4}),\n",
+ " ('x', 'x', 'o', '.', '.', 'x', 'o', 'o', '.'): Counter({3: 2, 4: 4, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', '.', '.', 'o', 'x', '.', 'o', 'o'): Counter({2: 9, 3: 1, 6: 6}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'o', 'x', '.'): Counter({4: 6, 8: 2}),\n",
+ " ('x', 'x', 'o', '.', 'x', '.', 'o', 'o', '.'): Counter({3: 1, 5: 1, 8: 104}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 1, 3: 1, 5: 1, 6: 2, 8: 2}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', 'o', 'x', '.'): Counter({2: 7, 5: 1, 8: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 4, 4: 3, 5: 1, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 4, 4: 8, 6: 7, 7: 9, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 6, 4: 3, 5: 4, 6: 2, 7: 2, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'o', 'o', 'x'): Counter({2: 12}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', '.', 'x', 'o'): Counter({4: 6, 5: 4, 6: 3}),\n",
+ " ('x', 'o', 'o', '.', 'x', 'x', 'x', 'o', 'o'): Counter({3: 529}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', 'x', 'o', 'x'): Counter({5: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 1, 3: 1, 4: 1, 5: 1, 6: 1, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 2: 1, 3: 1, 6: 1, 7: 6, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 4: 3, 6: 2, 8: 3}),\n",
+ " ('x', 'o', '.', '.', 'x', 'x', 'o', '.', 'o'): Counter({2: 1, 3: 89, 7: 7}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 1, 3: 270, 7: 279}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 4, 4: 3, 6: 5, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({4: 4, 5: 4, 6: 1, 8: 4}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 4, 4: 4, 6: 3, 7: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', '.', 'x', 'x'): Counter({5: 5, 6: 15}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 1, 2: 1, 3: 1, 5: 6, 6: 1, 7: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 6, 3: 1, 6: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 1, 3: 1, 5: 3, 7: 15}),\n",
+ " ('o', 'x', '.', 'x', 'x', 'o', '.', 'o', '.'): Counter({2: 30, 6: 11, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 2, 4: 3, 6: 3, 8: 2}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 879, 3: 1, 4: 1, 5: 4, 8: 438}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'o', 'o', 'x', 'x'): Counter({4: 5}),\n",
+ " ('x', 'x', 'o', 'x', 'o', '.', '.', '.', 'o'): Counter({5: 3, 6: 10, 7: 1}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'x', '.', 'o', '.'): Counter({6: 17, 8: 2}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 2, 4: 4, 6: 3, 7: 3, 8: 2}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', 'x', 'x', '.'): Counter({3: 12, 8: 8}),\n",
+ " ('x', 'x', 'o', 'x', 'o', 'x', '.', 'o', 'o'): Counter({6: 15}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', 'x', 'o', '.'): Counter({2: 38, 4: 67, 8: 3}),\n",
+ " ('x', 'x', '.', '.', 'o', 'o', 'o', 'x', '.'): Counter({2: 11, 3: 1, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 3, 4: 2, 6: 5, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 2, 5: 1, 6: 1, 7: 15, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', '.', '.', 'x'): Counter({6: 19, 7: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 1, 5: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', '.', 'o', 'o', '.', 'x', 'o', 'x'): Counter({2: 3, 5: 18}),\n",
+ " ('x', 'x', 'o', 'o', '.', 'x', 'o', '.', '.'): Counter({4: 7, 7: 2, 8: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x'): Counter({3: 1, 4: 3, 5: 1, 7: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 4, 4: 5, 6: 2, 8: 2}),\n",
+ " ('x', '.', 'o', '.', '.', 'x', 'o', 'x', 'o'): Counter({1: 3, 3: 3, 4: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 9, 4: 2, 6: 3, 7: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'o', 'x', 'x'): Counter({4: 7, 5: 1}),\n",
+ " ('x', 'x', 'o', '.', '.', 'x', '.', 'o', 'o'): Counter({3: 1, 4: 3, 6: 3}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', 'x', 'x', 'o'): Counter(),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 287, 3: 1, 8: 170}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 106, 7: 397, 8: 246}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 2: 1, 3: 18, 6: 1, 7: 1, 8: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({4: 4, 5: 3, 6: 3, 7: 4, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 2, 4: 5, 5: 3, 8: 2}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 2, 4: 4, 5: 2, 6: 3, 7: 4}),\n",
+ " ('x', 'x', 'o', '.', '.', 'o', 'o', 'x', '.'): Counter({3: 2, 4: 6, 8: 3}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({0: 1, 2: 1, 5: 3, 6: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 2, 3: 1, 4: 2, 7: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 474, 7: 1, 8: 480}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 22, 3: 1, 4: 1, 6: 1, 7: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 216, 5: 1, 7: 1116, 8: 2}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({3: 376, 4: 181, 5: 313, 7: 85, 8: 341}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o'): Counter({2: 1, 3: 2, 4: 1, 5: 1}),\n",
+ " ('x', 'x', 'o', '.', 'o', '.', 'x', 'x', 'o'): Counter({3: 3, 5: 10}),\n",
+ " ('x', 'x', 'o', '.', '.', 'x', 'x', 'o', 'o'): Counter({3: 3, 4: 1}),\n",
+ " ('x', 'x', 'o', '.', 'x', '.', 'o', '.', 'o'): Counter({3: 1, 5: 1, 7: 112}),\n",
+ " ('o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 12, 3: 11, 6: 5, 8: 1}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'x', 'o', '.'): Counter({2: 3, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'x', 'x', 'o'): Counter({4: 3, 5: 6}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({3: 239, 7: 136, 8: 146}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'o', '.', 'o', '.'): Counter({4: 1, 6: 8, 8: 8}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 1, 2: 1, 3: 1, 5: 3, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'x', '.', 'o', 'o'): Counter({6: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 9, 3: 3, 4: 8, 7: 6, 8: 6}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 3: 1, 4: 1, 5: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 33, 6: 137, 8: 97}),\n",
+ " ('x', 'x', 'o', '.', '.', 'x', 'o', 'x', 'o'): Counter({3: 1, 4: 5}),\n",
+ " ('x', 'x', 'o', 'x', '.', 'o', 'o', 'o', 'x'): Counter({4: 23}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 2, 4: 3, 5: 2, 8: 3}),\n",
+ " ('x', 'x', '.', 'x', 'o', 'o', '.', 'o', '.'): Counter({2: 4, 6: 5, 8: 5}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " 'x'): Counter({2: 16, 3: 14, 4: 15}),\n",
+ " ('x', 'x', 'o', 'o', 'x', 'o', 'x', 'o', '.'): Counter({8: 304}),\n",
+ " ('x', 'o', 'x', 'o', 'o', '.', '.', '.', 'x'): Counter({5: 20, 6: 1, 7: 1}),\n",
+ " ('x', 'x', '.', '.', 'o', 'x', 'x', 'o', 'o'): Counter({2: 1, 3: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({3: 1, 5: 1, 6: 1, 8: 9}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 3, 3: 6, 6: 3, 7: 1}),\n",
+ " ('x', 'o', 'o', 'o', 'x', '.', '.', 'x', '.'): Counter({5: 4, 6: 9, 8: 128}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 2, 4: 2, 5: 2, 8: 2}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({1: 119, 3: 142, 5: 312, 7: 117, 8: 379}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({2: 3, 3: 2, 4: 3, 6: 4, 8: 4}),\n",
+ " ('o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 73, 3: 32, 6: 1, 7: 1, 8: 2}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 3: 1, 4: 1, 5: 1, 7: 6, 8: 2}),\n",
+ " ('.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({0: 9, 2: 3, 4: 13, 5: 2, 6: 7, 7: 5, 8: 5}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 15, 3: 1, 5: 3, 8: 4}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 2, 3: 648, 5: 11, 6: 823, 7: 1}),\n",
+ " ('o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({1: 1, 2: 1, 3: 1, 6: 2, 8: 10}),\n",
+ " ('o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 2, 3: 3, 4: 4, 6: 2, 8: 2}),\n",
+ " ('x', 'o', '.', '.', 'x', 'x', 'o', 'x', 'o'): Counter({2: 1, 3: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 253, 5: 24, 6: 126, 7: 246, 8: 693}),\n",
+ " ('x', '.', 'o', '.', 'x', 'x', 'o', 'x', 'o'): Counter({1: 1, 3: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.'): Counter({2: 7, 5: 35, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 3, 3: 3, 4: 3, 7: 2}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'x', 'x', 'o', '.'): Counter({3: 3, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', '.', '.', 'x', '.', 'o'): Counter({4: 1, 5: 3, 7: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'o', 'x', 'x', '.', '.'): Counter({7: 3, 8: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 1, 3: 1, 5: 973, 6: 1, 7: 1}),\n",
+ " ('x', 'x', '.', '.', 'x', 'o', 'x', 'o', 'o'): Counter({2: 21, 3: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({3: 12, 4: 84, 5: 1, 6: 93, 7: 25}),\n",
+ " ('x', 'x', 'o', '.', 'x', 'x', '.', 'o', 'o'): Counter({3: 3, 6: 26}),\n",
+ " ('x', 'o', 'x', '.', '.', '.', 'o', 'x', 'o'): Counter({3: 3, 4: 3, 5: 3}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o'): Counter({1: 2, 2: 1, 3: 2, 4: 3, 6: 9, 7: 1}),\n",
+ " ('x', 'o', 'o', 'o', 'x', 'x', '.', 'x', 'o'): Counter({6: 3}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'x', 'x', 'o', 'o'): Counter({3: 59}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x'): Counter({2: 12, 5: 13, 6: 4, 7: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.'): Counter({1: 298, 3: 1, 5: 1, 6: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 405, 5: 621, 8: 640}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', 'x', '.', 'x'): Counter({3: 11, 7: 1}),\n",
+ " ('x', 'x', '.', 'o', '.', 'o', 'x', '.', 'o'): Counter({2: 12, 4: 1, 7: 1}),\n",
+ " ('o', 'x', '.', '.', 'o', 'x', 'o', 'x', '.'): Counter({2: 3, 3: 1, 8: 2}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 1, 3: 1, 5: 1, 7: 1}),\n",
+ " ('o', 'x', 'o', 'x', '.', 'x', '.', 'o', '.'): Counter({4: 4, 6: 3, 8: 3}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({3: 2, 4: 3, 5: 4, 6: 4, 7: 2, 8: 3}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({4: 4, 5: 4, 7: 2, 8: 3}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 5, 8: 3}),\n",
+ " ('x', 'x', '.', 'o', 'o', 'x', 'o', '.', '.'): Counter({2: 13, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 342, 5: 1, 7: 72}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 70, 3: 2, 5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({5: 1, 6: 1, 7: 1, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({2: 1, 6: 3, 7: 1, 8: 1}),\n",
+ " ('x', 'x', 'o', 'o', 'o', '.', '.', 'x', '.'): Counter({5: 1, 6: 1, 8: 1}),\n",
+ " ('x', 'x', '.', '.', '.', 'o', 'o', 'x', 'o'): Counter({2: 4, 3: 3, 4: 7}),\n",
+ " ('x', 'x', 'o', '.', 'o', 'o', '.', '.', 'x'): Counter({3: 1, 6: 1, 7: 1}),\n",
+ " ('x', 'x', 'o', 'x', '.', '.', '.', 'o', 'o'): Counter({4: 1, 5: 3, 6: 5}),\n",
+ " ('o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.'): Counter({2: 3, 3: 3, 4: 2, 7: 3, 8: 1}),\n",
+ " ('x',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.'): Counter({1: 1, 3: 2, 4: 4, 6: 2, 7: 2, 8: 1}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " '.',\n",
+ " 'o'): Counter({2: 7, 3: 3, 4: 2, 7: 1}),\n",
+ " ('x', 'o', '.', '.', 'o', 'x', 'x', '.', 'o'): Counter({2: 1, 3: 24, 7: 4}),\n",
+ " ('x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " '.',\n",
+ " 'x',\n",
+ " '.'): Counter({2: 5, 3: 4, 4: 12, 6: 23, 8: 19}),\n",
+ " ('x',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.',\n",
+ " '.',\n",
+ " 'o',\n",
+ " 'x',\n",
+ " 'o',\n",
+ " '.'): Counter({3: 43, 4: 1, 8: 43})})"
+ ]
+ },
+ "execution_count": 221,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "p1 = new_menace()\n",
+ "p2 = new_menace()\n",
+ "for i in range(100000):\n",
+ " if random.choice([True, False]):\n",
+ " g = new_game(p1, p2)\n",
+ " else:\n",
+ " g = new_game(p2, p1)\n",
+ " play_game(g)\n",
+ " update_players(g)\n",
+ "p1, p2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 223,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "You play first.\n",
+ "The board is:\n",
+ "...\n",
+ "...\n",
+ "...\n",
+ "Your move (0, 1, 2, 3, 4, 5, 6, 7, 8)? 4\n",
+ "Opponent moved to 1\n",
+ "The board is:\n",
+ ".o.\n",
+ ".x.\n",
+ "...\n",
+ "Your move (0, 2, 3, 5, 6, 7, 8)? 0\n",
+ "Opponent moved to 5\n",
+ "The board is:\n",
+ "xo.\n",
+ ".xo\n",
+ "...\n",
+ "Your move (2, 3, 6, 7, 8)? 8\n",
+ "\n",
+ "Final position\n",
+ "xo.\n",
+ ".xo\n",
+ "..x\n",
+ "You won\n"
+ ]
+ }
+ ],
+ "source": [
+ "# p1 = new_menace()\n",
+ "ph = new_human()\n",
+ "if random.choice([True, False]):\n",
+ " g = new_game(p1, ph)\n",
+ "else:\n",
+ " g = new_game(ph, p1)\n",
+ "play_game(g)\n",
+ "\n",
+ "print('\\nFinal position')\n",
+ "print(show_board(g['board']))\n",
+ "if winner(g['board']) is None:\n",
+ " print('A draw')\n",
+ "elif winning_player(g) == ph:\n",
+ " print('You won')\n",
+ "else:\n",
+ " print('You lost')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Training and testing"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 224,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Wins 9656 games out of 10000 , or 96.56 %\n",
+ "Draws 307 games out of 10000 , or 3.07 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "p1 = new_menace()\n",
+ "p2 = new_menace()\n",
+ "for i in range(10**5):\n",
+ " if random.choice([True, False]):\n",
+ " g = new_game(p1, p2)\n",
+ " else:\n",
+ " g = new_game(p2, p1)\n",
+ " play_game(g)\n",
+ " update_players(g)\n",
+ "p1, p2\n",
+ "\n",
+ "wins = 0\n",
+ "draws = 0\n",
+ "plays = 10000\n",
+ "for _ in range(plays):\n",
+ " g = new_game(p1, p2)\n",
+ " play_game(g)\n",
+ " if winner(g['board']) is None:\n",
+ " draws += 1\n",
+ " elif winning_player(g) == p1: \n",
+ " wins += 1\n",
+ "print(\"Wins\", wins, \"games out of\", plays, \", or \", (100.0 * wins) / plays, \"%\")\n",
+ "print(\"Draws\", draws, \"games out of\", plays, \", or \", (100.0 * draws) / plays, \"%\")\n",
+ "\n",
+ "p_floor1 = p1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 225,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Wins 9783 games out of 10000 , or 97.83 %\n",
+ "Draws 212 games out of 10000 , or 2.12 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "p1 = new_menace()\n",
+ "p2 = new_menace()\n",
+ "for i in range(10**6):\n",
+ " if random.choice([True, False]):\n",
+ " g = new_game(p1, p2)\n",
+ " else:\n",
+ " g = new_game(p2, p1)\n",
+ " play_game(g)\n",
+ " update_players(g)\n",
+ "p1, p2\n",
+ "\n",
+ "wins = 0\n",
+ "draws = 0\n",
+ "plays = 10000\n",
+ "for _ in range(plays):\n",
+ " g = new_game(p1, p2)\n",
+ " play_game(g)\n",
+ " if winner(g['board']) is None:\n",
+ " draws += 1\n",
+ " elif winning_player(g) == p1: \n",
+ " wins += 1\n",
+ "print(\"Wins\", wins, \"games out of\", plays, \", or \", (100.0 * wins) / plays, \"%\")\n",
+ "print(\"Draws\", draws, \"games out of\", plays, \", or \", (100.0 * draws) / plays, \"%\")\n",
+ "\n",
+ "p_floor1m = p1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 226,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Wins 9981 games out of 10000 , or 99.81 %\n",
+ "Draws 19 games out of 10000 , or 0.19 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "p1 = new_menace()\n",
+ "p2 = new_menace()\n",
+ "for i in range(100000):\n",
+ " if random.choice([True, False]):\n",
+ " g = new_game(p1, p2)\n",
+ " else:\n",
+ " g = new_game(p2, p1)\n",
+ " play_game(g)\n",
+ " update_players(g, allow_drop_move=True)\n",
+ "p1, p2\n",
+ "\n",
+ "wins = 0\n",
+ "draws = 0\n",
+ "plays = 10000\n",
+ "for _ in range(plays):\n",
+ " g = new_game(p1, p2)\n",
+ " play_game(g)\n",
+ " if winner(g['board']) is None:\n",
+ " draws += 1\n",
+ " elif winning_player(g) == p1: \n",
+ " wins += 1\n",
+ "print(\"Wins\", wins, \"games out of\", plays, \", or \", (100.0 * wins) / plays, \"%\")\n",
+ "print(\"Draws\", draws, \"games out of\", plays, \", or \", (100.0 * draws) / plays, \"%\")\n",
+ "\n",
+ "p_floor0 = p1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 227,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Wins 5627 games out of 10000 , or 56.27 %\n",
+ "Draws 1316 games out of 10000 , or 13.16 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "p1 = new_menace()\n",
+ "p2 = new_menace()\n",
+ "for _ in range(100):\n",
+ " if random.choice([True, False]):\n",
+ " g = new_game(p1, p2)\n",
+ " else:\n",
+ " g = new_game(p2, p1)\n",
+ " play_game(g)\n",
+ " update_players(g)\n",
+ " \n",
+ "wins = 0\n",
+ "draws = 0\n",
+ "plays = 10000\n",
+ "for _ in range(plays):\n",
+ " g = new_game(p1, p2)\n",
+ " play_game(g)\n",
+ " if winner(g['board']) is None:\n",
+ " draws += 1\n",
+ " elif winning_player(g) == p1: \n",
+ " wins += 1\n",
+ "\n",
+ "print(\"Wins\", wins, \"games out of\", plays, \", or \", (100.0 * wins) / plays, \"%\")\n",
+ "print(\"Draws\", draws, \"games out of\", plays, \", or \", (100.0 * draws) / plays, \"%\")\n",
+ " \n",
+ "p_parttrained = p1"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 228,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "newbie = new_menace()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 229,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "players = [p_floor1, p_floor0, newbie, p_parttrained, p_floor1m]\n",
+ "player_names = ['Floor 1', 'Floor 0', 'Newbie', 'Part trained', 'Floor 1, million train']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 230,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "def count_wins(p1, p2, plays=1000):\n",
+ " wins = 0\n",
+ " draws = 0\n",
+ " for _ in range(plays):\n",
+ " g = new_game(p1, p2)\n",
+ " play_game(g)\n",
+ " if winner(g['board']) is None:\n",
+ " draws += 1\n",
+ " elif winning_player(g) == p1: \n",
+ " wins += 1\n",
+ " return wins, draws"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 231,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{(0, 0): (983, 17),\n",
+ " (0, 1): (21, 977),\n",
+ " (0, 2): (978, 18),\n",
+ " (0, 3): (978, 20),\n",
+ " (0, 4): (973, 26),\n",
+ " (1, 0): (376, 137),\n",
+ " (1, 1): (725, 275),\n",
+ " (1, 2): (680, 115),\n",
+ " (1, 3): (654, 129),\n",
+ " (1, 4): (390, 131),\n",
+ " (2, 0): (360, 105),\n",
+ " (2, 1): (243, 161),\n",
+ " (2, 2): (880, 120),\n",
+ " (2, 3): (573, 148),\n",
+ " (2, 4): (271, 135),\n",
+ " (3, 0): (331, 110),\n",
+ " (3, 1): (232, 186),\n",
+ " (3, 2): (586, 131),\n",
+ " (3, 3): (875, 125),\n",
+ " (3, 4): (264, 122),\n",
+ " (4, 0): (924, 75),\n",
+ " (4, 1): (503, 496),\n",
+ " (4, 2): (983, 17),\n",
+ " (4, 3): (992, 8),\n",
+ " (4, 4): (903, 97)}"
+ ]
+ },
+ "execution_count": 231,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "results = {}\n",
+ "\n",
+ "for i, p1 in enumerate(players):\n",
+ " for j, p2 in enumerate(players):\n",
+ " results[i, j] = count_wins(p1, p2)\n",
+ "results"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 232,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "<table border=1>\n",
+ "<tr><td> </td><td> </td><th colspan=5>Player 1</th></tr>\n",
+ "<tr><td> </td><td> </td><td>Floor 1</td><td>Floor 0</td><td>Newbie</td><td>Part trained</td><td>Floor 1, million train</td></tr>\n",
+ "<tr>\n",
+ "<th rowspan=5>Player 2</th>\n",
+ "<td>Floor 1</td> <td>983 / 17</td>\n",
+ " <td>376 / 137</td>\n",
+ " <td>360 / 105</td>\n",
+ " <td>331 / 110</td>\n",
+ " <td>924 / 75</td>\n",
+ "</tr>\n",
+ "<tr>\n",
+ "<td>Floor 0</td> <td>21 / 977</td>\n",
+ " <td>725 / 275</td>\n",
+ " <td>243 / 161</td>\n",
+ " <td>232 / 186</td>\n",
+ " <td>503 / 496</td>\n",
+ "</tr>\n",
+ "<tr>\n",
+ "<td>Newbie</td> <td>978 / 18</td>\n",
+ " <td>680 / 115</td>\n",
+ " <td>880 / 120</td>\n",
+ " <td>586 / 131</td>\n",
+ " <td>983 / 17</td>\n",
+ "</tr>\n",
+ "<tr>\n",
+ "<td>Part trained</td> <td>978 / 20</td>\n",
+ " <td>654 / 129</td>\n",
+ " <td>573 / 148</td>\n",
+ " <td>875 / 125</td>\n",
+ " <td>992 / 8</td>\n",
+ "</tr>\n",
+ "<tr>\n",
+ "<td>Floor 1, million train</td> <td>973 / 26</td>\n",
+ " <td>390 / 131</td>\n",
+ " <td>271 / 135</td>\n",
+ " <td>264 / 122</td>\n",
+ " <td>903 / 97</td>\n",
+ "</tr>\n",
+ "</table>"
+ ],
+ "text/plain": [
+ "<IPython.core.display.HTML object>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "result_table = '<table border=1>\\n'\n",
+ "result_table += '<tr><td> </td><td> </td><th colspan={}>Player 1</th></tr>\\n'.format(len(players))\n",
+ "result_table += '<tr><td> </td><td> </td>'\n",
+ "for i in range(len(players)):\n",
+ " result_table += '<td>{}</td>'.format(player_names[i])\n",
+ "result_table += '</tr>\\n'\n",
+ "\n",
+ "for i in range(len(players)):\n",
+ " result_table += '<tr>\\n'\n",
+ " if i == 0:\n",
+ " result_table += '<th rowspan={}>Player 2</th>\\n'.format(len(players))\n",
+ " result_table += '<td>{}</td>'.format(player_names[i])\n",
+ " for j in range(len(players)):\n",
+ " result_table += ' <td>{} / {}</td>\\n'.format(results[j, i][0], results[j, i][1])\n",
+ " result_table += '</tr>\\n'\n",
+ "result_table += \"</table>\"\n",
+ "# print(result_table)\n",
+ "display(HTML(result_table))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 233,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "... ... ... ... ... ... ..o .xo .xo xxo\n",
+ "... .x. .x. .xx oxx oxx oxx oxx oxx oxx\n",
+ "... ... ..o ..o ..o x.o x.o x.o xoo xoo\n"
+ ]
+ }
+ ],
+ "source": [
+ "g = new_game(p_floor1m, p_floor0)\n",
+ "play_game(g)\n",
+ "print(show_boards([m['board'] for m in g['history']] + [g['board']]))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 234,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "... x.. x.. x.. x.o x.o xoo xoo xoo\n",
+ "... ... ... ..x ..x ..x ..x ..x .ox\n",
+ "... ... o.. o.. o.. ox. ox. oxx oxx\n"
+ ]
+ }
+ ],
+ "source": [
+ "g = new_game(p_floor0, p_floor0)\n",
+ "play_game(g)\n",
+ "print(show_boards([m['board'] for m in g['history']] + [g['board']]))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 235,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "x.o\n",
+ ".ox\n",
+ ".xo Counter({3: 4, 6: 3, 1: 2}) \n",
+ "\n",
+ "oxo\n",
+ "...\n",
+ ".x. Counter({4: 5, 8: 3, 3: 3, 5: 3, 6: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o.x\n",
+ "oox Counter({2: 3, 4: 3}) \n",
+ "\n",
+ "o..\n",
+ ".xx\n",
+ ".o. Counter({2: 6, 1: 4, 8: 3, 3: 3, 6: 3}) \n",
+ "\n",
+ "xo.\n",
+ ".xx\n",
+ "..o Counter({2: 3, 3: 3, 6: 3, 7: 2}) \n",
+ "\n",
+ "xo.\n",
+ "..o\n",
+ "x.. Counter({8: 3, 3: 3, 4: 3, 7: 3, 2: 2}) \n",
+ "\n",
+ "xx.\n",
+ ".ox\n",
+ "oxo Counter({2: 7, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "xo. Counter({8: 3, 2: 3, 4: 3, 5: 3}) \n",
+ "\n",
+ "xx.\n",
+ "...\n",
+ "oxo Counter({2: 5, 4: 4, 3: 1, 5: 1}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ "... Counter({8: 6, 7: 5, 3: 4, 5: 4, 2: 3, 4: 3, 6: 2}) \n",
+ "\n",
+ "xox\n",
+ "ox.\n",
+ "... Counter({5: 3, 8: 2, 6: 2, 7: 2}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ ".xo Counter({3: 3, 6: 0}) \n",
+ "\n",
+ "xx.\n",
+ "...\n",
+ "oox Counter({5: 3, 2: 2, 3: 2, 4: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".ox\n",
+ "... Counter({6: 7, 8: 5, 3: 3, 7: 3}) \n",
+ "\n",
+ "xoo\n",
+ ".xo\n",
+ ".x. Counter({8: 7, 6: 4, 3: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o.x\n",
+ "xoo Counter({2: 3, 4: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".ox\n",
+ ".x. Counter({8: 3, 2: 3, 3: 2, 6: 2}) \n",
+ "\n",
+ "xx.\n",
+ ".ox\n",
+ "oo. Counter({2: 5, 8: 3, 3: 3}) \n",
+ "\n",
+ ".x.\n",
+ "xoo\n",
+ "... Counter({0: 3, 8: 3, 2: 3, 6: 3, 7: 1}) \n",
+ "\n",
+ "ox.\n",
+ "x..\n",
+ "... Counter({4: 4, 8: 4, 6: 3, 7: 3, 2: 2, 5: 2}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ ".xo Counter({2: 3, 6: 2}) \n",
+ "\n",
+ "o.o\n",
+ ".x.\n",
+ ".x. Counter({1: 4, 3: 4, 6: 4, 8: 3, 5: 3}) \n",
+ "\n",
+ "xxo\n",
+ ".x.\n",
+ "..o Counter({5: 7, 7: 5, 6: 4, 3: 3}) \n",
+ "\n",
+ "xxo\n",
+ "x.x\n",
+ "o.o Counter({7: 8, 4: 7}) \n",
+ "\n",
+ "x.o\n",
+ "..o\n",
+ ".x. Counter({8: 4, 6: 4, 4: 3, 1: 2, 3: 2}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "o.x Counter({4: 3, 5: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ ".xo\n",
+ ".oo Counter({2: 3, 6: 3, 3: 1}) \n",
+ "\n",
+ "ox.\n",
+ ".ox\n",
+ "... Counter({8: 3, 7: 3, 6: 2, 2: 1, 3: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".x.\n",
+ ".o. Counter({8: 5, 2: 3, 3: 3, 5: 3, 6: 3}) \n",
+ "\n",
+ "x.o\n",
+ "..x\n",
+ ".o. Counter({3: 4, 8: 3, 1: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ "xox\n",
+ "oxo\n",
+ "ox. Counter({8: 8}) \n",
+ "\n",
+ "oxo\n",
+ "x..\n",
+ ".xo Counter({4: 4, 5: 3, 6: 3}) \n",
+ "\n",
+ "o..\n",
+ "..x\n",
+ "... Counter({4: 7, 1: 0, 2: 0, 3: 0, 6: 0, 7: 0, 8: 0}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "..o Counter({3: 3, 5: 3, 6: 3, 7: 3, 4: 2}) \n",
+ "\n",
+ "xx.\n",
+ "o.x\n",
+ "oo. Counter({2: 4, 8: 3, 4: 3}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ "... Counter({2: 5, 3: 5, 8: 4, 6: 4, 7: 1}) \n",
+ "\n",
+ "ox.\n",
+ ".x.\n",
+ "..o Counter({6: 6, 7: 5, 2: 4, 3: 3, 5: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "... Counter({6: 4, 8: 3, 4: 3, 7: 3}) \n",
+ "\n",
+ "oxo\n",
+ "xox\n",
+ "... Counter({8: 3, 6: 3, 7: 2}) \n",
+ "\n",
+ "xo.\n",
+ ".xo\n",
+ ".x. Counter({2: 4, 8: 3, 3: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ ".x.\n",
+ "xoo Counter({5: 12, 3: 3}) \n",
+ "\n",
+ "x..\n",
+ "..o\n",
+ "... Counter({4: 7, 7: 4, 8: 4, 1: 3, 2: 3, 3: 3, 6: 3}) \n",
+ "\n",
+ "ox.\n",
+ ".x.\n",
+ "... Counter({7: 5, 2: 0, 3: 0, 5: 0, 6: 0, 8: 0}) \n",
+ "\n",
+ "xxo\n",
+ ".ox\n",
+ "..o Counter({6: 3, 3: 2, 7: 2}) \n",
+ "\n",
+ "xx.\n",
+ "ox.\n",
+ "..o Counter({6: 4, 2: 3, 5: 3, 7: 2}) \n",
+ "\n",
+ "xo.\n",
+ "oxx\n",
+ "..o Counter({2: 5, 6: 4, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "oxx\n",
+ "oo. Counter({8: 7, 2: 2}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ ".xo Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "xoo Counter({2: 12}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ ".xo Counter({3: 5, 2: 3, 6: 1}) \n",
+ "\n",
+ "xo.\n",
+ "oxx\n",
+ "... Counter({8: 3, 2: 3, 6: 3, 7: 2}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "ox. Counter({8: 3, 2: 3, 4: 3, 5: 3}) \n",
+ "\n",
+ "xox\n",
+ ".x.\n",
+ "oo. Counter({8: 5, 5: 2, 3: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "xo. Counter({8: 3, 4: 3}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ "... Counter({8: 3, 3: 3, 7: 3, 6: 2}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ ".x. Counter({2: 4, 5: 4, 6: 4, 8: 3}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ ".ox Counter({2: 3, 3: 3, 4: 3, 5: 3, 6: 3}) \n",
+ "\n",
+ "xox\n",
+ "o..\n",
+ "o.x Counter({4: 4, 5: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ ".ox\n",
+ "..o Counter({2: 3, 6: 3, 3: 2, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "xoo Counter({2: 5, 3: 3, 4: 3}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ ".ox Counter({3: 3, 5: 3, 6: 3, 2: 2}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "... Counter({4: 4, 8: 3, 5: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "x.x\n",
+ ".oo Counter({6: 5, 4: 1}) \n",
+ "\n",
+ "xoo\n",
+ "oxx\n",
+ ".x. Counter({8: 3, 6: 0}) \n",
+ "\n",
+ "xxo\n",
+ ".ox\n",
+ "x.o Counter({3: 3, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "ox. Counter({4: 4, 8: 3, 3: 3, 5: 3}) \n",
+ "\n",
+ "x..\n",
+ ".ox\n",
+ "..o Counter({6: 5, 1: 3, 7: 3, 2: 2, 3: 2}) \n",
+ "\n",
+ "xox\n",
+ "ox.\n",
+ "..o Counter({6: 4, 5: 3, 7: 3}) \n",
+ "\n",
+ "ox.\n",
+ "xx.\n",
+ "..o Counter({2: 3, 5: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "ox.\n",
+ "..o Counter({5: 3, 7: 3, 6: 2}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "oxo Counter({2: 4, 5: 3, 3: 2}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ ".ox Counter({6: 3}) \n",
+ "\n",
+ ".x.\n",
+ "ox.\n",
+ ".o. Counter({8: 3, 2: 3, 5: 3, 6: 3, 0: 2}) \n",
+ "\n",
+ "...\n",
+ ".x.\n",
+ "... Counter({8: 15, 0: 0, 1: 0, 2: 0, 3: 0, 5: 0, 6: 0, 7: 0}) \n",
+ "\n",
+ "xxo\n",
+ ".xx\n",
+ "o.o Counter({7: 8, 3: 0}) \n",
+ "\n",
+ "xoo\n",
+ "oxx\n",
+ "... Counter({7: 5, 8: 4, 6: 3}) \n",
+ "\n",
+ ".x.\n",
+ "...\n",
+ ".o. Counter({3: 6, 6: 6, 0: 3, 2: 3, 5: 3, 8: 2, 4: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "xoo Counter({2: 3, 4: 3, 5: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "xoo Counter({4: 3}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ "xo. Counter({8: 3, 2: 3, 3: 3, 4: 3, 5: 3}) \n",
+ "\n",
+ ".x.\n",
+ "ox.\n",
+ "... Counter({0: 3, 2: 3, 8: 3, 5: 2, 6: 2, 7: 2}) \n",
+ "\n",
+ "ox.\n",
+ "o..\n",
+ ".x. Counter({4: 4, 5: 3, 6: 3, 2: 2, 8: 1}) \n",
+ "\n",
+ "xxo\n",
+ "oxo\n",
+ "... Counter({8: 5, 6: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ ".xo\n",
+ ".o. Counter({3: 4, 8: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ "..x\n",
+ "o.. Counter({4: 7, 8: 4, 7: 3, 3: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".oo\n",
+ ".xx Counter({3: 5, 6: 3}) \n",
+ "\n",
+ "xx.\n",
+ "oxo\n",
+ "... Counter({8: 3, 2: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "xxo\n",
+ "oo. Counter({8: 9}) \n",
+ "\n",
+ "xx.\n",
+ "xoo\n",
+ "..o Counter({6: 5, 2: 3, 7: 2}) \n",
+ "\n",
+ "xox\n",
+ "o..\n",
+ ".ox Counter({4: 3, 5: 3, 6: 3}) \n",
+ "\n",
+ "xoo\n",
+ ".x.\n",
+ "... Counter({8: 6, 5: 4, 7: 4, 3: 3, 6: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "... Counter({4: 4, 5: 3, 7: 3, 8: 3, 2: 2, 6: 2}) \n",
+ "\n",
+ "x..\n",
+ "..x\n",
+ ".o. Counter({6: 5, 2: 4, 3: 3, 4: 3, 8: 3, 1: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".x.\n",
+ ".oo Counter({3: 1, 5: 0, 6: 0}) \n",
+ "\n",
+ "xo.\n",
+ "..x\n",
+ ".o. Counter({8: 3, 4: 3, 6: 3, 3: 2, 2: 1}) \n",
+ "\n",
+ "xo.\n",
+ "o.x\n",
+ ".xo Counter({2: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ "xox Counter() \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ "x.. Counter({3: 3, 5: 3, 7: 1, 8: 0}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "xo. Counter({3: 3, 5: 3, 2: 2, 8: 0}) \n",
+ "\n",
+ "xxo\n",
+ "ox.\n",
+ "xoo Counter({5: 3}) \n",
+ "\n",
+ "xo.\n",
+ "..o\n",
+ "..x Counter({2: 3, 3: 3, 4: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "..o\n",
+ "xox Counter({3: 1, 4: 0}) \n",
+ "\n",
+ "x.o\n",
+ "...\n",
+ "..x Counter({7: 1, 1: 0, 3: 0, 4: 0, 5: 0, 6: 0}) \n",
+ "\n",
+ "x.o\n",
+ ".o.\n",
+ "..x Counter({1: 3, 3: 3, 5: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "x.x\n",
+ ".o.\n",
+ "o.. Counter({7: 6, 3: 5, 8: 4, 1: 4, 5: 3}) \n",
+ "\n",
+ "xx.\n",
+ ".x.\n",
+ "o.o Counter({7: 12, 5: 4, 2: 2, 3: 2}) \n",
+ "\n",
+ "xox\n",
+ ".x.\n",
+ "o.o Counter({3: 3, 5: 3, 7: 3}) \n",
+ "\n",
+ "x.o\n",
+ "..x\n",
+ ".xo Counter({3: 2, 4: 2, 6: 2, 1: 1}) \n",
+ "\n",
+ "x.o\n",
+ ".x.\n",
+ ".o. Counter({5: 6, 3: 5, 6: 4, 8: 3, 1: 2}) \n",
+ "\n",
+ "xoo\n",
+ "oxx\n",
+ "ox. Counter({8: 8}) \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ "xo. Counter({5: 4, 8: 3, 3: 3}) \n",
+ "\n",
+ "xxo\n",
+ "oxx\n",
+ "..o Counter({7: 3, 6: 0}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "xoo Counter({3: 3, 4: 3, 5: 3}) \n",
+ "\n",
+ "x.x\n",
+ ".o.\n",
+ "ox. Counter({1: 2, 5: 1, 8: 0, 3: 0}) \n",
+ "\n",
+ "ox.\n",
+ "xox\n",
+ ".o. Counter({8: 3, 2: 3, 6: 3}) \n",
+ "\n",
+ "x..\n",
+ ".ox\n",
+ ".o. Counter({1: 3, 6: 3, 8: 2, 3: 2, 2: 1}) \n",
+ "\n",
+ "xxo\n",
+ "oxx\n",
+ "oo. Counter({8: 12}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ ".x. Counter({2: 4, 4: 3, 5: 3, 8: 3, 3: 2, 6: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ ".xo Counter({5: 3, 6: 2, 3: 1}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ ".xo Counter({5: 7, 4: 5, 3: 2, 6: 2}) \n",
+ "\n",
+ "xxo\n",
+ "oxx\n",
+ ".o. Counter({8: 3, 6: 0}) \n",
+ "\n",
+ "xox\n",
+ ".x.\n",
+ ".o. Counter({8: 3, 3: 3, 5: 3, 6: 3}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ "x.o Counter({3: 6, 2: 5, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "oo.\n",
+ "xx. Counter({5: 6, 8: 3}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ "xo. Counter({8: 3}) \n",
+ "\n",
+ "o..\n",
+ ".x.\n",
+ "... Counter({1: 39, 2: 18, 8: 10, 7: 6, 5: 4, 6: 2, 3: 0}) \n",
+ "\n",
+ "x..\n",
+ "..x\n",
+ ".oo Counter({2: 4, 3: 3, 4: 3, 6: 3, 1: 2}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "... Counter({2: 7, 3: 2, 5: 1, 6: 1, 8: 1, 7: 0}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ "x.o Counter({2: 3, 3: 3, 4: 3, 5: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ ".x. Counter({6: 4, 8: 3}) \n",
+ "\n",
+ "xox\n",
+ "oo.\n",
+ ".x. Counter({5: 4, 8: 0, 6: 0}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ "..o Counter({3: 6, 6: 4, 7: 3}) \n",
+ "\n",
+ "x..\n",
+ ".ox\n",
+ ".xo Counter({2: 4, 1: 3, 3: 3, 6: 3}) \n",
+ "\n",
+ ".x.\n",
+ "o..\n",
+ ".x. Counter({0: 3, 2: 3, 4: 3, 6: 3, 8: 3, 5: 2}) \n",
+ "\n",
+ "xoo\n",
+ "o.x\n",
+ ".x. Counter({4: 4, 8: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ "x..\n",
+ ".o. Counter({6: 4, 8: 3, 4: 3, 5: 3}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "oxo Counter({2: 10}) \n",
+ "\n",
+ "xo.\n",
+ ".x.\n",
+ "x.o Counter({2: 3, 3: 3, 7: 3, 5: 2}) \n",
+ "\n",
+ "x..\n",
+ "...\n",
+ "..o Counter({2: 4, 3: 4, 5: 4, 6: 4, 7: 4, 1: 2, 4: 2}) \n",
+ "\n",
+ "xxo\n",
+ "oo.\n",
+ "x.. Counter({5: 3, 7: 3, 8: 2}) \n",
+ "\n",
+ "xxo\n",
+ "x.o\n",
+ "o.. Counter({8: 4, 4: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o.x\n",
+ ".oo Counter({2: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ "xo.\n",
+ ".oo\n",
+ "x.x Counter({3: 4, 7: 4, 2: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".x.\n",
+ "o.. Counter({8: 3, 5: 3, 7: 2, 3: 1}) \n",
+ "\n",
+ "xox\n",
+ "o..\n",
+ ".x. Counter({8: 3, 4: 3, 5: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "oox Counter({3: 3, 4: 3, 5: 3}) \n",
+ "\n",
+ "oxo\n",
+ "xx.\n",
+ "o.. Counter({7: 6, 8: 4, 5: 3}) \n",
+ "\n",
+ "xo.\n",
+ ".x.\n",
+ "o.. Counter({5: 6, 8: 4, 2: 3, 3: 3, 7: 3}) \n",
+ "\n",
+ "xoo\n",
+ "..o\n",
+ "x.x Counter({3: 3, 4: 3, 7: 3}) \n",
+ "\n",
+ "x.x\n",
+ ".o.\n",
+ "x.o Counter({5: 3, 1: 2, 3: 2, 7: 2}) \n",
+ "\n",
+ "xo.\n",
+ ".xo\n",
+ "xo. Counter({8: 3, 2: 3, 3: 3}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ "x.o Counter({7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "x.. Counter({8: 4, 5: 4, 4: 3, 7: 2}) \n",
+ "\n",
+ "xxo\n",
+ "..o\n",
+ "o.x Counter({3: 3, 4: 3, 7: 2}) \n",
+ "\n",
+ "xx.\n",
+ "oxo\n",
+ ".o. Counter({8: 3, 2: 3, 6: 3}) \n",
+ "\n",
+ "xx.\n",
+ "ox.\n",
+ ".o. Counter({6: 4, 8: 3, 2: 3, 5: 2}) \n",
+ "\n",
+ "oxo\n",
+ "x.x\n",
+ "o.. Counter({8: 4, 4: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ "..x Counter({2: 3, 4: 3, 7: 3, 6: 2}) \n",
+ "\n",
+ "xxo\n",
+ "x.o\n",
+ ".ox Counter({4: 2, 6: 2}) \n",
+ "\n",
+ "xo.\n",
+ "..x\n",
+ "oxo Counter({2: 3, 3: 3, 4: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o.o\n",
+ ".xx Counter({4: 5, 6: 2}) \n",
+ "\n",
+ "xo.\n",
+ ".o.\n",
+ "x.. Counter({3: 9, 5: 4, 7: 4, 8: 2, 2: 2}) \n",
+ "\n",
+ "xxo\n",
+ "ox.\n",
+ "... Counter({5: 4, 6: 3, 7: 3, 8: 2}) \n",
+ "\n",
+ "xxo\n",
+ "o.o\n",
+ "x.x Counter({4: 4, 7: 2}) \n",
+ "\n",
+ "x.x\n",
+ "...\n",
+ "oxo Counter({1: 3, 3: 0, 4: 0, 5: 0}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "x.o Counter({2: 3, 7: 0}) \n",
+ "\n",
+ "xoo\n",
+ ".ox\n",
+ "x.. Counter({7: 7, 3: 4, 8: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ ".xo Counter({4: 3, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "..x\n",
+ "o.o Counter({4: 3, 7: 3, 3: 2}) \n",
+ "\n",
+ "ox.\n",
+ "...\n",
+ ".xo Counter({3: 3, 4: 3, 5: 3, 6: 3, 2: 2}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "x.o Counter({4: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ ".xo Counter({6: 3}) \n",
+ "\n",
+ "xx.\n",
+ ".xo\n",
+ ".o. Counter({8: 3, 2: 3, 6: 3, 3: 2}) \n",
+ "\n",
+ "xxo\n",
+ "o.o\n",
+ "xox Counter({4: 5}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ ".o. Counter({2: 5, 3: 5, 5: 4, 8: 3, 6: 2}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ ".xo Counter({5: 4, 2: 3, 6: 3}) \n",
+ "\n",
+ "xx.\n",
+ "oxo\n",
+ "xo. Counter({2: 3, 8: 2}) \n",
+ "\n",
+ "ox.\n",
+ "ox.\n",
+ "... Counter({7: 6, 8: 4, 6: 4, 2: 3, 5: 2}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "o.x Counter({4: 7, 7: 0}) \n",
+ "\n",
+ "xx.\n",
+ "oxx\n",
+ "o.o Counter({7: 12, 2: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ "... Counter({2: 48625, 5: 1, 8: 0, 6: 0, 7: 0}) \n",
+ "\n",
+ "x.o\n",
+ ".o.\n",
+ ".x. Counter({6: 6, 3: 3, 8: 2, 5: 2, 1: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ "o.x Counter({2: 3, 3: 3, 7: 3}) \n",
+ "\n",
+ "ox.\n",
+ "xo.\n",
+ "... Counter({8: 3, 2: 3, 5: 3, 7: 3, 6: 2}) \n",
+ "\n",
+ ".x.\n",
+ "x.o\n",
+ "... Counter({6: 4, 0: 3, 7: 3, 8: 3, 4: 2, 2: 1}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "o.x Counter({4: 7, 5: 3, 7: 3, 3: 2}) \n",
+ "\n",
+ ".x.\n",
+ "...\n",
+ "... Counter({6: 14, 0: 0, 2: 0, 3: 0, 4: 0, 5: 0, 7: 0, 8: 0}) \n",
+ "\n",
+ "ox.\n",
+ ".xx\n",
+ "o.o Counter({3: 3, 7: 3, 2: 2}) \n",
+ "\n",
+ "x.o\n",
+ ".xx\n",
+ "o.. Counter({3: 2, 8: 1, 7: 1, 1: 0}) \n",
+ "\n",
+ "xxo\n",
+ "xoo\n",
+ "... Counter({8: 5, 6: 5, 7: 3}) \n",
+ "\n",
+ "xox\n",
+ "...\n",
+ ".o. Counter({8: 3, 3: 3, 4: 3, 5: 3, 6: 3}) \n",
+ "\n",
+ "xo.\n",
+ ".xo\n",
+ ".xo Counter({2: 4, 6: 2, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ "xoo\n",
+ ".ox Counter({6: 3, 2: 0}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ "xox Counter({2: 3, 4: 3}) \n",
+ "\n",
+ ".x.\n",
+ "xox\n",
+ ".o. Counter({0: 3, 8: 3, 2: 3, 6: 3}) \n",
+ "\n",
+ "x..\n",
+ ".o.\n",
+ "... Counter({1: 46163, 3: 2460, 2: 8, 5: 0, 6: 0, 7: 0, 8: 0}) \n",
+ "\n",
+ "x.o\n",
+ ".ox\n",
+ ".x. Counter({6: 7, 8: 3, 1: 3, 3: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "oxo Counter({4: 4}) \n",
+ "\n",
+ "xxo\n",
+ "..x\n",
+ "..o Counter({6: 6, 4: 4, 3: 3, 7: 3}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ ".o. Counter({8: 4, 6: 4, 3: 3}) \n",
+ "\n",
+ "xox\n",
+ "...\n",
+ "o.. Counter({8: 4, 4: 4, 5: 3, 7: 3, 3: 2}) \n",
+ "\n",
+ "xx.\n",
+ "oxo\n",
+ "xoo Counter({2: 11}) \n",
+ "\n",
+ "xo.\n",
+ ".ox\n",
+ "... Counter({6: 4, 7: 4, 2: 3, 3: 3, 8: 2}) \n",
+ "\n",
+ "oxo\n",
+ "xo.\n",
+ ".x. Counter({8: 3, 5: 3, 6: 2}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "x.o Counter({5: 7, 3: 6, 7: 4, 4: 3}) \n",
+ "\n",
+ "xx.\n",
+ ".x.\n",
+ "oo. Counter({8: 12, 5: 3, 2: 2, 3: 0}) \n",
+ "\n",
+ "ox.\n",
+ "x.x\n",
+ ".oo Counter({2: 3, 4: 3, 6: 2}) \n",
+ "\n",
+ "ox.\n",
+ "oox\n",
+ ".x. Counter({6: 3, 8: 2, 2: 1}) \n",
+ "\n",
+ "xoo\n",
+ "..x\n",
+ "x.. Counter({8: 3, 3: 3, 4: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "..x\n",
+ ".oo Counter({2: 3, 6: 3, 3: 2, 4: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ ".x. Counter({3: 5, 6: 5, 8: 4, 5: 4}) \n",
+ "\n",
+ "xoo\n",
+ ".ox\n",
+ ".x. Counter({6: 7, 8: 3, 3: 2}) \n",
+ "\n",
+ ".x.\n",
+ "xxo\n",
+ ".o. Counter({0: 3, 8: 3, 2: 3, 6: 3}) \n",
+ "\n",
+ "xx.\n",
+ ".xo\n",
+ "o.o Counter({7: 7, 2: 6, 3: 0}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "oox Counter({4: 4}) \n",
+ "\n",
+ "xx.\n",
+ "oxo\n",
+ "..o Counter({6: 5, 2: 4, 7: 4}) \n",
+ "\n",
+ "xxo\n",
+ "xxo\n",
+ ".o. Counter({8: 7, 6: 2}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ ".ox Counter({4: 8, 6: 1, 3: 0, 5: 0}) \n",
+ "\n",
+ "xoo\n",
+ "..x\n",
+ "ox. Counter({8: 3, 3: 3, 4: 3}) \n",
+ "\n",
+ "x.o\n",
+ "...\n",
+ "... Counter({3: 6, 6: 5, 7: 4, 1: 3, 4: 3, 5: 3, 8: 3}) \n",
+ "\n",
+ "x.o\n",
+ ".xo\n",
+ "... Counter({7: 5, 6: 4, 8: 3, 1: 3, 3: 3}) \n",
+ "\n",
+ "xox\n",
+ "oxo\n",
+ ".x. Counter({6: 3, 8: 1}) \n",
+ "\n",
+ ".x.\n",
+ "x.o\n",
+ ".o. Counter({0: 3, 8: 3, 2: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ "xx.\n",
+ "xxo\n",
+ ".oo Counter({2: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ ".oo\n",
+ "x.. Counter({3: 8, 8: 3, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "..x\n",
+ "o.o Counter({2: 6, 7: 6, 4: 4, 3: 3}) \n",
+ "\n",
+ "oxo\n",
+ "xox\n",
+ ".x. Counter({6: 4, 8: 3}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ "x.o Counter({3: 3, 7: 2}) \n",
+ "\n",
+ "x.o\n",
+ ".xo\n",
+ ".x. Counter({8: 4, 1: 3, 3: 3, 6: 2}) \n",
+ "\n",
+ "oxo\n",
+ "xxo\n",
+ "... Counter({7: 6, 8: 4, 6: 2}) \n",
+ "\n",
+ "x.o\n",
+ ".xx\n",
+ "oo. Counter({3: 5, 8: 3, 1: 3}) \n",
+ "\n",
+ "xo.\n",
+ ".ox\n",
+ "x.. Counter({7: 5, 3: 3, 8: 2, 2: 0}) \n",
+ "\n",
+ "xo.\n",
+ ".ox\n",
+ "ox. Counter({8: 3, 2: 3, 3: 2}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ "x.o Counter({2: 5, 5: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ "ox. Counter({4: 4, 2: 3, 8: 2}) \n",
+ "\n",
+ "xox\n",
+ "ox.\n",
+ ".o. Counter({8: 3, 5: 3, 6: 3}) \n",
+ "\n",
+ "xo.\n",
+ ".x.\n",
+ "xo. Counter({2: 3, 5: 3, 3: 2, 8: 1}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "... Counter({4: 3, 8: 3, 2: 2, 3: 2, 7: 2, 6: 1}) \n",
+ "\n",
+ "x..\n",
+ "...\n",
+ "... Counter({6: 1, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 7: 0, 8: 0}) \n",
+ "\n",
+ "ox.\n",
+ "oxx\n",
+ ".o. Counter({6: 3, 8: 0, 2: 0}) \n",
+ "\n",
+ "xo.\n",
+ ".x.\n",
+ "oxo Counter({3: 6, 2: 3, 5: 3}) \n",
+ "\n",
+ "x.o\n",
+ ".xx\n",
+ "..o Counter({3: 2, 1: 0, 6: 0, 7: 0}) \n",
+ "\n",
+ "xox\n",
+ "o..\n",
+ "x.. Counter({8: 3, 4: 3, 5: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "x..\n",
+ "o.o Counter({5: 3, 4: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "..o\n",
+ ".ox Counter({3: 4, 4: 3, 6: 3}) \n",
+ "\n",
+ "xox\n",
+ "o.o\n",
+ "x.. Counter({8: 3, 4: 3, 7: 3}) \n",
+ "\n",
+ "xoo\n",
+ "..x\n",
+ "xo. Counter({8: 3, 3: 3, 4: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o.o\n",
+ "x.. Counter({8: 3, 4: 3, 7: 2}) \n",
+ "\n",
+ "xxo\n",
+ "o.o\n",
+ "..x Counter({6: 4, 4: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "xo.\n",
+ "..o Counter({2: 3, 5: 3, 6: 2, 7: 2}) \n",
+ "\n",
+ "xxo\n",
+ "oxx\n",
+ "o.o Counter({7: 12}) \n",
+ "\n",
+ "xx.\n",
+ "..x\n",
+ "oo. Counter({8: 4, 2: 3, 3: 3, 4: 3}) \n",
+ "\n",
+ "xo.\n",
+ "o..\n",
+ "..x Counter({4: 4, 5: 4, 2: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "ox.\n",
+ "..o\n",
+ ".x. Counter({8: 4, 2: 3, 3: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ ".x.\n",
+ "oxo\n",
+ "... Counter({0: 4, 8: 4, 2: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xo.\n",
+ "..x\n",
+ ".xo Counter({2: 3, 3: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ "oo.\n",
+ "..x Counter({5: 3, 7: 3, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "oo.\n",
+ "xxo Counter({5: 3}) \n",
+ "\n",
+ ".x.\n",
+ ".o.\n",
+ ".x. Counter({3: 4, 6: 4, 8: 4, 0: 3, 2: 3, 5: 3}) \n",
+ "\n",
+ "xxo\n",
+ "oxx\n",
+ "xoo Counter() \n",
+ "\n",
+ "xxo\n",
+ ".ox\n",
+ ".xo Counter({6: 6, 3: 3}) \n",
+ "\n",
+ "xxo\n",
+ ".oo\n",
+ "xox Counter({3: 9}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ "ox. Counter({3: 1, 8: 0}) \n",
+ "\n",
+ "xx.\n",
+ ".ox\n",
+ "o.o Counter({2: 4, 3: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "ox.\n",
+ "x.o Counter({5: 10, 7: 3}) \n",
+ "\n",
+ "ox.\n",
+ "xxo\n",
+ "... Counter({7: 2, 8: 0, 2: 0, 6: 0}) \n",
+ "\n",
+ "xx.\n",
+ "...\n",
+ "o.. Counter({2: 9, 8: 5, 5: 2, 7: 2, 4: 1, 3: 0}) \n",
+ "\n",
+ "x.x\n",
+ ".o.\n",
+ "oxo Counter({5: 5, 1: 3, 3: 3}) \n",
+ "\n",
+ "x.x\n",
+ "...\n",
+ "o.o Counter({1: 3, 3: 3, 4: 3, 5: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "..x Counter({4: 6, 6: 4, 5: 2, 7: 2}) \n",
+ "\n",
+ "xox\n",
+ "o..\n",
+ "... Counter({8: 3, 4: 3, 5: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xoo\n",
+ "..x\n",
+ ".xo Counter({4: 4, 3: 3, 6: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ "x.. Counter({2: 4, 8: 3, 4: 3, 7: 2}) \n",
+ "\n",
+ "xox\n",
+ ".x.\n",
+ "o.. Counter({8: 3, 7: 3, 3: 2, 5: 2}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ ".ox Counter({2: 3, 3: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ "ox.\n",
+ "o.. Counter({8: 4, 5: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "o.. Counter({2: 4, 8: 3, 4: 3, 5: 3, 7: 3}) \n",
+ "\n",
+ "xoo\n",
+ "...\n",
+ ".x. Counter({3: 5, 8: 3, 5: 3, 6: 3, 4: 2}) \n",
+ "\n",
+ ".o.\n",
+ ".x.\n",
+ "... Counter({2: 7, 7: 6, 0: 4, 3: 4, 5: 4, 6: 4, 8: 4}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ ".ox Counter({4: 3, 6: 2}) \n",
+ "\n",
+ "x.o\n",
+ ".xx\n",
+ ".o. Counter({8: 3, 6: 3, 1: 2, 3: 2}) \n",
+ "\n",
+ "xox\n",
+ "ox.\n",
+ ".xo Counter({6: 3, 5: 0}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ "ox. Counter({2: 3, 3: 3, 4: 3, 5: 3, 8: 2}) \n",
+ "\n",
+ "xox\n",
+ "o..\n",
+ "ox. Counter({8: 3, 4: 3, 5: 3}) \n",
+ "\n",
+ "oxo\n",
+ "x.o\n",
+ ".x. Counter({8: 4, 4: 4, 6: 3}) \n",
+ "\n",
+ "xo.\n",
+ ".xo\n",
+ "ox. Counter({8: 5, 3: 4, 2: 3}) \n",
+ "\n",
+ "xx.\n",
+ ".ox\n",
+ "o.. Counter({2: 9, 8: 2, 7: 1, 3: 0}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ ".o. Counter({6: 4, 8: 3, 2: 3, 3: 3, 4: 3}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "ox. Counter({2: 8, 8: 3}) \n",
+ "\n",
+ "x.o\n",
+ ".x.\n",
+ ".xo Counter({5: 6, 1: 4, 6: 3, 3: 2}) \n",
+ "\n",
+ "xox\n",
+ "o..\n",
+ "x.o Counter({4: 4, 5: 3, 7: 3}) \n",
+ "\n",
+ "ox.\n",
+ ".xx\n",
+ "..o Counter({3: 3, 6: 3, 7: 3, 2: 0}) \n",
+ "\n",
+ "xo.\n",
+ "..x\n",
+ "xo. Counter({8: 3, 2: 3, 3: 3, 4: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o.o\n",
+ ".x. Counter({8: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "xo. Counter({8: 3, 4: 3, 5: 3}) \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ "x.o Counter({5: 4, 3: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "x..\n",
+ "..o Counter({6: 5, 7: 4, 4: 3, 5: 3}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ ".o. Counter({8: 3, 3: 3, 4: 3, 5: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ "xox\n",
+ "..o Counter({6: 7, 7: 2}) \n",
+ "\n",
+ "ox.\n",
+ "oxx\n",
+ "... Counter({6: 10, 7: 3, 2: 2, 8: 0}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "oox Counter({5: 6, 2: 3, 4: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ "o.x Counter({2: 4, 4: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ ".x.\n",
+ ".oo Counter({6: 6, 2: 5, 5: 4, 3: 2}) \n",
+ "\n",
+ "xoo\n",
+ ".o.\n",
+ "x.x Counter({7: 4, 3: 3, 5: 1}) \n",
+ "\n",
+ "xox\n",
+ ".x.\n",
+ "oxo Counter({3: 3, 5: 3}) \n",
+ "\n",
+ "xox\n",
+ ".o.\n",
+ ".x. Counter({8: 3, 3: 3, 5: 3, 6: 3}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ "xo. Counter({8: 2, 3: 2}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "o.. Counter({2: 6, 5: 6, 3: 4, 8: 2, 7: 2}) \n",
+ "\n",
+ "xo.\n",
+ "..x\n",
+ "... Counter({2: 4, 7: 4, 3: 3, 8: 3, 4: 2, 6: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ ".ox Counter({6: 3, 3: 2, 5: 1}) \n",
+ "\n",
+ "xox\n",
+ "ox.\n",
+ "oxo Counter({5: 3}) \n",
+ "\n",
+ "xx.\n",
+ "ox.\n",
+ "xoo Counter({2: 3, 5: 2}) \n",
+ "\n",
+ "xxo\n",
+ "..o\n",
+ ".x. Counter({8: 4, 6: 4, 4: 3, 3: 0}) \n",
+ "\n",
+ "ox.\n",
+ ".xo\n",
+ "... Counter({8: 5, 3: 4, 7: 4, 2: 3, 6: 2}) \n",
+ "\n",
+ "xx.\n",
+ "xox\n",
+ ".oo Counter({6: 5, 2: 2}) \n",
+ "\n",
+ "x.o\n",
+ "..x\n",
+ "ox. Counter({4: 5, 8: 3, 1: 3, 3: 2}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "o.x Counter({2: 4, 7: 2}) \n",
+ "\n",
+ ".x.\n",
+ "o.o\n",
+ ".x. Counter({8: 4, 0: 3, 4: 3, 6: 3, 2: 2}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "oxo Counter({3: 3, 4: 3, 5: 3}) \n",
+ "\n",
+ "x.x\n",
+ ".x.\n",
+ "o.o Counter({1: 8, 7: 5, 3: 2, 5: 2}) \n",
+ "\n",
+ "xxo\n",
+ "xo.\n",
+ "... Counter({5: 6, 6: 5, 8: 3, 7: 3}) \n",
+ "\n",
+ "xox\n",
+ "o..\n",
+ ".xo Counter({6: 4, 4: 3, 5: 3}) \n",
+ "\n",
+ ".x.\n",
+ ".x.\n",
+ ".o. Counter({8: 4, 0: 3, 2: 3, 3: 3, 5: 3, 6: 2}) \n",
+ "\n",
+ "xx.\n",
+ "ox.\n",
+ "o.. Counter({8: 3, 2: 3, 5: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "xo. Counter({8: 3, 3: 3, 4: 3, 2: 2}) \n",
+ "\n",
+ "xox\n",
+ ".o.\n",
+ "x.o Counter({3: 6, 7: 4, 5: 2}) \n",
+ "\n",
+ "xo.\n",
+ "..o\n",
+ "x.x Counter({2: 3, 3: 3, 4: 3, 7: 3}) \n",
+ "\n",
+ "oo.\n",
+ ".x.\n",
+ ".x. Counter({2: 8, 8: 0, 3: 0, 5: 0, 6: 0}) \n",
+ "\n",
+ "xo.\n",
+ ".o.\n",
+ ".x. Counter({6: 6, 3: 5, 8: 3, 5: 3, 2: 2}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ ".xo Counter({4: 4, 2: 3, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "xo.\n",
+ ".xo Counter({5: 6, 6: 5}) \n",
+ "\n",
+ "oxo\n",
+ ".x.\n",
+ "... Counter({3: 5, 6: 4, 8: 3, 5: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "xx.\n",
+ ".oo Counter({5: 10, 6: 3}) \n",
+ "\n",
+ "xo.\n",
+ ".xx\n",
+ ".o. Counter({8: 3, 2: 3, 6: 3, 3: 2}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ ".ox Counter({3: 5, 2: 4, 6: 2}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "xoo Counter({2: 4, 5: 4, 3: 3}) \n",
+ "\n",
+ "xo.\n",
+ ".xo\n",
+ "... Counter({8: 4, 2: 3, 3: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "x..\n",
+ ".xo\n",
+ "... Counter({1: 3, 3: 3, 6: 3, 2: 2, 7: 2, 8: 1}) \n",
+ "\n",
+ "x.o\n",
+ "...\n",
+ "o.x Counter({1: 3, 4: 3, 7: 3, 3: 2, 5: 2}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ ".x. Counter({2: 5, 3: 4, 8: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ ".ox\n",
+ ".o. Counter({8: 3, 3: 3, 6: 3}) \n",
+ "\n",
+ "xx.\n",
+ "ox.\n",
+ "oo. Counter({8: 3, 2: 3, 5: 3}) \n",
+ "\n",
+ "xx.\n",
+ "...\n",
+ "oo. Counter({8: 4, 2: 3, 3: 3, 5: 3, 4: 2}) \n",
+ "\n",
+ "xx.\n",
+ "...\n",
+ "..o Counter({2: 10, 6: 4, 7: 2, 3: 0, 4: 0, 5: 0}) \n",
+ "\n",
+ "x.o\n",
+ "...\n",
+ ".x. Counter({8: 7, 6: 6, 4: 5, 5: 2, 1: 1, 3: 1}) \n",
+ "\n",
+ "ox.\n",
+ ".ox\n",
+ ".x. Counter({3: 8, 8: 5, 6: 4, 2: 3}) \n",
+ "\n",
+ "xx.\n",
+ "x.o\n",
+ ".oo Counter({2: 4, 4: 3, 6: 3}) \n",
+ "\n",
+ "...\n",
+ "...\n",
+ "... Counter({8: 21203, 0: 14869, 6: 7569, 2: 5002, 4: 73, 3: 9, 1: 3, 5: 2, 7: 0}) \n",
+ "\n",
+ "xx.\n",
+ "oxx\n",
+ ".oo Counter({6: 9, 2: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o.x\n",
+ "..o Counter({6: 3, 7: 3, 2: 2, 4: 2}) \n",
+ "\n",
+ "oxo\n",
+ "xx.\n",
+ ".o. Counter({5: 9, 8: 5, 6: 3}) \n",
+ "\n",
+ "ox.\n",
+ ".xx\n",
+ "o.. Counter({3: 4, 8: 2, 2: 2, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "..o\n",
+ "... Counter({6: 4, 3: 3, 4: 3, 7: 3, 8: 2}) \n",
+ "\n",
+ "xox\n",
+ "oo.\n",
+ "x.x Counter({7: 4, 5: 3}) \n",
+ "\n",
+ "xxo\n",
+ "oo.\n",
+ "x.x Counter({5: 11, 7: 3}) \n",
+ "\n",
+ "x..\n",
+ ".xo\n",
+ "..o Counter({2: 10, 7: 5, 1: 3, 6: 1, 3: 0}) \n",
+ "\n",
+ "ox.\n",
+ ".xx\n",
+ ".o. Counter({3: 7, 8: 0, 2: 0, 6: 0}) \n",
+ "\n",
+ "x..\n",
+ ".o.\n",
+ "..x Counter({5: 4, 1: 3, 2: 3, 3: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ ".ox Counter({2: 3, 4: 3, 5: 3, 6: 3}) \n",
+ "\n",
+ "x.x\n",
+ ".x.\n",
+ "oo. Counter({8: 9, 3: 2, 5: 2, 1: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".xx\n",
+ ".oo Counter({3: 7, 6: 4, 2: 3}) \n",
+ "\n",
+ "xx.\n",
+ "...\n",
+ ".o. Counter({3: 4, 6: 3, 8: 3, 2: 2, 4: 2, 5: 2}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "o.. Counter({8: 3, 4: 3, 3: 2, 5: 2, 7: 2}) \n",
+ "\n",
+ "xox\n",
+ "o.o\n",
+ "xox Counter({4: 3}) \n",
+ "\n",
+ "ox.\n",
+ ".x.\n",
+ ".o. Counter({6: 13, 3: 11, 5: 6, 8: 4, 2: 1}) \n",
+ "\n",
+ "xo.\n",
+ "oox\n",
+ ".x. Counter({8: 3, 2: 3, 6: 3}) \n",
+ "\n",
+ "ox.\n",
+ "...\n",
+ "... Counter({3: 6, 5: 6, 7: 5, 2: 3, 4: 3, 6: 2, 8: 2}) \n",
+ "\n",
+ "xox\n",
+ ".o.\n",
+ "x.. Counter({3: 5, 5: 3, 7: 3, 8: 2}) \n",
+ "\n",
+ "xo.\n",
+ ".ox\n",
+ ".xo Counter({2: 3, 3: 3, 6: 3}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "ox. Counter({8: 4, 4: 4, 3: 3, 2: 2}) \n",
+ "\n",
+ "xo.\n",
+ "o.x\n",
+ ".x. Counter({8: 3, 2: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "..o Counter({6: 4, 2: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "o.x Counter({4: 3, 5: 3, 7: 3, 2: 2}) \n",
+ "\n",
+ "x.o\n",
+ ".ox\n",
+ "... Counter({6: 4, 7: 4, 3: 2, 1: 1, 8: 0}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ ".o. Counter({8: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "ox. Counter({8: 3, 4: 3, 5: 3}) \n",
+ "\n",
+ "x..\n",
+ ".xo\n",
+ ".o. Counter({8: 4, 1: 3, 2: 3, 3: 3, 6: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ ".o. Counter({8: 3, 2: 3, 4: 3, 5: 3, 6: 3}) \n",
+ "\n",
+ "x.o\n",
+ "...\n",
+ ".xo Counter({1: 3, 3: 3, 4: 3, 5: 3, 6: 3}) \n",
+ "\n",
+ "xo.\n",
+ ".xx\n",
+ "oo. Counter({8: 5, 2: 3, 3: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o.x\n",
+ "oxo Counter({2: 1, 4: 1}) \n",
+ "\n",
+ "x.o\n",
+ ".xx\n",
+ ".oo Counter({3: 7, 6: 4, 1: 3}) \n",
+ "\n",
+ "xx.\n",
+ "...\n",
+ ".oo Counter({2: 3, 5: 3, 6: 3, 3: 1, 4: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "oxo Counter({4: 4, 2: 3, 5: 3}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ ".o. Counter({8: 4, 2: 4, 6: 3}) \n",
+ "\n",
+ "oxo\n",
+ "x.x\n",
+ "oxo Counter({4: 3}) \n",
+ "\n",
+ "xox\n",
+ "ox.\n",
+ "o.. Counter({7: 4, 8: 3, 5: 3}) \n",
+ "\n",
+ "xxo\n",
+ "x.o\n",
+ "... Counter({8: 6, 4: 4, 6: 4, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ "... Counter({3: 6, 8: 3, 5: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ "xox Counter({3: 4, 2: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "..o Counter({6: 7, 3: 4, 2: 3, 5: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ ".xo Counter({5: 3, 6: 3, 2: 2, 4: 2}) \n",
+ "\n",
+ "xxo\n",
+ "xxo\n",
+ "o.. Counter({8: 5, 7: 2}) \n",
+ "\n",
+ "oxo\n",
+ "x.x\n",
+ "... Counter({4: 4, 8: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o.x\n",
+ "o.o Counter({7: 4, 2: 3, 4: 3}) \n",
+ "\n",
+ "xo.\n",
+ "..x\n",
+ "o.. Counter({8: 3, 3: 3, 4: 3, 7: 3, 2: 2}) \n",
+ "\n",
+ "xox\n",
+ "oo.\n",
+ "x.. Counter({5: 2, 8: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "..o\n",
+ "x.. Counter({8: 4, 3: 3, 4: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "oox Counter({5: 4, 2: 3, 3: 3}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ ".xo Counter({2: 4, 4: 3, 3: 2, 6: 2}) \n",
+ "\n",
+ "xoo\n",
+ ".x.\n",
+ "ox. Counter({3: 7, 8: 4, 5: 4}) \n",
+ "\n",
+ "o..\n",
+ "..x\n",
+ ".x. Counter({3: 5, 1: 4, 4: 4, 2: 3, 6: 3, 8: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ "xox Counter({3: 3, 5: 0}) \n",
+ "\n",
+ "xx.\n",
+ "oxo\n",
+ "x.o Counter({2: 3, 7: 2}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "... Counter({2: 4, 8: 3, 7: 3, 6: 2}) \n",
+ "\n",
+ "xo.\n",
+ ".x.\n",
+ ".xo Counter({5: 9, 2: 4, 6: 2, 3: 1}) \n",
+ "\n",
+ "xox\n",
+ "...\n",
+ "x.o Counter({4: 1, 3: 0, 5: 0, 7: 0}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ "... Counter({6: 3, 7: 2, 8: 0}) \n",
+ "\n",
+ "xo.\n",
+ ".o.\n",
+ "..x Counter({7: 4, 3: 3, 2: 2, 6: 2, 5: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ "x.. Counter({3: 3, 8: 2, 2: 2, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "xx.\n",
+ "o.o Counter({5: 5, 7: 4}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "..o Counter({4: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xoo\n",
+ "..x\n",
+ ".x. Counter({8: 3, 3: 3, 4: 3, 6: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".oo\n",
+ ".x. Counter({8: 2, 6: 2, 3: 1}) \n",
+ "\n",
+ "ox.\n",
+ "...\n",
+ "ox. Counter({4: 4, 8: 3, 2: 3, 3: 3, 5: 3}) \n",
+ "\n",
+ "ox.\n",
+ "..x\n",
+ "... Counter({3: 5, 4: 5, 6: 4, 8: 1, 2: 0, 7: 0}) \n",
+ "\n",
+ "xox\n",
+ "oxo\n",
+ "... Counter({6: 4, 8: 3, 7: 3}) \n",
+ "\n",
+ "xox\n",
+ "ox.\n",
+ "ox. Counter({8: 3, 5: 0}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "o.x Counter({2: 5, 5: 4, 3: 1, 7: 1}) \n",
+ "\n",
+ "ox.\n",
+ "xxo\n",
+ "..o Counter({2: 6, 7: 5, 6: 0}) \n",
+ "\n",
+ "xx.\n",
+ "...\n",
+ "o.o Counter({2: 3, 5: 3, 7: 3, 3: 2, 4: 1}) \n",
+ "\n",
+ "xxo\n",
+ "x.o\n",
+ "o.x Counter({4: 8, 7: 2}) \n",
+ "\n",
+ "xo.\n",
+ ".x.\n",
+ "... Counter({5: 2, 6: 2, 8: 2, 2: 1, 3: 1, 7: 0}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ "oxo Counter({3: 12}) \n",
+ "\n",
+ "xxo\n",
+ "xoo\n",
+ ".x. Counter({8: 8, 6: 4}) \n",
+ "\n",
+ "xo.\n",
+ "..x\n",
+ "..o Counter({3: 4, 2: 3, 4: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ ".ox Counter({2: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ "ox.\n",
+ ".o. Counter({8: 5, 5: 3, 6: 3}) \n",
+ "\n",
+ "oo.\n",
+ "oxx\n",
+ ".x. Counter({8: 3, 2: 3, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o.o\n",
+ "xx. Counter({8: 4, 4: 4}) \n",
+ "\n",
+ "x..\n",
+ ".xx\n",
+ ".oo Counter({1: 3, 2: 3, 6: 3, 3: 2}) \n",
+ "\n",
+ "xxo\n",
+ "xo.\n",
+ ".o. Counter({6: 5, 8: 2, 5: 2}) \n",
+ "\n",
+ "x.o\n",
+ ".x.\n",
+ "... Counter({8: 7, 1: 0, 3: 0, 5: 0, 6: 0, 7: 0}) \n",
+ "\n",
+ "xox\n",
+ "o..\n",
+ "..x Counter({4: 3, 5: 3, 6: 3, 7: 2}) \n",
+ "\n",
+ "xxo\n",
+ "xoo\n",
+ ".ox Counter({6: 9}) \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ "..x Counter({6: 6, 3: 5, 7: 4, 5: 2}) \n",
+ "\n",
+ "xo.\n",
+ "..x\n",
+ "ox. Counter({8: 3, 3: 3, 4: 3, 2: 2}) \n",
+ "\n",
+ "xxo\n",
+ "ox.\n",
+ "xo. Counter({8: 3, 5: 0}) \n",
+ "\n",
+ "xoo\n",
+ "..x\n",
+ "x.o Counter({4: 4, 3: 3, 7: 3}) \n",
+ "\n",
+ "ox.\n",
+ "xox\n",
+ "... Counter({8: 7, 2: 4, 6: 3, 7: 3}) \n",
+ "\n",
+ "xo.\n",
+ ".xo\n",
+ "x.o Counter({3: 5, 2: 4, 7: 3}) \n",
+ "\n",
+ "xox\n",
+ "o.o\n",
+ "x.x Counter({4: 4, 7: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".x.\n",
+ ".o. Counter({8: 12, 3: 2, 6: 1, 5: 0}) \n",
+ "\n",
+ "xoo\n",
+ ".x.\n",
+ "x.o Counter({3: 8, 5: 3, 7: 1}) \n",
+ "\n",
+ "ox.\n",
+ "x.x\n",
+ ".o. Counter({8: 3, 2: 3, 4: 3, 6: 2}) \n",
+ "\n",
+ "xo.\n",
+ ".x.\n",
+ "ox. Counter({8: 2, 2: 0, 3: 0, 5: 0}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ "o.x Counter({2: 5, 4: 4, 3: 3, 5: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ "xo. Counter({2: 5, 3: 5, 8: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o.x\n",
+ "o.. Counter({2: 3, 4: 3, 7: 3, 8: 2}) \n",
+ "\n",
+ "xxo\n",
+ "oxo\n",
+ "x.. Counter({8: 6, 7: 2}) \n",
+ "\n",
+ "xxo\n",
+ "x.x\n",
+ "oo. Counter({4: 5, 8: 4}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ ".ox Counter({4: 3, 5: 3, 6: 3}) \n",
+ "\n",
+ "oxo\n",
+ "x.x\n",
+ "ox. Counter({8: 3, 4: 3}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ ".ox Counter({5: 4, 2: 3, 6: 2}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "xox Counter({4: 3, 5: 1}) \n",
+ "\n",
+ "ox.\n",
+ "...\n",
+ ".x. Counter({4: 10, 2: 3, 3: 3, 6: 3, 8: 1, 5: 0}) \n",
+ "\n",
+ "xx.\n",
+ ".xo\n",
+ "..o Counter({2: 3, 3: 3, 6: 3, 7: 2}) \n",
+ "\n",
+ "ox.\n",
+ "oxx\n",
+ "..o Counter({7: 6, 6: 4, 2: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".xo\n",
+ "o.. Counter({3: 5, 8: 4, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ ".ox Counter({2: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ "..x Counter({4: 4, 5: 3, 7: 3, 3: 2, 6: 2, 2: 1}) \n",
+ "\n",
+ "xo.\n",
+ "o.x\n",
+ "... Counter({6: 5, 7: 4, 2: 3, 4: 3, 8: 2}) \n",
+ "\n",
+ "xxo\n",
+ "xoo\n",
+ "..x Counter({6: 7, 7: 2}) \n",
+ "\n",
+ "xxo\n",
+ "..o\n",
+ "..x Counter({4: 4, 3: 3, 6: 3, 7: 2}) \n",
+ "\n",
+ "ox.\n",
+ "x.x\n",
+ "..o Counter({6: 4, 2: 3, 4: 3, 7: 3}) \n",
+ "\n",
+ ".x.\n",
+ "xo.\n",
+ "... Counter({8: 6, 2: 4, 6: 4, 7: 4, 0: 3, 5: 3}) \n",
+ "\n",
+ "ox.\n",
+ ".xx\n",
+ "oo. Counter({3: 10, 8: 2, 2: 2}) \n",
+ "\n",
+ "xxo\n",
+ "xo.\n",
+ ".ox Counter({6: 10, 5: 0}) \n",
+ "\n",
+ "xxo\n",
+ "oxx\n",
+ "o.. Counter({7: 1, 8: 0}) \n",
+ "\n",
+ "x.o\n",
+ "..x\n",
+ "..o Counter({4: 4, 1: 3, 3: 3, 6: 3, 7: 2}) \n",
+ "\n",
+ "xo.\n",
+ "oxx\n",
+ ".xo Counter({2: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ ".x. Counter({4: 4, 8: 2, 5: 2, 6: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".xo\n",
+ "... Counter({8: 5, 6: 3, 7: 3, 3: 2}) \n",
+ "\n",
+ "xox\n",
+ "o.o\n",
+ ".x. Counter({4: 4, 8: 3, 6: 3}) \n",
+ "\n",
+ "xoo\n",
+ ".x.\n",
+ ".xo Counter({5: 4, 3: 0, 6: 0}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ ".xo Counter({2: 5, 3: 3, 5: 2, 6: 2}) \n",
+ "\n",
+ "xox\n",
+ ".o.\n",
+ "ox. Counter({8: 5, 5: 5, 3: 3}) \n",
+ "\n",
+ "x.o\n",
+ "..x\n",
+ "o.. Counter({8: 3, 1: 3, 4: 3, 3: 2, 7: 2}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ "xo. Counter({2: 5, 5: 5, 8: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".xo\n",
+ "xo. Counter({8: 6, 3: 3}) \n",
+ "\n",
+ "xx.\n",
+ "ox.\n",
+ ".oo Counter({2: 6, 6: 3, 5: 2}) \n",
+ "\n",
+ "oxo\n",
+ "xx.\n",
+ "..o Counter({5: 5, 6: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ "... Counter({2: 4, 4: 4, 8: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xo.\n",
+ ".xx\n",
+ "o.. Counter({2: 3, 3: 3, 8: 2, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".xx\n",
+ "oo. Counter({8: 7, 3: 2}) \n",
+ "\n",
+ "ox.\n",
+ "x.o\n",
+ "... Counter({4: 5, 7: 4, 8: 3, 2: 3, 6: 2}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ "o.x Counter({5: 4, 2: 3, 7: 2}) \n",
+ "\n",
+ "xox\n",
+ "...\n",
+ "xoo Counter({3: 4, 4: 3, 5: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "..o Counter({5: 4, 2: 3, 4: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "..x\n",
+ "oo. Counter({8: 3, 3: 3, 4: 3}) \n",
+ "\n",
+ "xx.\n",
+ ".xo\n",
+ "o.. Counter({2: 3, 3: 3, 7: 2, 8: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".ox\n",
+ ".oo Counter({2: 3, 3: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "ox. Counter({4: 3, 8: 0}) \n",
+ "\n",
+ "xxo\n",
+ ".x.\n",
+ "oo. Counter({8: 6, 5: 2, 3: 1}) \n",
+ "\n",
+ "ox.\n",
+ ".o.\n",
+ ".x. Counter({8: 3, 6: 3, 5: 2, 2: 1, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ "ox. Counter({2: 5, 8: 3, 5: 2}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "x.o Counter({2: 3, 4: 3, 5: 3, 7: 2}) \n",
+ "\n",
+ "xoo\n",
+ "..x\n",
+ "... Counter({8: 4, 3: 3, 4: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "... Counter({4: 7, 3: 6, 8: 5, 5: 2, 6: 2, 7: 2}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "oox Counter({2: 10}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ ".xo Counter({4: 3, 5: 3, 6: 3}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ "xoo Counter({3: 8}) \n",
+ "\n",
+ "xxo\n",
+ "oo.\n",
+ "xox Counter({5: 3}) \n",
+ "\n",
+ "x.x\n",
+ "...\n",
+ ".o. Counter({1: 3, 4: 3, 5: 3, 8: 3, 3: 2, 6: 2}) \n",
+ "\n",
+ "x..\n",
+ ".ox\n",
+ "... Counter({2: 3, 1: 2, 6: 2, 7: 1, 3: 0, 8: 0}) \n",
+ "\n",
+ "xx.\n",
+ "o.x\n",
+ ".o. Counter({8: 3, 4: 3, 6: 3, 2: 2}) \n",
+ "\n",
+ "xo.\n",
+ ".xx\n",
+ "o.o Counter({3: 6, 7: 4, 2: 3}) \n",
+ "\n",
+ "x.o\n",
+ ".xx\n",
+ "o.o Counter({3: 7, 7: 3, 1: 0}) \n",
+ "\n",
+ "ox.\n",
+ "o.x\n",
+ ".x. Counter({6: 4, 4: 3, 8: 2, 2: 2}) \n",
+ "\n",
+ "oxo\n",
+ "x..\n",
+ ".x. Counter({4: 3, 8: 2, 5: 2, 6: 2}) \n",
+ "\n",
+ "ox.\n",
+ "..x\n",
+ "..o Counter({4: 4, 2: 3, 3: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "oo.\n",
+ ".xx Counter({5: 8, 6: 5}) \n",
+ "\n",
+ "x..\n",
+ ".x.\n",
+ "..o Counter({5: 5, 6: 4, 1: 3, 2: 3, 3: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ ".ox\n",
+ ".o. Counter({8: 3, 2: 3, 6: 3, 3: 2}) \n",
+ "\n",
+ "xo.\n",
+ ".o.\n",
+ "x.x Counter({2: 3, 3: 3, 5: 3, 7: 3}) \n",
+ "\n",
+ "ox.\n",
+ "xxo\n",
+ ".o. Counter({2: 4, 6: 4, 8: 3}) \n",
+ "\n",
+ "xx.\n",
+ "x.o\n",
+ ".o. Counter({8: 3, 2: 3, 6: 3, 4: 2}) \n",
+ "\n",
+ "x.x\n",
+ "...\n",
+ "oo. Counter({8: 3, 1: 3, 3: 3, 4: 3, 5: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o.o\n",
+ "oxx Counter({4: 4}) \n",
+ "\n",
+ "xxo\n",
+ "xo.\n",
+ "..o Counter({6: 5, 7: 3, 5: 2}) \n",
+ "\n",
+ "xxo\n",
+ "xox\n",
+ ".o. Counter({6: 8, 8: 0}) \n",
+ "\n",
+ "ox.\n",
+ "o.x\n",
+ "... Counter({6: 4, 7: 4, 8: 3, 4: 3, 2: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".oo\n",
+ "xx. Counter({8: 5, 3: 4}) \n",
+ "\n",
+ "xxo\n",
+ "xox\n",
+ ".oo Counter({6: 7}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ "xo. Counter({2: 3, 4: 3, 8: 2}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ "ox. Counter({3: 4, 2: 3, 8: 2}) \n",
+ "\n",
+ "xxo\n",
+ "..x\n",
+ ".o. Counter({3: 3, 4: 3, 8: 2, 6: 2}) \n",
+ "\n",
+ "xox\n",
+ ".o.\n",
+ "... Counter({7: 3, 8: 0, 3: 0, 5: 0, 6: 0}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ "..x Counter({6: 8, 7: 3}) \n",
+ "\n",
+ "xoo\n",
+ ".x.\n",
+ "x.. Counter({8: 3, 3: 3, 5: 3, 7: 2}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ "xox Counter({5: 4, 2: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "o.. Counter({8: 3, 4: 3, 7: 3}) \n",
+ "\n",
+ "xoo\n",
+ "...\n",
+ "x.x Counter({3: 2, 5: 1, 4: 0, 7: 0}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ ".x. Counter({8: 3, 4: 3, 2: 2, 6: 2}) \n",
+ "\n",
+ "x.o\n",
+ "..x\n",
+ "oxo Counter({1: 3, 4: 3, 3: 2}) \n",
+ "\n",
+ "xx.\n",
+ "x.o\n",
+ "..o Counter({2: 6, 4: 4, 7: 3, 6: 2}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "oxx Counter({4: 9, 5: 1}) \n",
+ "\n",
+ "xxo\n",
+ "..x\n",
+ ".oo Counter({4: 3, 6: 3, 3: 1}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ "xxo Counter() \n",
+ "\n",
+ "xx.\n",
+ ".xo\n",
+ "oo. Counter({8: 5, 2: 3, 3: 3}) \n",
+ "\n",
+ "xx.\n",
+ "oxo\n",
+ "o.. Counter({7: 5, 2: 4, 8: 3}) \n",
+ "\n",
+ "o..\n",
+ ".xx\n",
+ "... Counter({3: 13, 1: 0, 2: 0, 6: 0, 7: 0, 8: 0}) \n",
+ "\n",
+ "oxo\n",
+ "x..\n",
+ "... Counter({7: 4, 8: 3, 4: 3, 5: 3, 6: 3}) \n",
+ "\n",
+ "xox\n",
+ "...\n",
+ "xo. Counter({3: 4, 4: 4, 8: 3, 5: 3}) \n",
+ "\n",
+ "ox.\n",
+ "x..\n",
+ "..o Counter({2: 3, 4: 3, 5: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "..o\n",
+ "ox. Counter({8: 3, 4: 3, 3: 2}) \n",
+ "\n",
+ ".x.\n",
+ "oo.\n",
+ ".x. Counter({0: 4, 8: 3, 5: 3, 2: 2, 6: 2}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "o.x Counter({2: 1, 3: 0, 4: 0, 7: 0}) \n",
+ "\n",
+ "xoo\n",
+ ".xo\n",
+ "x.. Counter({3: 6, 7: 4, 8: 3}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "..o Counter({2: 4, 3: 3, 4: 3, 7: 3, 6: 2}) \n",
+ "\n",
+ "ox.\n",
+ ".x.\n",
+ "o.. Counter({3: 7, 7: 7, 8: 5, 5: 2, 2: 0}) \n",
+ "\n",
+ "xoo\n",
+ "...\n",
+ "x.. Counter({5: 4, 8: 3, 3: 3, 4: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "...\n",
+ "xoo Counter({2: 3, 3: 2, 4: 1, 5: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ "xxo Counter({5: 5, 3: 3}) \n",
+ "\n",
+ "xxo\n",
+ "..x\n",
+ "xoo Counter({3: 3, 4: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".x.\n",
+ "o.o Counter({7: 7, 5: 2, 3: 0}) \n",
+ "\n",
+ "oo.\n",
+ ".xx\n",
+ ".x. Counter({2: 8, 3: 3, 8: 2, 6: 2}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "xo. Counter({2: 3, 8: 2}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "xxo Counter({5: 5, 4: 3}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ "o.. Counter({3: 6, 7: 5, 8: 3}) \n",
+ "\n",
+ "xxo\n",
+ "x.o\n",
+ ".o. Counter({8: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ ".x.\n",
+ ".o.\n",
+ "... Counter({2: 11, 0: 5, 6: 4, 3: 1, 8: 1, 5: 0, 7: 0}) \n",
+ "\n",
+ "xo.\n",
+ ".xo\n",
+ "x.. Counter({8: 3, 2: 3, 3: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "oxx\n",
+ ".oo Counter({6: 3}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "o.. Counter({2: 4, 8: 3, 3: 3, 4: 3, 7: 3}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ "x.. Counter({7: 4, 4: 3, 5: 3, 8: 3, 2: 2, 3: 2}) \n",
+ "\n",
+ "xo.\n",
+ "oxx\n",
+ ".o. Counter({6: 4, 8: 3, 2: 3}) \n",
+ "\n",
+ "xxo\n",
+ "..x\n",
+ "oxo Counter({4: 8, 3: 1}) \n",
+ "\n",
+ "xxo\n",
+ "x.o\n",
+ "oox Counter({4: 5}) \n",
+ "\n",
+ "xox\n",
+ "...\n",
+ "ox. Counter({8: 3, 4: 3, 5: 3, 3: 2}) \n",
+ "\n",
+ "xx.\n",
+ "xoo\n",
+ ".o. Counter({8: 5, 2: 4, 6: 3}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "oox Counter({2: 3, 3: 3, 4: 3}) \n",
+ "\n",
+ "xxo\n",
+ "oxo\n",
+ "xo. Counter({8: 6}) \n",
+ "\n",
+ "xox\n",
+ "oo.\n",
+ "..x Counter({5: 3, 7: 2, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".ox\n",
+ "xoo Counter({3: 1, 2: 0}) \n",
+ "\n",
+ "xoo\n",
+ ".x.\n",
+ ".x. Counter({8: 5, 3: 0, 5: 0, 6: 0}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ "..x Counter({3: 5, 2: 4, 6: 3, 7: 3}) \n",
+ "\n",
+ "xoo\n",
+ "ox.\n",
+ ".x. Counter({6: 5, 8: 4, 5: 3}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "xo. Counter({8: 3, 3: 3, 5: 3, 4: 2}) \n",
+ "\n",
+ "x.o\n",
+ ".x.\n",
+ "o.. Counter({8: 4, 3: 4, 5: 4, 1: 3, 7: 3}) \n",
+ "\n",
+ "ox.\n",
+ "..x\n",
+ ".o. Counter({4: 4, 8: 3, 2: 3, 3: 3, 6: 3}) \n",
+ "\n",
+ "oo.\n",
+ ".xx\n",
+ "... Counter({6: 6, 2: 4, 3: 4, 8: 3, 7: 2}) \n",
+ "\n",
+ "x.x\n",
+ "...\n",
+ "o.. Counter({8: 1, 1: 0, 3: 0, 4: 0, 5: 0, 7: 0}) \n",
+ "\n",
+ ".x.\n",
+ "o..\n",
+ "... Counter({4: 6, 2: 5, 0: 4, 8: 4, 5: 3, 6: 3, 7: 2}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "ox. Counter({2: 8, 3: 4, 8: 3, 5: 3}) \n",
+ "\n",
+ "xo.\n",
+ ".x.\n",
+ "..o Counter({3: 8, 5: 5, 2: 3, 7: 3, 6: 2}) \n",
+ "\n",
+ "o..\n",
+ ".ox\n",
+ ".x. Counter({6: 4, 8: 3, 2: 3, 1: 2, 3: 2}) \n",
+ "\n",
+ "oo.\n",
+ "..x\n",
+ ".x. Counter({8: 5, 3: 3, 6: 3, 2: 2, 4: 2}) \n",
+ "\n",
+ "xo.\n",
+ ".xx\n",
+ "oxo Counter({3: 3, 2: 0}) \n",
+ "\n",
+ "xo.\n",
+ "ox.\n",
+ "... Counter({2: 4, 8: 3, 5: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "x.o\n",
+ ".xx\n",
+ "oxo Counter({1: 2, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ "x.. Counter({2: 4, 8: 3, 5: 3, 7: 2}) \n",
+ "\n",
+ "xo.\n",
+ "..x\n",
+ "x.o Counter({3: 3, 4: 3, 7: 3, 2: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".ox\n",
+ "xo. Counter({3: 3, 8: 0}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "x.o Counter({4: 3, 5: 3, 7: 2}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ "x.. Counter({8: 3, 7: 3}) \n",
+ "\n",
+ "x.o\n",
+ ".x.\n",
+ "..o Counter({5: 11, 1: 0, 3: 0, 6: 0, 7: 0}) \n",
+ "\n",
+ "xx.\n",
+ ".xo\n",
+ "xoo Counter({2: 7, 3: 2}) \n",
+ "\n",
+ "xoo\n",
+ "...\n",
+ "..x Counter({7: 4, 3: 3, 4: 3, 5: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ ".xx\n",
+ ".oo Counter({6: 11, 3: 3}) \n",
+ "\n",
+ "xox\n",
+ "...\n",
+ "oxo Counter({3: 3, 4: 3, 5: 3}) \n",
+ "\n",
+ "x..\n",
+ "..x\n",
+ "..o Counter({3: 3, 4: 3, 6: 3, 1: 2, 2: 2, 7: 2}) \n",
+ "\n",
+ "xoo\n",
+ "oxx\n",
+ ".xo Counter({6: 3}) \n",
+ "\n",
+ "xxo\n",
+ ".ox\n",
+ "xoo Counter({3: 14}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ "..x Counter({2: 5, 5: 5, 7: 3, 6: 2}) \n",
+ "\n",
+ "x.x\n",
+ ".o.\n",
+ ".o. Counter({1: 11, 3: 4, 5: 2, 8: 1, 6: 0}) \n",
+ "\n",
+ "xoo\n",
+ ".x.\n",
+ "xo. Counter({8: 5, 3: 3, 5: 3}) \n",
+ "\n",
+ "xxo\n",
+ ".oo\n",
+ "x.x Counter({3: 5, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ "x.o Counter({2: 3, 4: 3, 7: 3}) \n",
+ "\n",
+ "ox.\n",
+ ".ox\n",
+ "ox. Counter({8: 3, 3: 3, 2: 2}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "x.o Counter({3: 4, 5: 1, 7: 1, 2: 0}) \n",
+ "\n",
+ "oxo\n",
+ "x.x\n",
+ ".o. Counter({8: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ "xox\n",
+ "...\n",
+ "... Counter({4: 4, 5: 3, 6: 3, 7: 3, 8: 3, 3: 2}) \n",
+ "\n",
+ "xxo\n",
+ "x..\n",
+ "o.. Counter({8: 5, 4: 3, 5: 3, 7: 3}) \n",
+ "\n",
+ "ox.\n",
+ "..x\n",
+ "ox. Counter({8: 3, 2: 3, 3: 3, 4: 3}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "o.. Counter({2: 8, 7: 4, 8: 2}) \n",
+ "\n",
+ "xx.\n",
+ "ox.\n",
+ "o.o Counter({7: 6, 2: 4, 5: 3}) \n",
+ "\n",
+ "x.x\n",
+ ".o.\n",
+ "... Counter({3: 4, 1: 3, 5: 3, 6: 3, 8: 3, 7: 2}) \n",
+ "\n",
+ "oxo\n",
+ "xx.\n",
+ "... Counter({6: 2, 7: 2, 8: 1, 5: 1}) \n",
+ "\n",
+ "xx.\n",
+ "xoo\n",
+ "... Counter({8: 3, 2: 2, 6: 2, 7: 2}) \n",
+ "\n",
+ "xxo\n",
+ "oo.\n",
+ ".x. Counter({5: 3, 6: 2, 8: 1}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "oxo Counter({2: 3, 3: 3, 4: 3}) \n",
+ "\n",
+ "xxo\n",
+ ".oo\n",
+ "..x Counter({6: 3, 7: 3, 3: 2}) \n",
+ "\n",
+ "xxo\n",
+ "x..\n",
+ ".oo Counter({5: 4, 4: 3, 6: 3}) \n",
+ "\n",
+ "ox.\n",
+ "..x\n",
+ "o.. Counter({8: 4, 2: 3, 3: 3, 4: 3, 7: 3}) \n",
+ "\n",
+ "x.o\n",
+ "..x\n",
+ "... Counter({8: 5, 4: 4, 6: 4, 1: 3, 3: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "x.o Counter({2: 3, 3: 3, 4: 2, 7: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".ox\n",
+ "x.o Counter({3: 6, 7: 4, 2: 2}) \n",
+ "\n",
+ "xo.\n",
+ "..o\n",
+ ".x. Counter({8: 5, 6: 4, 2: 3, 3: 3, 4: 3}) \n",
+ "\n",
+ "xxo\n",
+ "..o\n",
+ "xo. Counter({8: 3, 3: 3, 4: 3}) \n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "for b in p_floor0:\n",
+ " if b != 'human?':\n",
+ " print(show_board(b), p_floor0[b], '\\n')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 236,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "x.o\n",
+ ".ox\n",
+ ".xo Counter({6: 5, 1: 1, 3: 1}) \n",
+ "\n",
+ "oxo\n",
+ "...\n",
+ ".x. Counter({3: 4, 6: 4, 4: 3, 5: 3, 8: 2}) \n",
+ "\n",
+ "xx.\n",
+ "o.x\n",
+ "oox Counter({2: 1, 4: 1}) \n",
+ "\n",
+ "o..\n",
+ ".xx\n",
+ ".o. Counter({8: 782, 3: 743, 6: 690, 2: 282, 1: 15}) \n",
+ "\n",
+ "xo.\n",
+ ".xx\n",
+ "..o Counter({2: 1, 3: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xo.\n",
+ "..o\n",
+ "x.. Counter({4: 6878, 3: 5308, 8: 3024, 7: 549, 2: 380}) \n",
+ "\n",
+ "xx.\n",
+ ".ox\n",
+ "oxo Counter({2: 21, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "xo. Counter({5: 4, 2: 3, 4: 3, 8: 2}) \n",
+ "\n",
+ "xx.\n",
+ "...\n",
+ "oxo Counter({4: 5, 2: 3, 5: 2, 3: 1}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ "... Counter({6: 35062, 4: 33987, 3: 5003, 8: 2378, 7: 2101, 2: 80, 5: 10}) \n",
+ "\n",
+ "xox\n",
+ "ox.\n",
+ "... Counter({8: 1, 5: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ ".xo Counter({3: 3, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ "...\n",
+ "oox Counter({2: 5, 4: 3, 3: 1, 5: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".ox\n",
+ "... Counter({6: 20, 8: 10, 3: 5, 7: 2}) \n",
+ "\n",
+ "xoo\n",
+ ".xo\n",
+ ".x. Counter({8: 155, 3: 1, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o.x\n",
+ "xoo Counter({2: 3, 4: 2}) \n",
+ "\n",
+ "xo.\n",
+ ".ox\n",
+ ".x. Counter({2: 4, 8: 3, 3: 3, 6: 3}) \n",
+ "\n",
+ "xx.\n",
+ ".ox\n",
+ "oo. Counter({2: 18, 8: 1, 3: 1}) \n",
+ "\n",
+ ".x.\n",
+ "xoo\n",
+ "... Counter({0: 5, 2: 4, 8: 3, 6: 2, 7: 1}) \n",
+ "\n",
+ "ox.\n",
+ "x..\n",
+ "... Counter({2: 4, 8: 4, 4: 3, 5: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ ".xo Counter({2: 3, 6: 1}) \n",
+ "\n",
+ "o.o\n",
+ ".x.\n",
+ ".x. Counter({1: 201, 3: 2, 8: 1, 5: 1, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".x.\n",
+ "..o Counter({5: 25, 7: 13, 3: 2, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "x.x\n",
+ "o.o Counter({7: 10, 4: 6}) \n",
+ "\n",
+ "x.o\n",
+ "..o\n",
+ ".x. Counter({3: 6, 8: 3, 1: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "o.x Counter({4: 514, 5: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".xo\n",
+ ".oo Counter({2: 684, 3: 1, 6: 1}) \n",
+ "\n",
+ "ox.\n",
+ ".ox\n",
+ "... Counter({8: 1, 2: 1, 3: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".x.\n",
+ ".o. Counter({3: 5707, 2: 5644, 6: 5475, 5: 4195, 8: 1403}) \n",
+ "\n",
+ "x.o\n",
+ "..x\n",
+ ".o. Counter({4: 5, 6: 5, 8: 3, 1: 2, 3: 2}) \n",
+ "\n",
+ "xox\n",
+ "oxo\n",
+ "ox. Counter({8: 6658}) \n",
+ "\n",
+ "oxo\n",
+ "x..\n",
+ ".xo Counter({5: 4, 4: 3, 6: 3}) \n",
+ "\n",
+ "o..\n",
+ "..x\n",
+ "... Counter({2: 13, 4: 12, 8: 6, 6: 4, 7: 4, 1: 2, 3: 1}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "..o Counter({3: 1, 4: 1, 5: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o.x\n",
+ "oo. Counter({8: 171, 2: 91, 4: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ "... Counter({2: 16, 3: 5, 8: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "ox.\n",
+ ".x.\n",
+ "..o Counter({7: 4884, 3: 3320, 6: 1451, 2: 1256, 5: 541}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "... Counter({4: 4, 8: 3, 7: 3, 6: 2}) \n",
+ "\n",
+ "oxo\n",
+ "xox\n",
+ "... Counter({8: 3, 6: 2, 7: 2}) \n",
+ "\n",
+ "xo.\n",
+ ".xo\n",
+ ".x. Counter({8: 2, 2: 1, 3: 1, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".x.\n",
+ "xoo Counter({5: 26, 3: 3}) \n",
+ "\n",
+ "x..\n",
+ "..o\n",
+ "... Counter({2: 39728, 4: 26663, 6: 10545, 8: 2834, 3: 218, 7: 4, 1: 2}) \n",
+ "\n",
+ "ox.\n",
+ ".x.\n",
+ "... Counter({2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".ox\n",
+ "..o Counter({6: 4, 3: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "ox.\n",
+ "..o Counter({2: 1, 5: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xo.\n",
+ "oxx\n",
+ "..o Counter({2: 85, 6: 63, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "oxx\n",
+ "oo. Counter({8: 26, 2: 1}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ ".xo Counter({6: 149, 3: 145, 2: 8, 5: 8, 4: 6}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "xoo Counter({2: 1928}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ ".xo Counter({2: 5, 3: 2, 6: 1}) \n",
+ "\n",
+ "xo.\n",
+ "oxx\n",
+ "... Counter({8: 1, 2: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "ox. Counter({2: 3, 5: 3, 4: 2, 8: 1}) \n",
+ "\n",
+ "xox\n",
+ ".x.\n",
+ "oo. Counter({8: 3677, 3: 1, 5: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "xo. Counter({8: 3, 4: 3}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ "... Counter({8: 1, 3: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ ".x. Counter({2: 9, 5: 9, 8: 3, 6: 2}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ ".ox Counter({4: 885, 2: 1, 3: 1, 5: 1, 6: 1}) \n",
+ "\n",
+ "xox\n",
+ "o..\n",
+ "o.x Counter({5: 6160, 7: 4587, 4: 1208}) \n",
+ "\n",
+ "xx.\n",
+ ".ox\n",
+ "..o Counter({6: 4, 2: 2, 3: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "xoo Counter({3: 218, 2: 121, 4: 2}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ ".ox Counter({2: 5, 3: 4, 5: 1, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "... Counter({4: 831, 5: 5, 7: 3, 8: 1, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "x.x\n",
+ ".oo Counter({6: 6, 4: 1}) \n",
+ "\n",
+ "xoo\n",
+ "oxx\n",
+ ".x. Counter({8: 3, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".ox\n",
+ "x.o Counter({3: 3, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "ox. Counter({4: 8, 8: 4, 3: 3, 5: 3}) \n",
+ "\n",
+ "x..\n",
+ ".ox\n",
+ "..o Counter({6: 7, 1: 5, 2: 4, 3: 3, 7: 1}) \n",
+ "\n",
+ "xox\n",
+ "ox.\n",
+ "..o Counter({6: 7449, 5: 25, 7: 14}) \n",
+ "\n",
+ "ox.\n",
+ "xx.\n",
+ "..o Counter({2: 1, 5: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "ox.\n",
+ "..o Counter({7: 3981, 5: 23, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "oxo Counter({2: 112, 3: 1, 5: 1}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ ".ox Counter({6: 3}) \n",
+ "\n",
+ ".x.\n",
+ "ox.\n",
+ ".o. Counter({2: 1152, 0: 994, 6: 66, 8: 4, 5: 2}) \n",
+ "\n",
+ "...\n",
+ ".x.\n",
+ "... Counter({0: 1, 1: 1, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".xx\n",
+ "o.o Counter({7: 24, 3: 1}) \n",
+ "\n",
+ "xoo\n",
+ "oxx\n",
+ "... Counter({8: 5111, 6: 14, 7: 6}) \n",
+ "\n",
+ ".x.\n",
+ "...\n",
+ ".o. Counter({6: 10, 4: 8, 8: 8, 3: 4, 5: 2, 0: 1, 2: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "xoo Counter({2: 362, 4: 16, 5: 16}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "xoo Counter({4: 3}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ "xo. Counter({3: 6560, 4: 5868, 8: 1, 2: 1, 5: 1}) \n",
+ "\n",
+ ".x.\n",
+ "ox.\n",
+ "... Counter({0: 1, 2: 1, 5: 1, 6: 1, 7: 1, 8: 1}) \n",
+ "\n",
+ "ox.\n",
+ "o..\n",
+ ".x. Counter({8: 4, 4: 4, 6: 4, 5: 2, 2: 1}) \n",
+ "\n",
+ "xxo\n",
+ "oxo\n",
+ "... Counter({7: 2649, 8: 1030, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".xo\n",
+ ".o. Counter({8: 682, 3: 1, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "..x\n",
+ "o.. Counter({7: 6, 8: 5, 3: 4, 4: 4}) \n",
+ "\n",
+ "xxo\n",
+ ".oo\n",
+ ".xx Counter({3: 13, 6: 5}) \n",
+ "\n",
+ "xx.\n",
+ "oxo\n",
+ "... Counter({8: 1, 2: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "xxo\n",
+ "oo. Counter({8: 12}) \n",
+ "\n",
+ "xx.\n",
+ "xoo\n",
+ "..o Counter({6: 9, 2: 6, 7: 1}) \n",
+ "\n",
+ "xox\n",
+ "o..\n",
+ ".ox Counter({4: 1511, 5: 1137, 6: 1}) \n",
+ "\n",
+ "xoo\n",
+ ".x.\n",
+ "... Counter({8: 10740, 5: 4145, 6: 1144, 3: 991, 7: 163}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "... Counter({2: 1, 4: 1, 5: 1, 6: 1, 7: 1, 8: 1}) \n",
+ "\n",
+ "x..\n",
+ "..x\n",
+ ".o. Counter({6: 7, 4: 6, 1: 3, 2: 3, 8: 3, 3: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".x.\n",
+ ".oo Counter({3: 1, 5: 1, 6: 1}) \n",
+ "\n",
+ "xo.\n",
+ "..x\n",
+ ".o. Counter({4: 6, 8: 4, 3: 4, 6: 4, 2: 2}) \n",
+ "\n",
+ "xo.\n",
+ "o.x\n",
+ ".xo Counter({2: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ "xox Counter() \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ "x.. Counter({3: 25, 8: 1, 5: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "xo. Counter({8: 1, 2: 1, 3: 1, 5: 1}) \n",
+ "\n",
+ "xxo\n",
+ "ox.\n",
+ "xoo Counter({5: 3}) \n",
+ "\n",
+ "xo.\n",
+ "..o\n",
+ "..x Counter({4: 480, 7: 347, 6: 99, 3: 17, 2: 1}) \n",
+ "\n",
+ "xxo\n",
+ "..o\n",
+ "xox Counter({3: 1, 4: 1}) \n",
+ "\n",
+ "x.o\n",
+ "...\n",
+ "..x Counter({6: 2, 1: 1, 3: 1, 4: 1, 5: 1, 7: 1}) \n",
+ "\n",
+ "x.o\n",
+ ".o.\n",
+ "..x Counter({6: 5637, 1: 1, 3: 1, 5: 1, 7: 1}) \n",
+ "\n",
+ "x.x\n",
+ ".o.\n",
+ "o.. Counter({1: 17772, 8: 3779, 7: 715, 5: 546, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".x.\n",
+ "o.o Counter({7: 37, 2: 1, 3: 1, 5: 1}) \n",
+ "\n",
+ "xox\n",
+ ".x.\n",
+ "o.o Counter({7: 3, 3: 1, 5: 1}) \n",
+ "\n",
+ "x.o\n",
+ "..x\n",
+ ".xo Counter({4: 3, 3: 2, 1: 1, 6: 1}) \n",
+ "\n",
+ "x.o\n",
+ ".x.\n",
+ ".o. Counter({8: 7584, 6: 4297, 3: 2587, 5: 2022, 1: 1}) \n",
+ "\n",
+ "xoo\n",
+ "oxx\n",
+ "ox. Counter({8: 2016}) \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ "xo. Counter({3: 566, 5: 24, 8: 12}) \n",
+ "\n",
+ "xxo\n",
+ "oxx\n",
+ "..o Counter({7: 3, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "xoo Counter({3: 208, 5: 13, 4: 1}) \n",
+ "\n",
+ "x.x\n",
+ ".o.\n",
+ "ox. Counter({8: 1, 1: 1, 3: 1, 5: 1}) \n",
+ "\n",
+ "ox.\n",
+ "xox\n",
+ ".o. Counter({8: 3, 2: 3, 6: 1}) \n",
+ "\n",
+ "x..\n",
+ ".ox\n",
+ ".o. Counter({1: 14, 8: 1, 2: 1, 3: 1, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "oxx\n",
+ "oo. Counter({8: 2269}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ ".x. Counter({4: 4, 6: 4, 2: 2, 3: 2, 5: 2, 8: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ ".xo Counter({3: 1, 5: 1, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ ".xo Counter({6: 6, 5: 5, 4: 3, 3: 2}) \n",
+ "\n",
+ "xxo\n",
+ "oxx\n",
+ ".o. Counter({8: 3, 6: 1}) \n",
+ "\n",
+ "xox\n",
+ ".x.\n",
+ ".o. Counter({8: 1, 3: 1, 5: 1, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ "x.o Counter({3: 103, 2: 53, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "oo.\n",
+ "xx. Counter({5: 28, 8: 3}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ "xo. Counter({8: 3}) \n",
+ "\n",
+ "o..\n",
+ ".x.\n",
+ "... Counter({3: 43485, 1: 19956, 6: 17169, 8: 835, 7: 661, 5: 585, 2: 287}) \n",
+ "\n",
+ "x..\n",
+ "..x\n",
+ ".oo Counter({6: 15, 1: 4, 3: 2, 2: 1, 4: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "... Counter({2: 60, 3: 5, 5: 1, 6: 1, 7: 1, 8: 1}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ "x.o Counter({3: 11464, 2: 5727, 4: 4588, 5: 475, 7: 191}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ ".x. Counter({6: 8, 8: 3}) \n",
+ "\n",
+ "xox\n",
+ "oo.\n",
+ ".x. Counter({5: 876, 8: 1, 6: 1}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ "..o Counter({3: 5701, 6: 16, 7: 16}) \n",
+ "\n",
+ "x..\n",
+ ".ox\n",
+ ".xo Counter({2: 4, 1: 3, 6: 3, 3: 2}) \n",
+ "\n",
+ ".x.\n",
+ "o..\n",
+ ".x. Counter({2: 3, 6: 3, 8: 3, 4: 2, 5: 2, 0: 1}) \n",
+ "\n",
+ "xoo\n",
+ "o.x\n",
+ ".x. Counter({4: 8, 6: 4, 8: 3}) \n",
+ "\n",
+ "xxo\n",
+ "x..\n",
+ ".o. Counter({8: 4, 6: 4, 4: 2, 5: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "oxo Counter({2: 92}) \n",
+ "\n",
+ "xo.\n",
+ ".x.\n",
+ "x.o Counter({2: 1, 3: 1, 5: 1, 7: 1}) \n",
+ "\n",
+ "x..\n",
+ "...\n",
+ "..o Counter({6: 26002, 2: 13368, 4: 460, 7: 6, 1: 1, 3: 1, 5: 1}) \n",
+ "\n",
+ "xxo\n",
+ "oo.\n",
+ "x.. Counter({5: 3, 8: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "x.o\n",
+ "o.. Counter({8: 1, 4: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o.x\n",
+ ".oo Counter({2: 57, 6: 14, 4: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".oo\n",
+ "x.x Counter({3: 629, 7: 131, 2: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".x.\n",
+ "o.. Counter({8: 1, 3: 1, 5: 1, 7: 1}) \n",
+ "\n",
+ "xox\n",
+ "o..\n",
+ ".x. Counter({8: 3, 4: 3, 6: 3, 5: 2}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "oox Counter({4: 798, 3: 1, 5: 1}) \n",
+ "\n",
+ "oxo\n",
+ "xx.\n",
+ "o.. Counter({8: 535, 7: 533, 5: 147}) \n",
+ "\n",
+ "xo.\n",
+ ".x.\n",
+ "o.. Counter({8: 13197, 3: 2604, 5: 1164, 7: 150, 2: 1}) \n",
+ "\n",
+ "xoo\n",
+ "..o\n",
+ "x.x Counter({3: 3036, 7: 2438, 4: 1397}) \n",
+ "\n",
+ "x.x\n",
+ ".o.\n",
+ "x.o Counter({7: 2, 1: 1, 3: 1, 5: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".xo\n",
+ "xo. Counter({3: 4776, 2: 1933, 8: 771}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ "x.o Counter({7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "x.. Counter({5: 5, 4: 4, 8: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "..o\n",
+ "o.x Counter({4: 471, 3: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oxo\n",
+ ".o. Counter({2: 1600, 8: 816, 6: 624}) \n",
+ "\n",
+ "xx.\n",
+ "ox.\n",
+ ".o. Counter({8: 1, 2: 1, 5: 1, 6: 1}) \n",
+ "\n",
+ "oxo\n",
+ "x.x\n",
+ "o.. Counter({4: 5, 8: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ "..x Counter({4: 9, 2: 3, 7: 3, 6: 2}) \n",
+ "\n",
+ "xxo\n",
+ "x.o\n",
+ ".ox Counter({4: 1, 6: 1}) \n",
+ "\n",
+ "xo.\n",
+ "..x\n",
+ "oxo Counter({3: 4, 4: 4, 2: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o.o\n",
+ ".xx Counter({4: 7, 6: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".o.\n",
+ "x.. Counter({3: 23572, 7: 2006, 8: 2, 2: 1, 5: 1}) \n",
+ "\n",
+ "xxo\n",
+ "ox.\n",
+ "... Counter({8: 1, 5: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o.o\n",
+ "x.x Counter({4: 15, 7: 1}) \n",
+ "\n",
+ "x.x\n",
+ "...\n",
+ "oxo Counter({1: 3, 5: 3, 3: 2, 4: 2}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "x.o Counter({2: 3, 7: 1}) \n",
+ "\n",
+ "xoo\n",
+ ".ox\n",
+ "x.. Counter({7: 823, 3: 258, 8: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ ".xo Counter({4: 3, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "..x\n",
+ "o.o Counter({3: 1, 4: 1, 7: 1}) \n",
+ "\n",
+ "ox.\n",
+ "...\n",
+ ".xo Counter({2: 3, 3: 3, 4: 3, 6: 3, 5: 2}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "x.o Counter({4: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ ".xo Counter({6: 3}) \n",
+ "\n",
+ "xx.\n",
+ ".xo\n",
+ ".o. Counter({8: 1, 2: 1, 3: 1, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o.o\n",
+ "xox Counter({4: 2983}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ ".o. Counter({8: 19, 2: 18, 6: 17, 5: 7, 3: 4}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ ".xo Counter({2: 36, 5: 7, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oxo\n",
+ "xo. Counter({8: 1, 2: 1}) \n",
+ "\n",
+ "ox.\n",
+ "ox.\n",
+ "... Counter({6: 8237, 7: 5058, 8: 1, 2: 1, 5: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "o.x Counter({4: 10, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oxx\n",
+ "o.o Counter({7: 33, 2: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ "... Counter({2: 824, 5: 2, 8: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "x.o\n",
+ ".o.\n",
+ ".x. Counter({6: 20, 8: 2, 3: 2, 5: 2, 1: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ "o.x Counter({2: 420, 3: 1, 7: 1}) \n",
+ "\n",
+ "ox.\n",
+ "xo.\n",
+ "... Counter({8: 3, 2: 3, 5: 3, 6: 2, 7: 2}) \n",
+ "\n",
+ ".x.\n",
+ "x.o\n",
+ "... Counter({2: 3, 6: 3, 0: 2, 7: 2, 8: 2, 4: 1}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "o.x Counter({4: 10, 7: 4, 5: 3, 3: 2}) \n",
+ "\n",
+ ".x.\n",
+ "...\n",
+ "... Counter({4: 68, 7: 2, 0: 1, 2: 1, 3: 1, 5: 1, 6: 1, 8: 1}) \n",
+ "\n",
+ "ox.\n",
+ ".xx\n",
+ "o.o Counter({7: 97, 3: 51, 2: 1}) \n",
+ "\n",
+ "x.o\n",
+ ".xx\n",
+ "o.. Counter({8: 1, 1: 1, 3: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "xoo\n",
+ "... Counter({6: 12, 8: 2, 7: 1}) \n",
+ "\n",
+ "xox\n",
+ "...\n",
+ ".o. Counter({4: 1736, 8: 1, 3: 1, 5: 1, 6: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".xo\n",
+ ".xo Counter({2: 29, 3: 1, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ "xoo\n",
+ ".ox Counter({2: 1, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ "xox Counter({4: 9, 2: 2}) \n",
+ "\n",
+ ".x.\n",
+ "xox\n",
+ ".o. Counter({8: 4, 0: 3, 2: 3, 6: 3}) \n",
+ "\n",
+ "x..\n",
+ ".o.\n",
+ "... Counter({6: 19773, 2: 14042, 8: 1025, 7: 2, 1: 1, 3: 1, 5: 1}) \n",
+ "\n",
+ "x.o\n",
+ ".ox\n",
+ ".x. Counter({8: 11, 6: 10, 1: 2, 3: 2}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "oxo Counter({4: 109}) \n",
+ "\n",
+ "xxo\n",
+ "..x\n",
+ "..o Counter({7: 4, 3: 3, 6: 3, 4: 2}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ ".o. Counter({3: 2419, 6: 2065, 8: 1230}) \n",
+ "\n",
+ "xox\n",
+ "...\n",
+ "o.. Counter({8: 10031, 7: 8, 5: 4, 3: 1, 4: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oxo\n",
+ "xoo Counter({2: 3761}) \n",
+ "\n",
+ "xo.\n",
+ ".ox\n",
+ "... Counter({7: 10, 8: 1, 2: 1, 3: 1, 6: 1}) \n",
+ "\n",
+ "oxo\n",
+ "xo.\n",
+ ".x. Counter({8: 2, 5: 1, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "x.o Counter({5: 8, 3: 4, 4: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".x.\n",
+ "oo. Counter({8: 29, 2: 1, 3: 1, 5: 1}) \n",
+ "\n",
+ "ox.\n",
+ "x.x\n",
+ ".oo Counter({6: 4, 4: 3, 2: 2}) \n",
+ "\n",
+ "ox.\n",
+ "oox\n",
+ ".x. Counter({6: 3, 8: 1, 2: 1}) \n",
+ "\n",
+ "xoo\n",
+ "..x\n",
+ "x.. Counter({4: 3, 8: 2, 3: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "..x\n",
+ ".oo Counter({6: 5, 2: 3, 3: 3, 4: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ ".x. Counter({3: 11, 5: 7, 8: 4, 6: 4}) \n",
+ "\n",
+ "xoo\n",
+ ".ox\n",
+ ".x. Counter({6: 21, 3: 3, 8: 2}) \n",
+ "\n",
+ ".x.\n",
+ "xxo\n",
+ ".o. Counter({8: 5, 6: 5, 0: 3, 2: 3}) \n",
+ "\n",
+ "xx.\n",
+ ".xo\n",
+ "o.o Counter({2: 630, 7: 165, 3: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "oox Counter({4: 506}) \n",
+ "\n",
+ "xx.\n",
+ "oxo\n",
+ "..o Counter({2: 2935, 7: 1121, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "xxo\n",
+ ".o. Counter({8: 38, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ ".ox Counter({6: 4, 3: 2, 4: 2, 5: 1}) \n",
+ "\n",
+ "xoo\n",
+ "..x\n",
+ "ox. Counter({4: 11, 8: 1, 3: 1}) \n",
+ "\n",
+ "x.o\n",
+ "...\n",
+ "... Counter({8: 31446, 6: 20173, 4: 15727, 3: 12148, 5: 22, 1: 1, 7: 1}) \n",
+ "\n",
+ "x.o\n",
+ ".xo\n",
+ "... Counter({8: 16607, 1: 1, 3: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xox\n",
+ "oxo\n",
+ ".x. Counter({8: 1, 6: 1}) \n",
+ "\n",
+ ".x.\n",
+ "x.o\n",
+ ".o. Counter({0: 4, 6: 4, 8: 3, 2: 3, 4: 3}) \n",
+ "\n",
+ "xx.\n",
+ "xxo\n",
+ ".oo Counter({2: 12, 6: 7}) \n",
+ "\n",
+ "xxo\n",
+ ".oo\n",
+ "x.. Counter({3: 18, 8: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "..x\n",
+ "o.o Counter({7: 12, 4: 4, 2: 3, 3: 2}) \n",
+ "\n",
+ "oxo\n",
+ "xox\n",
+ ".x. Counter({8: 7, 6: 4}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ "x.o Counter({3: 3, 7: 1}) \n",
+ "\n",
+ "x.o\n",
+ ".xo\n",
+ ".x. Counter({8: 17, 1: 3, 3: 1, 6: 1}) \n",
+ "\n",
+ "oxo\n",
+ "xxo\n",
+ "... Counter({7: 2146, 8: 25, 6: 1}) \n",
+ "\n",
+ "x.o\n",
+ ".xx\n",
+ "oo. Counter({3: 1503, 8: 1075, 1: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".ox\n",
+ "x.. Counter({7: 16, 3: 7, 8: 1, 2: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".ox\n",
+ "ox. Counter({2: 16, 8: 1, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ "x.o Counter({2: 135, 5: 6, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ "ox. Counter({4: 240, 2: 74, 8: 1}) \n",
+ "\n",
+ "xox\n",
+ "ox.\n",
+ ".o. Counter({5: 5571, 6: 5109, 8: 2230}) \n",
+ "\n",
+ "xo.\n",
+ ".x.\n",
+ "xo. Counter({8: 1, 2: 1, 3: 1, 5: 1}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "... Counter({2: 4, 3: 4, 4: 1, 6: 1, 7: 1, 8: 1}) \n",
+ "\n",
+ "x..\n",
+ "...\n",
+ "... Counter({4: 2, 1: 1, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}) \n",
+ "\n",
+ "ox.\n",
+ "oxx\n",
+ ".o. Counter({6: 10, 2: 2, 8: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".x.\n",
+ "oxo Counter({5: 510, 3: 490, 2: 3}) \n",
+ "\n",
+ "x.o\n",
+ ".xx\n",
+ "..o Counter({1: 1, 3: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xox\n",
+ "o..\n",
+ "x.. Counter({4: 4, 8: 3, 5: 3, 7: 2}) \n",
+ "\n",
+ "xxo\n",
+ "x..\n",
+ "o.o Counter({4: 3, 5: 2, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "..o\n",
+ ".ox Counter({6: 128, 4: 106, 3: 62}) \n",
+ "\n",
+ "xox\n",
+ "o.o\n",
+ "x.. Counter({4: 993, 8: 1, 7: 1}) \n",
+ "\n",
+ "xoo\n",
+ "..x\n",
+ "xo. Counter({3: 552, 4: 495, 8: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o.o\n",
+ "x.. Counter({8: 1, 4: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o.o\n",
+ "..x Counter({4: 10, 6: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "xo.\n",
+ "..o Counter({6: 3, 2: 2, 5: 2, 7: 2}) \n",
+ "\n",
+ "xxo\n",
+ "oxx\n",
+ "o.o Counter({7: 2508}) \n",
+ "\n",
+ "xx.\n",
+ "..x\n",
+ "oo. Counter({2: 6, 8: 3, 3: 2, 4: 2}) \n",
+ "\n",
+ "xo.\n",
+ "o..\n",
+ "..x Counter({4: 335, 5: 198, 7: 162, 6: 105, 2: 101}) \n",
+ "\n",
+ "ox.\n",
+ "..o\n",
+ ".x. Counter({3: 4, 4: 4, 2: 3, 6: 3, 8: 2}) \n",
+ "\n",
+ ".x.\n",
+ "oxo\n",
+ "... Counter({8: 914, 2: 800, 6: 275, 7: 199, 0: 186}) \n",
+ "\n",
+ "xo.\n",
+ "..x\n",
+ ".xo Counter({2: 3, 3: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ "oo.\n",
+ "..x Counter({5: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "oo.\n",
+ "xxo Counter({5: 3}) \n",
+ "\n",
+ ".x.\n",
+ ".o.\n",
+ ".x. Counter({3: 13, 5: 6, 2: 4, 6: 4, 0: 3, 8: 3}) \n",
+ "\n",
+ "xxo\n",
+ "oxx\n",
+ "xoo Counter() \n",
+ "\n",
+ "xxo\n",
+ ".ox\n",
+ ".xo Counter({6: 9, 3: 3}) \n",
+ "\n",
+ "xxo\n",
+ ".oo\n",
+ "xox Counter({3: 3572}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ "ox. Counter({8: 1, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".ox\n",
+ "o.o Counter({2: 12, 7: 2, 3: 1}) \n",
+ "\n",
+ "xxo\n",
+ "ox.\n",
+ "x.o Counter({5: 45, 7: 3}) \n",
+ "\n",
+ "ox.\n",
+ "xxo\n",
+ "... Counter({8: 1, 2: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "...\n",
+ "o.. Counter({4: 3, 2: 2, 5: 2, 3: 1, 7: 1, 8: 1}) \n",
+ "\n",
+ "x.x\n",
+ ".o.\n",
+ "oxo Counter({1: 249, 3: 22, 5: 6}) \n",
+ "\n",
+ "x.x\n",
+ "...\n",
+ "o.o Counter({1: 9546, 7: 178, 4: 2, 5: 2, 3: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "..x Counter({4: 5, 5: 3, 6: 2, 7: 2}) \n",
+ "\n",
+ "xox\n",
+ "o..\n",
+ "... Counter({4: 7965, 8: 3298, 5: 857, 7: 41, 6: 4}) \n",
+ "\n",
+ "xoo\n",
+ "..x\n",
+ ".xo Counter({3: 11, 4: 3, 6: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ "x.. Counter({4: 7, 2: 5, 8: 3, 7: 3}) \n",
+ "\n",
+ "xox\n",
+ ".x.\n",
+ "o.. Counter({8: 27, 3: 1, 5: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ ".ox Counter({2: 2, 3: 2, 4: 1, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "ox.\n",
+ "o.. Counter({7: 1322, 5: 1177, 8: 1174}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "o.. Counter({7: 892, 5: 800, 4: 672, 2: 300, 8: 292}) \n",
+ "\n",
+ "xoo\n",
+ "...\n",
+ ".x. Counter({8: 160, 3: 146, 6: 57, 4: 16, 5: 10}) \n",
+ "\n",
+ ".o.\n",
+ ".x.\n",
+ "... Counter({6: 31672, 2: 24748, 5: 11312, 0: 9496, 8: 6709, 3: 2217, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ ".ox Counter({4: 3, 6: 1}) \n",
+ "\n",
+ "x.o\n",
+ ".xx\n",
+ ".o. Counter({8: 1, 1: 1, 3: 1, 6: 1}) \n",
+ "\n",
+ "xox\n",
+ "ox.\n",
+ ".xo Counter({6: 3, 5: 1}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ "ox. Counter({4: 182, 8: 118, 2: 12, 3: 6, 5: 1}) \n",
+ "\n",
+ "xox\n",
+ "o..\n",
+ "ox. Counter({8: 831, 4: 7, 5: 6}) \n",
+ "\n",
+ "oxo\n",
+ "x.o\n",
+ ".x. Counter({8: 4, 4: 3, 6: 3}) \n",
+ "\n",
+ "xo.\n",
+ ".xo\n",
+ "ox. Counter({8: 3032, 2: 43, 3: 11}) \n",
+ "\n",
+ "xx.\n",
+ ".ox\n",
+ "o.. Counter({2: 13, 7: 3, 8: 1, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ ".o. Counter({6: 17, 8: 16, 4: 12, 3: 9, 2: 8}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "ox. Counter({2: 8, 8: 1}) \n",
+ "\n",
+ "x.o\n",
+ ".x.\n",
+ ".xo Counter({5: 22, 1: 2, 3: 1, 6: 1}) \n",
+ "\n",
+ "xox\n",
+ "o..\n",
+ "x.o Counter({4: 4717, 7: 30, 5: 29}) \n",
+ "\n",
+ "ox.\n",
+ ".xx\n",
+ "..o Counter({2: 1, 3: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xo.\n",
+ "..x\n",
+ "xo. Counter({4: 5, 8: 2, 2: 2, 3: 2}) \n",
+ "\n",
+ "xxo\n",
+ "o.o\n",
+ ".x. Counter({4: 7, 8: 3, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "xo. Counter({4: 82, 8: 22, 5: 3}) \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ "x.o Counter({3: 152, 5: 8, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "x..\n",
+ "..o Counter({4: 5, 5: 5, 6: 5, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ ".o. Counter({6: 47, 8: 1, 3: 1, 4: 1, 5: 1}) \n",
+ "\n",
+ "xxo\n",
+ "xox\n",
+ "..o Counter({6: 18, 7: 1}) \n",
+ "\n",
+ "ox.\n",
+ "oxx\n",
+ "... Counter({6: 33, 8: 1, 2: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "oox Counter({5: 794, 2: 356, 4: 270}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ "o.x Counter({2: 539, 4: 389, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".x.\n",
+ ".oo Counter({6: 18, 2: 13, 3: 3, 5: 1}) \n",
+ "\n",
+ "xoo\n",
+ ".o.\n",
+ "x.x Counter({3: 9400, 7: 1349, 5: 1}) \n",
+ "\n",
+ "xox\n",
+ ".x.\n",
+ "oxo Counter({3: 3, 5: 3}) \n",
+ "\n",
+ "xox\n",
+ ".o.\n",
+ ".x. Counter({8: 1, 3: 1, 5: 1, 6: 1}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ "xo. Counter({8: 1, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "o.. Counter({2: 2025, 3: 2, 8: 1, 5: 1, 7: 1}) \n",
+ "\n",
+ "xo.\n",
+ "..x\n",
+ "... Counter({4: 9, 2: 1, 3: 1, 6: 1, 7: 1, 8: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ ".ox Counter({6: 152, 3: 1, 5: 1}) \n",
+ "\n",
+ "xox\n",
+ "ox.\n",
+ "oxo Counter({5: 3}) \n",
+ "\n",
+ "xx.\n",
+ "ox.\n",
+ "xoo Counter({2: 3, 5: 1}) \n",
+ "\n",
+ "xxo\n",
+ "..o\n",
+ ".x. Counter({4: 6, 6: 4, 8: 3, 3: 3}) \n",
+ "\n",
+ "ox.\n",
+ ".xo\n",
+ "... Counter({7: 5119, 2: 3898, 6: 3041, 8: 536, 3: 447}) \n",
+ "\n",
+ "xx.\n",
+ "xox\n",
+ ".oo Counter({6: 8, 2: 2}) \n",
+ "\n",
+ "x.o\n",
+ "..x\n",
+ "ox. Counter({4: 5, 1: 4, 8: 3, 3: 3}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "o.x Counter({2: 6, 7: 1}) \n",
+ "\n",
+ ".x.\n",
+ "o.o\n",
+ ".x. Counter({0: 3, 8: 3, 2: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "oxo Counter({4: 99, 3: 1, 5: 1}) \n",
+ "\n",
+ "x.x\n",
+ ".x.\n",
+ "o.o Counter({7: 16, 1: 3, 3: 2, 5: 1}) \n",
+ "\n",
+ "xxo\n",
+ "xo.\n",
+ "... Counter({6: 23, 7: 2, 8: 1, 5: 1}) \n",
+ "\n",
+ "xox\n",
+ "o..\n",
+ ".xo Counter({6: 25, 4: 19, 5: 3}) \n",
+ "\n",
+ ".x.\n",
+ ".x.\n",
+ ".o. Counter({0: 1, 2: 1, 3: 1, 5: 1, 6: 1, 8: 1}) \n",
+ "\n",
+ "xx.\n",
+ "ox.\n",
+ "o.. Counter({8: 1, 2: 1, 5: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "xo. Counter({8: 4, 2: 2, 3: 1, 4: 1}) \n",
+ "\n",
+ "xox\n",
+ ".o.\n",
+ "x.o Counter({3: 9713, 7: 19, 5: 1}) \n",
+ "\n",
+ "xo.\n",
+ "..o\n",
+ "x.x Counter({4: 4, 3: 3, 7: 3, 2: 2}) \n",
+ "\n",
+ "oo.\n",
+ ".x.\n",
+ ".x. Counter({2: 178, 8: 1, 3: 1, 5: 1, 6: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".o.\n",
+ ".x. Counter({6: 187, 8: 173, 2: 18, 5: 3, 3: 2}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ ".xo Counter({2: 26, 4: 21, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "xo.\n",
+ ".xo Counter({5: 12, 6: 6}) \n",
+ "\n",
+ "oxo\n",
+ ".x.\n",
+ "... Counter({7: 5547, 6: 1449, 5: 1380, 3: 1176, 8: 926}) \n",
+ "\n",
+ "xxo\n",
+ "xx.\n",
+ ".oo Counter({5: 21, 6: 17}) \n",
+ "\n",
+ "xo.\n",
+ ".xx\n",
+ ".o. Counter({8: 1, 2: 1, 3: 1, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ ".ox Counter({2: 437, 3: 256, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "xoo Counter({2: 613, 5: 180, 3: 73}) \n",
+ "\n",
+ "xo.\n",
+ ".xo\n",
+ "... Counter({6: 9004, 8: 7799, 2: 4862, 3: 812, 7: 112}) \n",
+ "\n",
+ "x..\n",
+ ".xo\n",
+ "... Counter({1: 1, 2: 1, 3: 1, 6: 1, 7: 1, 8: 1}) \n",
+ "\n",
+ "x.o\n",
+ "...\n",
+ "o.x Counter({4: 5301, 1: 1, 3: 1, 5: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ ".x. Counter({2: 9, 3: 9, 6: 2, 8: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".ox\n",
+ ".o. Counter({6: 9, 8: 2, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ "ox.\n",
+ "oo. Counter({8: 795, 2: 465, 5: 1}) \n",
+ "\n",
+ "xx.\n",
+ "...\n",
+ "oo. Counter({8: 1136, 2: 854, 3: 1, 4: 1, 5: 1}) \n",
+ "\n",
+ "xx.\n",
+ "...\n",
+ "..o Counter({2: 13, 5: 5, 7: 2, 3: 1, 4: 1, 6: 1}) \n",
+ "\n",
+ "x.o\n",
+ "...\n",
+ ".x. Counter({8: 5, 3: 3, 1: 1, 4: 1, 5: 1, 6: 1}) \n",
+ "\n",
+ "ox.\n",
+ ".ox\n",
+ ".x. Counter({6: 10, 3: 5, 8: 3, 2: 2}) \n",
+ "\n",
+ "xx.\n",
+ "x.o\n",
+ ".oo Counter({6: 6, 2: 4, 4: 1}) \n",
+ "\n",
+ "...\n",
+ "...\n",
+ "... Counter({4: 169091, 2: 143376, 0: 96169, 8: 51596, 6: 21545, 3: 17, 7: 7, 5: 2, 1: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oxx\n",
+ ".oo Counter({6: 42, 2: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o.x\n",
+ "..o Counter({7: 4, 2: 3, 4: 3, 6: 2}) \n",
+ "\n",
+ "oxo\n",
+ "xx.\n",
+ ".o. Counter({5: 2170, 8: 10, 6: 8}) \n",
+ "\n",
+ "ox.\n",
+ ".xx\n",
+ "o.. Counter({3: 27, 7: 3, 8: 1, 2: 1}) \n",
+ "\n",
+ "xxo\n",
+ "..o\n",
+ "... Counter({7: 2, 8: 1, 3: 1, 4: 1, 6: 1}) \n",
+ "\n",
+ "xox\n",
+ "oo.\n",
+ "x.x Counter({5: 15, 7: 9}) \n",
+ "\n",
+ "xxo\n",
+ "oo.\n",
+ "x.x Counter({5: 27, 7: 3}) \n",
+ "\n",
+ "x..\n",
+ ".xo\n",
+ "..o Counter({2: 11283, 1: 1, 3: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "ox.\n",
+ ".xx\n",
+ ".o. Counter({8: 1, 2: 1, 3: 1, 6: 1}) \n",
+ "\n",
+ "x..\n",
+ ".o.\n",
+ "..x Counter({7: 16, 1: 6, 5: 3, 2: 1, 3: 1, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ ".ox Counter({5: 3, 4: 2, 2: 1, 6: 1}) \n",
+ "\n",
+ "x.x\n",
+ ".x.\n",
+ "oo. Counter({8: 26, 1: 2, 3: 1, 5: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".xx\n",
+ ".oo Counter({6: 1058, 3: 743, 2: 1}) \n",
+ "\n",
+ "xx.\n",
+ "...\n",
+ ".o. Counter({6: 4, 8: 4, 2: 3, 3: 1, 4: 1, 5: 1}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "o.. Counter({4: 2135, 8: 1, 3: 1, 5: 1, 7: 1}) \n",
+ "\n",
+ "xox\n",
+ "o.o\n",
+ "xox Counter({4: 5}) \n",
+ "\n",
+ "ox.\n",
+ ".x.\n",
+ ".o. Counter({6: 5744, 3: 3058, 5: 5, 8: 4, 2: 1}) \n",
+ "\n",
+ "xo.\n",
+ "oox\n",
+ ".x. Counter({8: 5, 2: 5, 6: 5}) \n",
+ "\n",
+ "ox.\n",
+ "...\n",
+ "... Counter({4: 17, 8: 9, 6: 5, 2: 3, 3: 3, 7: 3, 5: 2}) \n",
+ "\n",
+ "xox\n",
+ ".o.\n",
+ "x.. Counter({3: 35, 7: 16, 5: 3, 8: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".ox\n",
+ ".xo Counter({3: 6, 6: 5, 2: 3}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "ox. Counter({2: 3, 8: 2, 3: 2, 4: 2}) \n",
+ "\n",
+ "xo.\n",
+ "o.x\n",
+ ".x. Counter({8: 3, 2: 3, 6: 3, 4: 2}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "..o Counter({2: 56, 7: 7, 6: 5}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "o.x Counter({2: 3, 4: 1, 5: 1, 7: 1}) \n",
+ "\n",
+ "x.o\n",
+ ".ox\n",
+ "... Counter({6: 27, 1: 2, 8: 1, 3: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ ".o. Counter({4: 9, 8: 4, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "ox. Counter({4: 238, 8: 1, 5: 1}) \n",
+ "\n",
+ "x..\n",
+ ".xo\n",
+ ".o. Counter({8: 6289, 6: 2415, 1: 1008, 3: 567, 2: 473}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ ".o. Counter({8: 301, 4: 281, 2: 216, 6: 63, 5: 20}) \n",
+ "\n",
+ "x.o\n",
+ "...\n",
+ ".xo Counter({5: 2, 1: 1, 3: 1, 4: 1, 6: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".xx\n",
+ "oo. Counter({3: 1374, 8: 458, 2: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o.x\n",
+ "oxo Counter({4: 2, 2: 1}) \n",
+ "\n",
+ "x.o\n",
+ ".xx\n",
+ ".oo Counter({3: 3607, 6: 13, 1: 1}) \n",
+ "\n",
+ "xx.\n",
+ "...\n",
+ ".oo Counter({2: 33, 6: 12, 3: 1, 4: 1, 5: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "oxo Counter({4: 191, 2: 161, 5: 50}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ ".o. Counter({2: 16, 6: 4, 8: 3}) \n",
+ "\n",
+ "oxo\n",
+ "x.x\n",
+ "oxo Counter({4: 4}) \n",
+ "\n",
+ "xox\n",
+ "ox.\n",
+ "o.. Counter({8: 8065, 5: 31, 7: 19}) \n",
+ "\n",
+ "xxo\n",
+ "x.o\n",
+ "... Counter({6: 5, 8: 4, 4: 2, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ "... Counter({6: 4, 8: 1, 3: 1, 5: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ "xox Counter({3: 20, 2: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "..o Counter({2: 11, 6: 4, 7: 4, 5: 3, 3: 2}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ ".xo Counter({4: 2, 2: 1, 5: 1, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "xxo\n",
+ "o.. Counter({8: 36, 7: 1}) \n",
+ "\n",
+ "oxo\n",
+ "x.x\n",
+ "... Counter({8: 3, 4: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xx.\n",
+ "o.x\n",
+ "o.o Counter({2: 209, 7: 104, 4: 1}) \n",
+ "\n",
+ "xo.\n",
+ "..x\n",
+ "o.. Counter({8: 6, 7: 5, 2: 4, 4: 4, 3: 2}) \n",
+ "\n",
+ "xox\n",
+ "oo.\n",
+ "x.. Counter({8: 1, 5: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "..o\n",
+ "x.. Counter({3: 9, 8: 5, 4: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "oox Counter({2: 1149, 3: 1, 5: 1}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ ".xo Counter({2: 4, 3: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ "xoo\n",
+ ".x.\n",
+ "ox. Counter({3: 1421, 8: 960, 5: 941}) \n",
+ "\n",
+ "o..\n",
+ "..x\n",
+ ".x. Counter({4: 7, 6: 7, 2: 3, 3: 3, 1: 2, 8: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ "xox Counter({3: 3, 5: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oxo\n",
+ "x.o Counter({2: 32, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "... Counter({2: 6, 7: 2, 8: 1, 6: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".x.\n",
+ ".xo Counter({2: 1, 3: 1, 5: 1, 6: 1}) \n",
+ "\n",
+ "xox\n",
+ "...\n",
+ "x.o Counter({3: 1, 4: 1, 5: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ "... Counter({6: 3, 8: 1, 7: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".o.\n",
+ "..x Counter({7: 1359, 2: 1, 3: 1, 5: 1, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ "x.. Counter({3: 7, 7: 5, 8: 4, 2: 1}) \n",
+ "\n",
+ "xxo\n",
+ "xx.\n",
+ "o.o Counter({7: 20, 5: 4}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "..o Counter({7: 17, 4: 12, 6: 3}) \n",
+ "\n",
+ "xoo\n",
+ "..x\n",
+ ".x. Counter({8: 3, 3: 3, 6: 3, 4: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".oo\n",
+ ".x. Counter({8: 1, 3: 1, 6: 1}) \n",
+ "\n",
+ "ox.\n",
+ "...\n",
+ "ox. Counter({3: 4, 8: 3, 2: 3, 4: 3, 5: 3}) \n",
+ "\n",
+ "ox.\n",
+ "..x\n",
+ "... Counter({6: 8, 3: 4, 4: 4, 7: 2, 8: 2, 2: 1}) \n",
+ "\n",
+ "xox\n",
+ "oxo\n",
+ "... Counter({6: 3277, 8: 3078, 7: 992}) \n",
+ "\n",
+ "xox\n",
+ "ox.\n",
+ "ox. Counter({8: 3, 5: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "o.x Counter({2: 14, 3: 3, 5: 2, 7: 1}) \n",
+ "\n",
+ "ox.\n",
+ "xxo\n",
+ "..o Counter({7: 1687, 2: 1093, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ "...\n",
+ "o.o Counter({2: 1659, 7: 387, 3: 1, 4: 1, 5: 1}) \n",
+ "\n",
+ "xxo\n",
+ "x.o\n",
+ "o.x Counter({4: 10, 7: 2}) \n",
+ "\n",
+ "xo.\n",
+ ".x.\n",
+ "... Counter({2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ "oxo Counter({3: 5454}) \n",
+ "\n",
+ "xxo\n",
+ "xoo\n",
+ ".x. Counter({6: 8, 8: 3}) \n",
+ "\n",
+ "xo.\n",
+ "..x\n",
+ "..o Counter({3: 12, 6: 5, 4: 4, 7: 3, 2: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ ".ox Counter({2: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ "ox.\n",
+ ".o. Counter({8: 2248, 6: 40, 5: 15}) \n",
+ "\n",
+ "oo.\n",
+ "oxx\n",
+ ".x. Counter({8: 1, 2: 1, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o.o\n",
+ "xx. Counter({8: 10, 4: 3}) \n",
+ "\n",
+ "x..\n",
+ ".xx\n",
+ ".oo Counter({6: 22, 3: 3, 1: 1, 2: 1}) \n",
+ "\n",
+ "xxo\n",
+ "xo.\n",
+ ".o. Counter({6: 4, 5: 3, 8: 2}) \n",
+ "\n",
+ "x.o\n",
+ ".x.\n",
+ "... Counter({1: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}) \n",
+ "\n",
+ "xox\n",
+ "o..\n",
+ "..x Counter({7: 5, 4: 4, 5: 4, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "xoo\n",
+ ".ox Counter({6: 573}) \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ "..x Counter({3: 14, 6: 12, 5: 11, 7: 6}) \n",
+ "\n",
+ "xo.\n",
+ "..x\n",
+ "ox. Counter({4: 4, 2: 3, 8: 2, 3: 2}) \n",
+ "\n",
+ "xxo\n",
+ "ox.\n",
+ "xo. Counter({8: 3, 5: 1}) \n",
+ "\n",
+ "xoo\n",
+ "..x\n",
+ "x.o Counter({3: 1052, 4: 14, 7: 8}) \n",
+ "\n",
+ "ox.\n",
+ "xox\n",
+ "... Counter({6: 10, 8: 7, 2: 6, 7: 4}) \n",
+ "\n",
+ "xo.\n",
+ ".xo\n",
+ "x.o Counter({3: 4267, 2: 3500, 7: 1}) \n",
+ "\n",
+ "xox\n",
+ "o.o\n",
+ "x.x Counter({4: 10, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".x.\n",
+ ".o. Counter({8: 21, 5: 2, 3: 1, 6: 1}) \n",
+ "\n",
+ "xoo\n",
+ ".x.\n",
+ "x.o Counter({3: 6781, 5: 16, 7: 1}) \n",
+ "\n",
+ "ox.\n",
+ "x.x\n",
+ ".o. Counter({8: 4, 4: 4, 6: 3, 2: 2}) \n",
+ "\n",
+ "xo.\n",
+ ".x.\n",
+ "ox. Counter({8: 1, 2: 1, 3: 1, 5: 1}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ "o.x Counter({4: 5884, 2: 3915, 5: 1416, 7: 211, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ "xo. Counter({2: 583, 3: 226, 8: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o.x\n",
+ "o.. Counter({2: 3, 8: 2, 4: 2, 7: 2}) \n",
+ "\n",
+ "xxo\n",
+ "oxo\n",
+ "x.. Counter({8: 29, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "x.x\n",
+ "oo. Counter({4: 8, 8: 5}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ ".ox Counter({4: 268, 6: 10, 5: 7}) \n",
+ "\n",
+ "oxo\n",
+ "x.x\n",
+ "ox. Counter({4: 5, 8: 3}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ ".ox Counter({2: 643, 5: 23, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "xox Counter({4: 3, 5: 1}) \n",
+ "\n",
+ "ox.\n",
+ "...\n",
+ ".x. Counter({4: 7, 2: 5, 5: 5, 3: 2, 8: 2, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".xo\n",
+ "..o Counter({2: 29, 3: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "ox.\n",
+ "oxx\n",
+ "..o Counter({7: 220, 6: 53, 2: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".xo\n",
+ "o.. Counter({8: 1364, 7: 451, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ ".ox Counter({2: 268, 4: 108, 6: 1}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ "..x Counter({4: 11, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xo.\n",
+ "o.x\n",
+ "... Counter({8: 319, 4: 46, 2: 31, 6: 8, 7: 8}) \n",
+ "\n",
+ "xxo\n",
+ "xoo\n",
+ "..x Counter({6: 13, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "..o\n",
+ "..x Counter({4: 7, 3: 3, 6: 3, 7: 2}) \n",
+ "\n",
+ "ox.\n",
+ "x.x\n",
+ "..o Counter({2: 4, 4: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ ".x.\n",
+ "xo.\n",
+ "... Counter({0: 20, 6: 8, 2: 2, 7: 2, 8: 2, 5: 1}) \n",
+ "\n",
+ "ox.\n",
+ ".xx\n",
+ "oo. Counter({3: 17, 2: 2, 8: 1}) \n",
+ "\n",
+ "xxo\n",
+ "xo.\n",
+ ".ox Counter({6: 15, 5: 1}) \n",
+ "\n",
+ "xxo\n",
+ "oxx\n",
+ "o.. Counter({8: 1, 7: 1}) \n",
+ "\n",
+ "x.o\n",
+ "..x\n",
+ "..o Counter({4: 10, 3: 6, 6: 4, 7: 4, 1: 1}) \n",
+ "\n",
+ "xo.\n",
+ "oxx\n",
+ ".xo Counter({2: 3, 6: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ ".x. Counter({8: 4, 6: 4, 4: 3, 5: 3}) \n",
+ "\n",
+ "xxo\n",
+ ".xo\n",
+ "... Counter({8: 20, 7: 4, 6: 2, 3: 1}) \n",
+ "\n",
+ "xox\n",
+ "o.o\n",
+ ".x. Counter({4: 33, 8: 1, 6: 1}) \n",
+ "\n",
+ "xoo\n",
+ ".x.\n",
+ ".xo Counter({5: 58, 3: 1, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ ".xo Counter({2: 5, 3: 3, 5: 3, 6: 2}) \n",
+ "\n",
+ "xox\n",
+ ".o.\n",
+ "ox. Counter({5: 476, 8: 421, 3: 3}) \n",
+ "\n",
+ "x.o\n",
+ "..x\n",
+ "o.. Counter({4: 12, 7: 3, 8: 2, 1: 1, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ "xo. Counter({2: 834, 5: 27, 8: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".xo\n",
+ "xo. Counter({8: 31, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ "ox.\n",
+ ".oo Counter({2: 2648, 6: 39, 5: 1}) \n",
+ "\n",
+ "oxo\n",
+ "xx.\n",
+ "..o Counter({7: 1973, 5: 813, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ "... Counter({4: 529, 2: 371, 7: 2, 8: 1, 6: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".xx\n",
+ "o.. Counter({8: 1, 2: 1, 3: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".xx\n",
+ "oo. Counter({8: 27, 3: 1}) \n",
+ "\n",
+ "ox.\n",
+ "x.o\n",
+ "... Counter({8: 5, 4: 5, 7: 2, 2: 1, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ "o.x Counter({2: 448, 5: 1, 7: 1}) \n",
+ "\n",
+ "xox\n",
+ "...\n",
+ "xoo Counter({4: 7758, 3: 3191, 5: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "..o Counter({2: 481, 4: 152, 7: 127, 5: 52, 6: 6}) \n",
+ "\n",
+ "xxo\n",
+ "..x\n",
+ "oo. Counter({8: 1, 3: 1, 4: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".xo\n",
+ "o.. Counter({8: 1, 2: 1, 3: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".ox\n",
+ ".oo Counter({6: 10, 2: 6, 3: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "ox. Counter({4: 8, 8: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".x.\n",
+ "oo. Counter({8: 1084, 3: 1, 5: 1}) \n",
+ "\n",
+ "ox.\n",
+ ".o.\n",
+ ".x. Counter({8: 1, 2: 1, 3: 1, 5: 1, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ "ox. Counter({2: 216, 8: 1, 5: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o..\n",
+ "x.o Counter({2: 4, 5: 3, 7: 3, 4: 2}) \n",
+ "\n",
+ "xoo\n",
+ "..x\n",
+ "... Counter({3: 14, 6: 5, 4: 3, 8: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "... Counter({6: 7, 8: 5, 4: 3, 5: 3, 7: 3, 3: 2}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "oox Counter({2: 488}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ ".xo Counter({4: 21, 5: 9, 6: 1}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ "xoo Counter({3: 5055}) \n",
+ "\n",
+ "xxo\n",
+ "oo.\n",
+ "xox Counter({5: 3}) \n",
+ "\n",
+ "x.x\n",
+ "...\n",
+ ".o. Counter({3: 5, 1: 4, 4: 3, 5: 3, 6: 3, 8: 3}) \n",
+ "\n",
+ "x..\n",
+ ".ox\n",
+ "... Counter({2: 22, 7: 19, 1: 11, 6: 2, 8: 2, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o.x\n",
+ ".o. Counter({2: 2, 6: 2, 8: 1, 4: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".xx\n",
+ "o.o Counter({3: 849, 7: 10, 2: 1}) \n",
+ "\n",
+ "x.o\n",
+ ".xx\n",
+ "o.o Counter({7: 2380, 3: 1231, 1: 1}) \n",
+ "\n",
+ "ox.\n",
+ "o.x\n",
+ ".x. Counter({6: 6, 8: 3, 2: 3, 4: 2}) \n",
+ "\n",
+ "oxo\n",
+ "x..\n",
+ ".x. Counter({4: 5, 6: 5, 8: 1, 5: 1}) \n",
+ "\n",
+ "ox.\n",
+ "..x\n",
+ "..o Counter({2: 3, 3: 3, 4: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ "oo.\n",
+ ".xx Counter({6: 18, 5: 7}) \n",
+ "\n",
+ "x..\n",
+ ".x.\n",
+ "..o Counter({1: 1, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".ox\n",
+ ".o. Counter({2: 8, 8: 1, 3: 1, 6: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".o.\n",
+ "x.x Counter({7: 16, 3: 3, 2: 2, 5: 1}) \n",
+ "\n",
+ "ox.\n",
+ "xxo\n",
+ ".o. Counter({2: 135, 6: 135, 8: 3}) \n",
+ "\n",
+ "xx.\n",
+ "x.o\n",
+ ".o. Counter({8: 3, 2: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ "x.x\n",
+ "...\n",
+ "oo. Counter({8: 12967, 1: 628, 3: 1, 4: 1, 5: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o.o\n",
+ "oxx Counter({4: 12}) \n",
+ "\n",
+ "xxo\n",
+ "xo.\n",
+ "..o Counter({6: 9, 5: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "xox\n",
+ ".o. Counter({6: 15, 8: 1}) \n",
+ "\n",
+ "ox.\n",
+ "o.x\n",
+ "... Counter({8: 4, 2: 4, 6: 3, 7: 3, 4: 2}) \n",
+ "\n",
+ "xxo\n",
+ ".oo\n",
+ "xx. Counter({8: 10, 3: 4}) \n",
+ "\n",
+ "xxo\n",
+ "xox\n",
+ ".oo Counter({6: 15}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ "xo. Counter({4: 470, 2: 61, 8: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ "ox. Counter({2: 64, 3: 2, 8: 1}) \n",
+ "\n",
+ "xxo\n",
+ "..x\n",
+ ".o. Counter({8: 3, 3: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ "xox\n",
+ ".o.\n",
+ "... Counter({7: 1645, 8: 1, 3: 1, 5: 1, 6: 1}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ "..x Counter({6: 14, 7: 3}) \n",
+ "\n",
+ "xoo\n",
+ ".x.\n",
+ "x.. Counter({8: 1, 3: 1, 5: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ "xox Counter({5: 36, 2: 3}) \n",
+ "\n",
+ "xxo\n",
+ "o.x\n",
+ "o.. Counter({4: 271, 8: 1, 7: 1}) \n",
+ "\n",
+ "xoo\n",
+ "...\n",
+ "x.x Counter({3: 1, 4: 1, 5: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ ".x. Counter({4: 8, 8: 1, 2: 1, 6: 1}) \n",
+ "\n",
+ "x.o\n",
+ "..x\n",
+ "oxo Counter({4: 4, 3: 3, 1: 1}) \n",
+ "\n",
+ "xx.\n",
+ "x.o\n",
+ "..o Counter({2: 5, 6: 2, 4: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "oxx Counter({4: 9, 5: 1}) \n",
+ "\n",
+ "xxo\n",
+ "..x\n",
+ ".oo Counter({6: 4, 3: 1, 4: 1}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ "xxo Counter() \n",
+ "\n",
+ "xx.\n",
+ ".xo\n",
+ "oo. Counter({2: 733, 8: 730, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oxo\n",
+ "o.. Counter({8: 1336, 7: 1154, 2: 789}) \n",
+ "\n",
+ "o..\n",
+ ".xx\n",
+ "... Counter({1: 1, 2: 1, 3: 1, 6: 1, 7: 1, 8: 1}) \n",
+ "\n",
+ "oxo\n",
+ "x..\n",
+ "... Counter({8: 3, 4: 3, 5: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "xox\n",
+ "...\n",
+ "xo. Counter({4: 10, 3: 2, 8: 1, 5: 1}) \n",
+ "\n",
+ "ox.\n",
+ "x..\n",
+ "..o Counter({4: 5, 5: 3, 7: 3, 2: 2, 6: 2}) \n",
+ "\n",
+ "xxo\n",
+ "..o\n",
+ "ox. Counter({4: 66, 8: 1, 3: 1}) \n",
+ "\n",
+ ".x.\n",
+ "oo.\n",
+ ".x. Counter({8: 3, 0: 2, 2: 2, 5: 1, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "o.x Counter({2: 3, 4: 3, 3: 1, 7: 1}) \n",
+ "\n",
+ "xoo\n",
+ ".xo\n",
+ "x.. Counter({3: 6391, 8: 1963, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "..o Counter({2: 9, 3: 5, 6: 3, 7: 2, 4: 1}) \n",
+ "\n",
+ "ox.\n",
+ ".x.\n",
+ "o.. Counter({7: 9629, 3: 1815, 8: 1, 2: 1, 5: 1}) \n",
+ "\n",
+ "xoo\n",
+ "...\n",
+ "x.. Counter({3: 8521, 8: 7775, 5: 3258, 4: 2559, 7: 434}) \n",
+ "\n",
+ "xx.\n",
+ "...\n",
+ "xoo Counter({3: 2, 2: 1, 4: 1, 5: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".o.\n",
+ "xxo Counter({5: 4, 3: 3}) \n",
+ "\n",
+ "xxo\n",
+ "..x\n",
+ "xoo Counter({3: 3, 4: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".x.\n",
+ "o.o Counter({7: 1059, 3: 1, 5: 1}) \n",
+ "\n",
+ "oo.\n",
+ ".xx\n",
+ ".x. Counter({3: 19, 2: 12, 8: 1, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "xo. Counter({2: 3, 8: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "xxo Counter({5: 6, 4: 3}) \n",
+ "\n",
+ "xoo\n",
+ ".xx\n",
+ "o.. Counter({7: 2918, 8: 1029, 3: 913}) \n",
+ "\n",
+ "xxo\n",
+ "x.o\n",
+ ".o. Counter({6: 7, 8: 6, 4: 2}) \n",
+ "\n",
+ ".x.\n",
+ ".o.\n",
+ "... Counter({6: 7, 5: 2, 8: 2, 0: 1, 2: 1, 3: 1, 7: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".xo\n",
+ "x.. Counter({8: 1, 2: 1, 3: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "oxx\n",
+ ".oo Counter({6: 3}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "o.. Counter({2: 1259, 8: 331, 7: 229, 4: 226, 3: 1}) \n",
+ "\n",
+ "xo.\n",
+ "...\n",
+ "x.. Counter({4: 2, 2: 1, 3: 1, 5: 1, 7: 1, 8: 1}) \n",
+ "\n",
+ "xo.\n",
+ "oxx\n",
+ ".o. Counter({6: 679, 2: 637, 8: 288}) \n",
+ "\n",
+ "xxo\n",
+ "..x\n",
+ "oxo Counter({4: 9, 3: 1}) \n",
+ "\n",
+ "xxo\n",
+ "x.o\n",
+ "oox Counter({4: 281}) \n",
+ "\n",
+ "xox\n",
+ "...\n",
+ "ox. Counter({8: 3, 4: 2, 5: 2, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ "xoo\n",
+ ".o. Counter({6: 7, 8: 5, 2: 3}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "oox Counter({3: 519, 2: 453, 4: 373}) \n",
+ "\n",
+ "xxo\n",
+ "oxo\n",
+ "xo. Counter({8: 3853}) \n",
+ "\n",
+ "xox\n",
+ "oo.\n",
+ "..x Counter({5: 976, 6: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".ox\n",
+ "xoo Counter({2: 1, 3: 1}) \n",
+ "\n",
+ "xoo\n",
+ ".x.\n",
+ ".x. Counter({8: 1, 3: 1, 5: 1, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".oo\n",
+ "..x Counter({3: 12, 2: 4, 6: 3, 7: 1}) \n",
+ "\n",
+ "xoo\n",
+ "ox.\n",
+ ".x. Counter({8: 684, 5: 19, 6: 9}) \n",
+ "\n",
+ "xxo\n",
+ "...\n",
+ "xo. Counter({3: 3, 4: 2, 8: 1, 5: 1}) \n",
+ "\n",
+ "x.o\n",
+ ".x.\n",
+ "o.. Counter({5: 1938, 7: 1811, 8: 1224, 3: 581, 1: 149}) \n",
+ "\n",
+ "ox.\n",
+ "..x\n",
+ ".o. Counter({8: 3, 3: 3, 4: 3, 2: 2, 6: 2}) \n",
+ "\n",
+ "oo.\n",
+ ".xx\n",
+ "... Counter({2: 1454, 3: 1024, 6: 2, 8: 1, 7: 1}) \n",
+ "\n",
+ "x.x\n",
+ "...\n",
+ "o.. Counter({1: 1, 3: 1, 4: 1, 5: 1, 7: 1, 8: 1}) \n",
+ "\n",
+ ".x.\n",
+ "o..\n",
+ "... Counter({4: 13, 6: 9, 5: 7, 2: 6, 7: 4, 0: 2, 8: 2}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "ox. Counter({2: 20, 8: 2, 3: 1, 5: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".x.\n",
+ "..o Counter({3: 7742, 6: 3122, 5: 703, 7: 13, 2: 1}) \n",
+ "\n",
+ "o..\n",
+ ".ox\n",
+ ".x. Counter({8: 5, 6: 3, 2: 2, 1: 1, 3: 1}) \n",
+ "\n",
+ "oo.\n",
+ "..x\n",
+ ".x. Counter({4: 5, 2: 3, 6: 3, 8: 1, 3: 1}) \n",
+ "\n",
+ "xo.\n",
+ ".xx\n",
+ "oxo Counter({3: 3, 2: 1}) \n",
+ "\n",
+ "xo.\n",
+ "ox.\n",
+ "... Counter({8: 5654, 2: 4331, 6: 765, 7: 258, 5: 236}) \n",
+ "\n",
+ "x.o\n",
+ ".xx\n",
+ "oxo Counter({1: 1, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ "x.. Counter({5: 48, 2: 10, 7: 2, 8: 1}) \n",
+ "\n",
+ "xo.\n",
+ "..x\n",
+ "x.o Counter({2: 3, 3: 3, 4: 3, 7: 3}) \n",
+ "\n",
+ "xxo\n",
+ ".ox\n",
+ "xo. Counter({3: 3, 8: 1}) \n",
+ "\n",
+ "xxo\n",
+ "o..\n",
+ "x.o Counter({5: 3, 4: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "oox\n",
+ "x.. Counter({8: 3, 7: 3}) \n",
+ "\n",
+ "x.o\n",
+ ".x.\n",
+ "..o Counter({5: 4986, 3: 2, 1: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".xo\n",
+ "xoo Counter({2: 24, 3: 1}) \n",
+ "\n",
+ "xoo\n",
+ "...\n",
+ "..x Counter({4: 4849, 6: 3456, 3: 1628, 7: 1459, 5: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".xx\n",
+ ".oo Counter({6: 25, 3: 3}) \n",
+ "\n",
+ "xox\n",
+ "...\n",
+ "oxo Counter({3: 3, 4: 3, 5: 3}) \n",
+ "\n",
+ "x..\n",
+ "..x\n",
+ "..o Counter({4: 5, 6: 5, 7: 5, 2: 4, 1: 3, 3: 3}) \n",
+ "\n",
+ "xoo\n",
+ "oxx\n",
+ ".xo Counter({6: 3}) \n",
+ "\n",
+ "xxo\n",
+ ".ox\n",
+ "xoo Counter({3: 599}) \n",
+ "\n",
+ "xx.\n",
+ "oo.\n",
+ "..x Counter({5: 14, 2: 10, 7: 3, 6: 2}) \n",
+ "\n",
+ "x.x\n",
+ ".o.\n",
+ ".o. Counter({1: 8237, 8: 1, 3: 1, 5: 1, 6: 1}) \n",
+ "\n",
+ "xoo\n",
+ ".x.\n",
+ "xo. Counter({5: 6175, 8: 4209, 3: 2172}) \n",
+ "\n",
+ "xxo\n",
+ ".oo\n",
+ "x.x Counter({3: 21, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "o.o\n",
+ "x.o Counter({2: 16, 4: 1, 7: 1}) \n",
+ "\n",
+ "ox.\n",
+ ".ox\n",
+ "ox. Counter({8: 1, 2: 1, 3: 1}) \n",
+ "\n",
+ "xx.\n",
+ ".o.\n",
+ "x.o Counter({2: 1, 3: 1, 5: 1, 7: 1}) \n",
+ "\n",
+ "oxo\n",
+ "x.x\n",
+ ".o. Counter({4: 4, 8: 3, 6: 3}) \n",
+ "\n",
+ "xox\n",
+ "...\n",
+ "... Counter({4: 4, 5: 4, 7: 2, 3: 1, 6: 1, 8: 1}) \n",
+ "\n",
+ "xxo\n",
+ "x..\n",
+ "o.. Counter({8: 5, 5: 5, 4: 3, 7: 3}) \n",
+ "\n",
+ "ox.\n",
+ "..x\n",
+ "ox. Counter({2: 4, 3: 3, 4: 3, 8: 2}) \n",
+ "\n",
+ "xx.\n",
+ "oox\n",
+ "o.. Counter({2: 231, 8: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "ox.\n",
+ "o.o Counter({7: 1846, 2: 1163, 5: 1}) \n",
+ "\n",
+ "x.x\n",
+ ".o.\n",
+ "... Counter({1: 31, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1}) \n",
+ "\n",
+ "oxo\n",
+ "xx.\n",
+ "... Counter({8: 1, 5: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xx.\n",
+ "xoo\n",
+ "... Counter({2: 3, 8: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "oo.\n",
+ ".x. Counter({8: 1, 5: 1, 6: 1}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "oxo Counter({2: 100, 4: 66, 3: 1}) \n",
+ "\n",
+ "xxo\n",
+ ".oo\n",
+ "..x Counter({3: 1, 6: 1, 7: 1}) \n",
+ "\n",
+ "xxo\n",
+ "x..\n",
+ ".oo Counter({6: 8, 4: 2, 5: 2}) \n",
+ "\n",
+ "ox.\n",
+ "..x\n",
+ "o.. Counter({3: 4, 7: 4, 8: 3, 2: 3, 4: 3}) \n",
+ "\n",
+ "x.o\n",
+ "..x\n",
+ "... Counter({4: 6, 1: 1, 3: 1, 6: 1, 7: 1, 8: 1}) \n",
+ "\n",
+ "xx.\n",
+ "..o\n",
+ "x.o Counter({2: 9, 3: 4, 4: 3, 7: 2}) \n",
+ "\n",
+ "xo.\n",
+ ".ox\n",
+ "x.o Counter({3: 355, 7: 6, 2: 1}) \n",
+ "\n",
+ "xo.\n",
+ "..o\n",
+ ".x. Counter({6: 242, 8: 118, 4: 38, 2: 12, 3: 3}) \n",
+ "\n",
+ "xxo\n",
+ "..o\n",
+ "xo. Counter({8: 310, 3: 47, 4: 1}) \n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "for b in p_floor1m:\n",
+ " if b != 'human?':\n",
+ " print(show_board(b), p_floor1m[b], '\\n')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 325,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "('x', 'o', 'o', 'o', 'x', 'x', 'x', 'x', 'o')"
+ ]
+ },
+ "execution_count": 325,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# p1 = new_menace()\n",
+ "# p2 = new_menace()\n",
+ "# g = new_game(p1, p2)\n",
+ "g = new_game(p_floor1, p_floor0)\n",
+ "play_game(g)\n",
+ "g['board']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 326,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[{'board': ('.', '.', '.', '.', '.', '.', '.', '.', '.'),\n",
+ " 'move': 4,\n",
+ " 'player1?': True},\n",
+ " {'board': ('.', '.', '.', '.', 'x', '.', '.', '.', '.'),\n",
+ " 'move': 8,\n",
+ " 'player1?': False},\n",
+ " {'board': ('.', '.', '.', '.', 'x', '.', '.', '.', 'o'),\n",
+ " 'move': 7,\n",
+ " 'player1?': True},\n",
+ " {'board': ('.', '.', '.', '.', 'x', '.', '.', 'x', 'o'),\n",
+ " 'move': 1,\n",
+ " 'player1?': False},\n",
+ " {'board': ('.', 'o', '.', '.', 'x', '.', '.', 'x', 'o'),\n",
+ " 'move': 5,\n",
+ " 'player1?': True},\n",
+ " {'board': ('.', 'o', '.', '.', 'x', 'x', '.', 'x', 'o'),\n",
+ " 'move': 3,\n",
+ " 'player1?': False},\n",
+ " {'board': ('.', 'o', '.', 'o', 'x', 'x', '.', 'x', 'o'),\n",
+ " 'move': 6,\n",
+ " 'player1?': True},\n",
+ " {'board': ('.', 'o', '.', 'o', 'x', 'x', 'x', 'x', 'o'),\n",
+ " 'move': 2,\n",
+ " 'player1?': False},\n",
+ " {'board': ('.', 'o', 'o', 'o', 'x', 'x', 'x', 'x', 'o'),\n",
+ " 'move': 0,\n",
+ " 'player1?': True}]"
+ ]
+ },
+ "execution_count": 326,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "g['history']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 310,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "update_players(g)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 311,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "... ...\n",
+ "... ...\n",
+ "... ... 7 Counter({0: 3, 1: 3, 2: 3, 3: 3, 4: 3, 5: 3, 6: 3, 8: 3, 7: 2}) \n",
+ "\n",
+ "... .x.\n",
+ "... ...\n",
+ ".x. ... 5 Counter({3: 4, 0: 3, 2: 3, 4: 3, 5: 3, 6: 3, 7: 3, 8: 3}) \n",
+ "\n",
+ "... .x.\n",
+ "..o o..\n",
+ ".x. ... 3 Counter({0: 3, 2: 3, 4: 3, 6: 3, 7: 3, 8: 3, 5: 2}) \n",
+ "\n",
+ "... .x.\n",
+ "x.o x.o\n",
+ ".x. ... 2 Counter({8: 4, 0: 3, 2: 3, 4: 3, 6: 3, 7: 3}) \n",
+ "\n",
+ "..o oo.\n",
+ "x.o ..x\n",
+ ".x. .x. 1 Counter({8: 3, 2: 3, 4: 3, 6: 3, 3: 2}) \n",
+ "\n",
+ ".xo ox.\n",
+ "x.o o.x\n",
+ ".x. .x. 6 Counter({8: 4, 2: 3, 4: 3, 6: 3}) \n",
+ "\n",
+ ".xo ox.\n",
+ "x.o x.x\n",
+ "ox. .oo 0 Counter({4: 3, 6: 3, 2: 2}) \n",
+ "\n",
+ "xxo xxo\n",
+ "x.o x.x\n",
+ "ox. oo. 8 Counter({8: 4, 4: 3}) \n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "for m in g['history']:\n",
+ " b, r, f = canonical(m['board'])\n",
+ " if m['player1?']:\n",
+ " print(show_boards([m['board'], b]), m['move'], p1[b], '\\n')\n",
+ " else:\n",
+ " print(show_boards([m['board'], b]), m['move'], p2[b], '\\n')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 323,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "... ... ... ...\n",
+ "... ... ... ...\n",
+ "... ... .x. .x. 7 7\n",
+ "... ...\n",
+ "... ...\n",
+ ".+. .+. 0 False \n",
+ "\n",
+ "\n",
+ "... .x. ... .x.\n",
+ "... ... ..o o..\n",
+ ".x. ... .x. ... 5 3\n",
+ "... ...\n",
+ "..+ +..\n",
+ "... ... 2 False \n",
+ "\n",
+ "\n",
+ "... .x. ... .x.\n",
+ "..o o.. x.o o.x\n",
+ ".x. ... .x. ... 3 5\n",
+ "... ...\n",
+ "+.. ..+\n",
+ "... ... 2 False \n",
+ "\n",
+ "\n",
+ "... .x. ..o .x.\n",
+ "x.o x.o x.o x.o\n",
+ ".x. ... .x. ..o 2 8\n",
+ "..+ ...\n",
+ "... ...\n",
+ "... ..+ 2 True \n",
+ "\n",
+ "\n",
+ "..o oo. .xo oo.\n",
+ "x.o ..x x.o x.x\n",
+ ".x. .x. .x. .x. 1 3\n",
+ ".+. ...\n",
+ "... +..\n",
+ "... ... 3 False \n",
+ "\n",
+ "\n",
+ ".xo ox. .xo ox.\n",
+ "x.o o.x x.o o.x\n",
+ ".x. .x. ox. .xo 6 8\n",
+ "... ...\n",
+ "... ...\n",
+ "+.. ..+ 0 True \n",
+ "\n",
+ "\n",
+ ".xo ox. xxo oxx\n",
+ "x.o x.x x.o x.x\n",
+ "ox. .oo ox. .oo 0 2\n",
+ "+.. ..+\n",
+ "... ...\n",
+ "... ... 1 False \n",
+ "\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "for i in range(len(g['history']) - 1):\n",
+ " m = g['history'][i]\n",
+ " n = g['history'][i+1]\n",
+ " board, r, f = canonical(m['board'])\n",
+ " move_board = apply_move(empty_board(), m['move'], '+')\n",
+ " cmove_board = transform(move_board, r, f)\n",
+ " cmove = cmove_board.index('+')\n",
+ "\n",
+ " print(show_boards([m['board'], board, n['board'], transform(n['board'], r, f)]), m['move'], cmove)\n",
+ " print(show_boards([move_board, cmove_board]), r, f, '\\n\\n')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 327,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0 Counter({4: 44929, 6: 301, 3: 71, 5: 55, 8: 34, 1: 25, 7: 16, 0: 6, 2: 5})\n",
+ "1 Counter({0: 1, 1: 1, 2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1})\n",
+ "2 Counter({3: 10669, 1: 6873, 2: 2541, 5: 847, 6: 582, 8: 413, 7: 123})\n",
+ "3 Counter({2: 1, 3: 1, 5: 1, 6: 1, 7: 1, 8: 1})\n",
+ "4 Counter({6: 1266, 3: 1114, 8: 17, 2: 1, 5: 1})\n",
+ "5 Counter({8: 1, 2: 1, 6: 1, 7: 1})\n",
+ "6 Counter({2: 68, 6: 17, 8: 3})\n",
+ "7 Counter({8: 3, 6: 1})\n",
+ "8 Counter({6: 3})\n"
+ ]
+ }
+ ],
+ "source": [
+ "for i, m in enumerate(g['history']):\n",
+ " print(i, p_floor1[canonical(m['board'])[0]])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 330,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ ".o. ox.\n",
+ "oxx xxo\n",
+ ".xo .o.\n"
+ ]
+ }
+ ],
+ "source": [
+ "tb = g['history'][6]['board']\n",
+ "print(show_boards([tb, canonical(tb)[0]]))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 337,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Counter({0: 3, 2: 15, 6: 82})"
+ ]
+ },
+ "execution_count": 337,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "g = new_game(p_floor1, p_floor0)\n",
+ "g['board'] = tb\n",
+ "collections.Counter(menace_move(g) for _ in range(100))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 338,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Counter({2: 79, 6: 18, 8: 3})"
+ ]
+ },
+ "execution_count": 338,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "g = new_game(p_floor1, p_floor0)\n",
+ "g['board'] = canonical(tb)[0]\n",
+ "collections.Counter(menace_move(g) for _ in range(100))"
+ ]
+ },
+ {
+ "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.5.2+"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}