diff --git a/ipynb/xkcd-Name-Dominoes.ipynb b/ipynb/xkcd-Name-Dominoes.ipynb
new file mode 100644
index 0000000..b1eadc2
--- /dev/null
+++ b/ipynb/xkcd-Name-Dominoes.ipynb
@@ -0,0 +1,382 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "
Peter Norvig
21 March 2018
\n",
+ "# `xkcd` Name Dominoes\n",
+ "\n",
+ "The March 21, 2018 `xkcd` comic number 1970 was [Name Dominoes](https://xkcd.com/1970/): domino tiles laid out in a legal array,\n",
+ "but with each tile having names of famous poeple rather than numbers. In regular [dominoes](https://en.wikipedia.org/wiki/Dominoes), each tile has two halves, and a tile can be legally placed only if one half is adjacent to another tile with the same number/name, and neither half is adjacent to any tile with a different number/name. (The very first tile in a game has no adjacent tiles, so it can be placed anywhere.) `xkcd 1970` makes two exceptions to the rules: (1) some tiles have three names, and matches are allowed against the middle name, and (2) approximate matches are allowed, like \"Amy\" and \"Aimee\".\n",
+ "\n",
+ "I will write a function to lay out dominoes in a random, legal array. I won't implement the two `xkcd` exceptions. I'll start with two key data structures:\n",
+ "\n",
+ "- **`Board(n)`**: Creates an [n × n] 2-dimensional array of locations; each location holds as a value one half of a tile, or it can be `empty`, or it can be a `border`, meaning nothing can be placed there.\n",
+ "- **`tiles(text)`**: a function to create a list of tiles, each of which is a 2-element list, like `['a', 'b']`, indicating the two halves. The input is a string, consisting of space-separated tiles, where the two halves of the tile are separated by a `|` character.\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "empty = ' '\n",
+ "border = '--'\n",
+ "\n",
+ "class Board(list):\n",
+ " \"A board is a 2d array of values.\"\n",
+ " \n",
+ " def __init__(self, n): \n",
+ " \"Initialize an [n × n] array of `empty`, surrounded by `off`\"\n",
+ " top = bot = [border] * (n + 2)\n",
+ " line = [border] + ([empty] * n) + [border]\n",
+ " self.extend([top] + [list(line) for _ in range(n)] + [bot])\n",
+ " \n",
+ " def get(self, loc): return self[loc[1]][loc[0]]\n",
+ " \n",
+ " def put(self, loc, value): self[loc[1]][loc[0]] = value\n",
+ " \n",
+ "def tiles(text):\n",
+ " \"tiles('a|b b|c') => [['a', 'b'], ['b', 'c']\"\n",
+ " return [tile.split('|') for tile in text.split()]\n",
+ "\n",
+ "\n",
+ "names1 = tiles('Bo|Ja Ja|Ry Ja|Po Ry|Ke Gr|Ke Gr|Ho Bo|Po Ry|Ja')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[['--', '--', '--', '--', '--', '--'],\n",
+ " ['--', ' ', ' ', ' ', ' ', '--'],\n",
+ " ['--', ' ', ' ', ' ', ' ', '--'],\n",
+ " ['--', ' ', ' ', ' ', ' ', '--'],\n",
+ " ['--', ' ', ' ', ' ', ' ', '--'],\n",
+ " ['--', '--', '--', '--', '--', '--']]"
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "Board(4)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[['Bo', 'Ja'],\n",
+ " ['Ja', 'Ry'],\n",
+ " ['Ja', 'Po'],\n",
+ " ['Ry', 'Ke'],\n",
+ " ['Gr', 'Ke'],\n",
+ " ['Gr', 'Ho'],\n",
+ " ['Bo', 'Po'],\n",
+ " ['Ry', 'Ja']]"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "names1"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Now I need a strategy to fill the board with tiles, legally. I will randomly place dominoes one at a time, and I will *not* consider removing a tile from the board and backtracking; this is a greedy search. Some more concepts:\n",
+ "\n",
+ "- **`frontier`**: I'll maintain a *frontier*, a set of locations that are adjacent to tiles on the board, and thus are candidates for placing new tiles.\n",
+ "- **`dominoes(tiles)`**: places a random tile for the first tile, then repeatedly calls `place1` to legally place an additional tile, stopping when either there is no `frontier` left (meaning no place to put a tile) or no `tiles` left to place.\n",
+ "- **`place1(tiles, board, frontier)`**: find a location in the frontier, such that some tile can legally put one of its halves there, and the other half on an adjacent location; when found, `put` the tile there, and remove it from `tiles`.\n",
+ "- **`legal(value, loc, board)`**: a value can be placed in a location if the location is empty, and no neighboring location has a different value (but it is ok if a neighbor is empty or is a border).\n",
+ "- **`neighbors(loc)`**: returns the four neighbors of a location.\n",
+ "- **`put(board, loc0, loc1, tile, frontier)`**: places a tile on the board, it accomplishes this by making two calls to the board's `put` method, one for each half of the tile. The `put` function also updates the `frontier` to say that the just-covered locations are no longer in the frontier, but the empty neighbors of the tile are.\n",
+ "- **`shuffle(sequence)`**: used to randomize lists; calls `random.shuffle` and returns the result."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[['--', '--', '--', '--', '--', '--', '--', '--'],\n",
+ " ['--', ' ', 'Po', 'Ja', 'Ja', 'Ry', ' ', '--'],\n",
+ " ['--', ' ', 'Po', ' ', ' ', 'Ry', 'Ke', '--'],\n",
+ " ['--', ' ', 'Bo', 'Bo', ' ', ' ', 'Ke', '--'],\n",
+ " ['--', ' ', ' ', 'Ja', ' ', ' ', 'Gr', '--'],\n",
+ " ['--', ' ', ' ', 'Ja', 'Ry', ' ', 'Gr', '--'],\n",
+ " ['--', ' ', ' ', ' ', ' ', ' ', 'Ho', '--'],\n",
+ " ['--', '--', '--', '--', '--', '--', '--', '--']]"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import random\n",
+ "\n",
+ "def dominoes(tiles, n=6):\n",
+ " \"Place as many tiles on board as possible, legally and randomly.\"\n",
+ " tiles = shuffle(list(tiles))\n",
+ " board = Board(n)\n",
+ " frontier = set()\n",
+ " m = n // 2\n",
+ " put(board, (m, m), (m, m + 1), tiles.pop(), frontier) # Place first tile\n",
+ " while tiles and frontier:\n",
+ " place1(tiles, board, frontier)\n",
+ " return board\n",
+ " \n",
+ "def place1(tiles, board, frontier):\n",
+ " \"Randomly place one tile on board, on some frontier location and an adjacent square.\"\n",
+ " for loc0 in shuffle(frontier):\n",
+ " frontier.discard(loc0)\n",
+ " for tile in shuffle(tiles):\n",
+ " for (v, w) in [tile, tile[::-1]]:\n",
+ " if legal(v, loc0, board):\n",
+ " for loc1 in shuffle(neighbors(loc0)):\n",
+ " if legal(w, loc1, board):\n",
+ " put(board, loc0, loc1, [v, w], frontier)\n",
+ " tiles.remove(tile)\n",
+ " return \n",
+ " \n",
+ "def legal(value, loc, board):\n",
+ " \"Is it legal to place this value on this location on board?\"\n",
+ " return (board.get(loc) is empty and\n",
+ " all(board.get(nbr) in (empty, border, value) \n",
+ " for nbr in neighbors(loc)))\n",
+ "\n",
+ "def neighbors(loc):\n",
+ " \"Neighbors of this location.\"\n",
+ " x, y = loc\n",
+ " return ((x, y+1), (x, y-1), (x+1, y), (x-1, y)) \n",
+ "\n",
+ "def put(board, loc0, loc1, tile, frontier): \n",
+ " \"Place the tile across the two locations, and update frontier.\"\n",
+ " board.put(loc0, tile[0])\n",
+ " board.put(loc1, tile[1])\n",
+ " frontier -= {loc0, loc1}\n",
+ " frontier |= {loc for loc in neighbors(loc0) + neighbors(loc1)\n",
+ " if board.get(loc) is empty}\n",
+ " \n",
+ "def shuffle(seq):\n",
+ " \"Return seq as a shuffled list.\"\n",
+ " if not isinstance(seq, list): seq = list(seq)\n",
+ " random.shuffle(seq)\n",
+ " return seq\n",
+ " \n",
+ "dominoes(names1)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Pretty Output\n",
+ "\n",
+ "There are two problems with this output. One, it is ugly. Two, I can't easily tell where each domino is: when three names come together, which of the outside ones go with the middle one? To fix those two problems I will:\n",
+ "\n",
+ "- Use `matplotlib` to plot a less-ugly display, by defining `plot_board(board)`.\n",
+ "- Modify the `Board` class and the `put` function so that the board maintains a list of `boxes` that surround each tile once it is placed on the board."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "collapsed": true
+ },
+ "outputs": [],
+ "source": [
+ "%matplotlib inline\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "def plot_board(board, size=6):\n",
+ " plt.figure(figsize=(size, size))\n",
+ " plt.axis('off') \n",
+ " plt.axis('equal')\n",
+ " for (x0, y0, x1, y1) in board.boxes:\n",
+ " plt.plot([x0, x1, x1, x0, x0], \n",
+ " [y0, y0, y1, y1, y0], 'k-')\n",
+ " for (y, row) in enumerate(board):\n",
+ " for (x, val) in enumerate(row):\n",
+ " if val is not border:\n",
+ " plt.text(x + 0.5, y + 0.3, val, ha='center', fontsize=9)\n",
+ " \n",
+ "class Board(list):\n",
+ " \"A board is a 2d array of values.\"\n",
+ " \n",
+ " def __init__(self, n): \n",
+ " \"Initialize an [n × n] array of `empty`, surrounded by `off`\"\n",
+ " top = bot = [border] * (n + 2)\n",
+ " line = [border] + ([empty] * n) + [border]\n",
+ " self.extend([top] + [list(line) for _ in range(n)] + [bot])\n",
+ " self.boxes = []\n",
+ " \n",
+ " def get(self, loc): return self[loc[1]][loc[0]]\n",
+ " \n",
+ " def put(self, loc, value): self[loc[1]][loc[0]] = value\n",
+ " \n",
+ " \n",
+ "def put(board, loc0, loc1, tile, frontier): \n",
+ " \"Place the tile across the two locations, and update frontier.\"\n",
+ " board.put(loc0, tile[0])\n",
+ " board.put(loc1, tile[1])\n",
+ " frontier -= {loc0, loc1}\n",
+ " frontier |= {loc for loc in neighbors(loc0) + neighbors(loc1)\n",
+ " if board.get(loc) is empty}\n",
+ " (x0, y0), (x1, y1) = loc0, loc1\n",
+ " board.boxes.append((min(x0, x1), min(y0, y1), max(x0, x1) + 1, max(y0, y1) + 1))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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\nGOEGGEa4AYYRboBhhBtgGOEGGEa4AYYRboBhhBtgGOEGGEa4AYYRboBhhBtgGOEGGEa4AYYRboBh\nhBsOsKo6WlWXqupsVZ2vqq+v3sR6wg0H34XuPtnddyT5YFV9aPUg1hJuGKKqjiR5U5I/VdWXtk/g\nT1XVx1ZvY38dWT0AeFXHqupskn9KcjHJTUmOJ7kzyduS/EdV/bC7L6+byH5y4oaD78qtkvcneTbJ\nrUme7C3PJ/lDkncsXci+cuKGWS4leU+S26uqsnXifmeSPy5dxb4Sbjj4rtwqqSQvJLkvyQ1Jzmfr\nu+bPuU1yuFR3r94AG2M7sOnuk2uXXL9NuIZN5x43wDDCDTCMcAMMI9wAwwg3wDDCDTCMcAMMI9wA\nwwg3wDDCDTCMcAMMI9wAwwg3wDAe67oBquozSU6v3rFLt2z/+9mlK3bvRJJU1fOrh+zCW5L8evUI\nXp4T92Y4neS21SN26Z+3/wFehRP35rg4+fnJV06ok69hU1x5HjcHlxM3wDDCDTCMcAMMI9wAwwg3\nwDDCDTCMcAMMI9wAwwg3wDDCDTCMcAMMI9wAwwg3wDDCDTCMcAMMI9wAwwg3wDDCDTCMcAMMI9wA\nwwg3wDDCDTCMcAMMI9wAwwg3wDDCDTCMcPOyqupoVf149Y7dmH4N2/svVdXZqjpfVV9fvYn1hBsO\nvgvdfbK770jywar60OpBrCXcvKqqOl1V57ZPfN+qqlq96VptyDUcSfKmJH+qqi9tX8tTVfWx1dvY\nX8LNTjzW3Se2T3w3Jjm+etB1mHwNx6rqbJJfJPmvJDdla/+dST6a5KtV5c/yIeLNZieOV9VPqupc\nkg8neffqQddh8jVcuVXy/iTPJrk1yZO95fkkf0jyjqUL2VdHVg9ghAeT3NPdz1bVI0nG3WbIZlxD\nklxK8p4kt2/f7nlbkncm+ePSVewr4eaVVJKXkjyc5PGq+uXiPddjE67hyq2SSvJCkvuS3JDkfLa+\na/5cd19eN4/9Vt29egO7tP2HOt19co9f9+4kn+juT+3l677Mf+v5JOnut+/x6+7bNWyK1+rrib3j\nxM1VVdXpJPcn+fTqLddrE64BrsaJewNswgnptTpxc+024etp0/mpEoBhhBtgGOEGGEa4AYYRboBh\nhBtgGOEGGEa4AYYRboBhhBtgGOEGGMZDpjgo3pb8/3MyWOq2JBdXj+DlOXED/+hikjOrR/DynLg5\nKM4lnkgHO+HEDTCMcAMMI9wAwwg3wDDCDTCMcAMMI9wAwwg3wDDCDTCMcAMMI9wAwwg3wDDCDTCM\ncAMMI9wAwwg3wDDCDTCMcAMMI9wAwwg3wDDCDTCMcAMMI9wAwwg3wDDCDTCMcHNVVXW0qi5V1dmq\neqqqPrt6E7DlyOoBHGgXuvtUVb0+yS+q6qHu/svqUXDYOXGzE29O8oYkp6rqa1c+WVWPV9V7182C\nw0m4eSXHqupckt8m+UaSHyT5SFW9sarel+TF7v7N0oVwCAk3r+RCd59IciLJqe6+nOTRJB9P8skk\n3145Dg4r97h5Vd39dFX9rqruzVasv5PkpiRfXjoMDiknbnbqq0ke6O7fJflrkie6+2+LN8Gh5MTN\nVXX3M0lO/d3HP09y1/aHLyV5aMEsIE7cXIOquqGq/j3J77v7V6v3wGHlxM2Obd8auXf1DjjsnLgB\nhhFugGGEG2AY4QYYRrgBhhFugGGEG2AY4QYYRrgBhhFugGGEG2AYzyrZDCeSpKrOLt6xG7clubh6\nBEzgxM1BcTHJmdUjYILq7tUbALgGTtwAwwg3wDDCDTCMcAMMI9wAwwg3wDDCDTCMcAMMI9wAwwg3\nwDDCDTCMcAMMI9wAwwg3wDDCDTCMcAMMI9wAwwg3wDDCDTCMcAMMI9wAwwg3wDDCDTCMcAMMI9wA\nwwg3wDDCDTCMcAMMI9wAwwg3wDDCDTCMcAMMI9wAwwg3wDDCDTCMcAMMI9wAw/wvWmtXa1IdtysA\nAAAASUVORK5CYII=\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plot_board(dominoes(names1))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Scaling Up Names\n",
+ "\n",
+ "Now let's try with more tiles, with names taken (mostly) from `xkcd 1970`.\n",
+ "\n",
+ "I could modify the program to back up if it got stuck before placing all the tiles, but instead I'll just add a new function, `best_dominoes(tiles, repeat=R)` that calls `dominoes` R times, and returns (and optionally prints) the\n",
+ "board that has placed the most tiles (which we can measure with `len(board.boxes)`)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": [
+ "names2 = tiles(\n",
+ " 'The|Rock Chris|Rock Rock|Hudson Chris|Isaac Isaac|Newton Olivia|Newton Isaac|Hayes '\n",
+ " 'Shawn|Hayes Wallace|Shawn Charles|Wallace George|Wallace Charles|Manson Ray|Charles '\n",
+ " 'Rachel|Ray Ray|Allen Tim|Allen Lily|Allen Tim|Cook James-Earl|Ray James-Earl|Jones '\n",
+ " 'Man|Ray Bat|Man Super|Man Tim|Howard Ron|Howard Ron|Paul Paul|Allen Rand|Paul Ayn|Rand '\n",
+ " 'Paul|Ryan Jack|Ryan Debby|Ryan Paul|Simon Carly|Simon John|Kelly Megyn|Kelly John|Henry '\n",
+ " 'Grace|Kelly Grace|Jones Grace|Hopper Jack|Ma Ma|Bell Yo-Yo|Ma Jack|Ruby Jack|Russell '\n",
+ " 'Charles|Parker Marilyn|Manson Marilyn|Monroe James|Monroe George|Bush George|Clinton Bill|Clinton '\n",
+ " 'Jack|White Meg|Ryan Meg|White Barry|White Walter|White Betty|White Betty|Ford Henry|Ford Harrison|Ford '\n",
+ " 'Tommy|John John|Irving John|Kerry Kerry|Washington Jimmy|John John|Adams Amy|Adams Amy|Man '\n",
+ " 'Benjamin|Harrison Benjamin|Franklin Aretha|Franklin Franklin|Graham James|Garfield Garfield| '\n",
+ " 'Kristen|Bell Kristen|Stewart Martha|Stewart Martha|Washington Wsshington|Irving John|Irving '\n",
+ " 'Jimmy|Buffett Jimmy|Jones Warren|Buffett Elizabeth|Warren '\n",
+ " 'Kevin|Bacon Kevin|Kline Kevin|Love Kevin|Smith Kevin|Costner Will|Smith Tommy|Lee Robert-E|Lee '\n",
+ " 'John|Wayne Wayne|Newton Wayne|Knight Wayne|Howard Wayne|Brady Tommy|Brady James|Brady')\n",
+ "\n",
+ "def best_dominoes(tiles, n=20, size=16, verbose=True, repeat=300):\n",
+ " board = max((dominoes(tiles, n) for _ in range(repeat)), \n",
+ " key=lambda board: len(board.boxes))\n",
+ " if verbose:\n",
+ " print(len(board.boxes), '/', len(tiles), 'tiles placed')\n",
+ " plot_board(board, size)\n",
+ " return board"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "84 / 100 tiles placed\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\nJ+drwjHA/sB8Vsx97gT2iYi/QSoztVV0Wla35xpJGwFLI+Jp4BlgKbBh3fr+DvwZ2D0iluZ5RkTE\nC5KeIJXLs0i9w3sBu0taG/gU6fnUEaRzYS2W+u/8PIM8pxvUX65i20rqIB1YTwP7kipsNVcCp0va\nh9Q6WuspOJZU2buvNj5/dqukN7O8AjjYYxSpMJ4P3CDp7l7OfzbwE0m1Hpfbga8D19a1pH2nBXGa\n2SvNASazvJdsLunWzrmkC/kK55UuvKL8R8QiSdOBmyU9C5wXEecp/XLk7Nyb+5ykPWq9sO0uIjo/\nQ3UJcI6ke4Cn6Lrlfx9JB5IqYI+QKjxHA2flZOYxUkVu0MbXRnzdM+uhiPi6pP8m9WLe2mCSLYDT\nJL1Iuh34k6SkcTNJV5AaUA8Bpkoakec5Hmj2g03d2Rg4Jd/JMJz0nO1FwMX5LqBDSY9AXJXPbS8B\nR5DuLJlJSmSfy/XybSPisTzdH0nX1LtoftfQDcCpknYHPh4RL63kdyiWVmygs+7kA4mImFjBuucC\nu0XEkm6mWwIQEWsNSGArrrtHMfZgOTsC+0fEp1sTWa/X3wHV7GezdlJ6WSk9PmibGCu7rvREm2zD\nDmgeo697ZomPxb4bbNvQvxLcBiRtJOlG4Jd9TQT7SytjlDQJ+CGtew7WzMysWL7umZk151uC20BE\nPAy8r+o4utLKGCNiGjCtFcsyMzMrna97ZmbNuYfVzMzMzMzMiuSE1czMzMzMzIrkhNXMzMzMzMyK\n5ITVzMzMzMzMiuSE1czMzMzMzIrkhNXMzMzMzMyK5ITVzMzMzMzMiuSE1czMzMzMzIo0vOoArF+M\nApDUUXEc7WwssLDqIKx/SToImFR1HG1uAoCkJVUH0sRI4N6qgxgESr+u+JzddxsCowvex+1iWkRM\nqTqINle7rnRUHEczGwKjqw6iG4Pq2uceVrPGFgLTqg7C+t0kUkXXzNqbz9l9N5pUybWVNxY3gg4F\nLisDzD2sg9NsgIiYWHEcZu1gocvKyqv1rEbEWlXH0kjBLfTtxteVoWGp9/HK8/mmNSJCVcfQldp+\nLrmsDLZj0T2sZmZmZmZmViQnrGZmZmZmZlYkJ6xmZmZmZmZWJCesZmZmZmZmViQnrGZmZmZmZlYk\nJ6xmZmZmZmZWJCesZmZmZmZmViQnrGZmZmZmZlYkJ6xmZmZmZmZWJCesZmZmZmZmViQnrGZmZmZm\n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\niNFsMHJZ6TtJSwAiYq2qY2mkHfaxYxwaSt+GpZfldlD6PrbWaIf93A4x9oZ7WCsm6TxgjVYlq2Zm\nZmZmZoOFE9aKRcQnq47BzMzMzMysRP7RJTMzMzMzMyuSE1YzMzMzMzMrkhNWMzMzMzMzK5ITVjMz\nMzMzMyuSE1YzMzMzMzMrkhNWMzMzMzMzK5ITVjMzMzMzMyuS/w9r700AkLSk6kC6MBJYKqmj6kC6\nMC0iplQdhA157VCeHwX+VnUQXRgJLK06iC5sCIwu/HzYDsehryt9V9vPHRXH0cwoKDq+djAWWFh1\nEF2RdBAwqeo42txY0rXZBoh7WAenpZRdkMbik6VZT4wERlcdRDdKP9+MJm1H65vS97OvK1aChcC0\nqoPoxiRSebGV1w7X5kHFPay9NxsgIiZWHEfbcuutFaTo8lwrK6XGB21TnpcWvg2XAETEWlXH0q7a\n4TiMCFUdg1m2sORzYukKvxtmUHIPq5mZmZmZmRXJCauZmZmZmZkVyQmrmZmZmZmZFckJq5mZmZmZ\nmRXJCauZmZmZmZkVyQmrmZmZmZmZFckJq5mZmZmZmRXJCauZmZmZmZkVyQmrmZmZmZmZFckJq5mZ\nmZmZmRXJCauZmZmZmZkVyQmrmZmZmZmZFckJq5mZmZmZmRXJCauZmZmZmZkVyQmrmZmZmZmZFckJ\nq5mZmZmZmRXJCauZmZmZmZkVyQmrmZmZmZmZFckJq5mZmZmZmRXJCauZmZmZmZkVyQlri0g6Q9Ke\neXgLSS9JWie//7ykb1Yc3xhJIenDdeMWr+SyxkraoXXRmZVH0iqSzpI0V9JNki6SdKCkY6qOrR1I\n2lrStZI6JN0s6ciVPefk5a30vO0YX15m8THm5Y6R9GSO83ZJk3o437ck7dcfMZlZ47opMDy/73Hd\nNJfxGQ3G7ypp/5WIa4ykPVZyvqhfp6RzJN3Xw/nXknRA3fuWnoNKj6+dOWFtnTnAdnl4O2AmMK7u\n/U1VBNXJ3cDRktTH5YwFnLDaYPcBYHhEbBcR44EvVB1Qu5A0CrgQODQiJpLOgYv6sLxhLQqttryi\n48vLLD7GTubnOHcCfiBpeH/FMwDfxWywaFQ3HVX3vk9104i4LiIuWIlZxwC9TlizBcBHASStBrwe\nWNbdTJJWAdYCDuhu2j4qPb625IS1deYA2+fh7YAf1b1/F/C4pNn5daOk9SS9VdL02gJyK8z43Itz\n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\n6cdi6fFB+TFKWgIQEcU+ltAOMZau9OPQrBQDXVYkjciPk20KTI+IsQOx3v7UDufswXZOdA9rxSSd\nB6wxVJJVMzMzMxsyTs135I0Evlx1MNaenLBWLCI+WXUMZmZmZmatFhGHdD+VWdf8o0tmZmZmZmZW\nJCesZmZmZmZmViQnrGZmZmZmZlYkJ6xmZmZmZmZWJCesZmZmZmZmViQnrGZmZmZmZlYkJ6xmZmZm\nZmZWJCesZmZmZmZmVqThVQfQhiYASOqoOI6ubAiMrjqILqwB/F/h27B0G+a/f6s0ivY3Fni06iDa\nXOnnxJHA0qqD6MYoKHobtoN3Ac97G/bZtIiYUnUQzUg6CJhUdRxdaIdrc+2cvaTqQLrxKOVux3Y4\nZ48FFlYdRKu4h3VwGk2qpJVqFWC1qoNoc5vll/XNSMpu3LG+W4obJYaC54FVqw6izY2l7GQQUnxj\nqw6iC742t4avzX23EJhWdRCt4h7WXooIVR1Dd2otPhExsdpIGqu16pUaXzvwNmyNNmhhLl7p58TC\nW8BrZoPLc1+Uft1rB21SVgAWlrqffW1uDZdn68w9rGZmZmZmZlYkJ6xmZmZmZmZWJCesZmZmZmZm\nViQnrGZmZmZmZlYkJ6xmZmZmZmZWJCesZmZmZmZmViQnrGZmZmZmZlYkJ6xmZmZmZmZWJCesZmZm\nZmZmViQnrGZmZmZmZlYkJ6xmZmZmZmZWJCesZmZmZmZmViQnrGZmZmZmZlYkJ6xmZmZmZmZWJCes\nZmZmZmZmViQnrGZmZmZmZlYkJ6xmZmZmZmZWJCesZmZmZmZmViQnrGZmZmZmZlYkJ6xmZmZmZmZW\nJCesQ4SkMZJC0ofrxi1eyWWNlbRD66IrP74u1jVG0oyBWNfKKjXGRnGt7D7vL+0Qo/WPvO+flNQh\n6VZJh1cdk/VOleVX0saSOno47RmS9szDW0h6SdI6+f3nJX2zH0MdlOr3vaQ1JM2W9NGq46oZqPha\ndWw1q0dI2lXS/isR1xhJe/R2Phu6nLAOLXcDR0tSH5czFuiPhLD0+MxsaJkfEROBccDBkl5TcTxW\nKEnD+jD7HGC7PLwdMJN0zNXe39SHZQ9pktYAfgmcHhFX9GD6YXXD/V5HHoD4+vXYiojrIuKClZh1\nDOCE1XrMCevQ8hCwAPiP2ghJoyRdJulGSTMlvUnSppKuzJ//WNIleXiypO2AI4HP5J6H10n6UO6B\n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\nlDh/Ebgor3MR6c6j1Vd2vTb4aMVGGhsMlH9KP9KvWxYn33ZFRPT1Ntwha6huQ0k/Jz2j86cWLa/l\n27GVMZZeltvBQG1DSWOBoyJi35WYtwO8n/tiqG5DSacC10REn5PPdtiGVcSo9ONBc0jPpnd5W2oV\n1+bexFcFSSPy41qbAtMjYmwP5umAso9FG1juYTWz4uVegenAX1qVrLZaO8Ro/UPSvqRnxN1TbgNG\n0nmkH9IbEj2lVcgNUacDpxWaDBYdX3ZqvuNtJPDlqoOx9uSE1cyKl2+v/feq4+hKO8Ro/SMiLgIu\nqjoOG1oiwg0k/SwiFrL838AUp/T4ACLikO6nMuua/w+rmZmZmZmZFckJq5mZmZmZmRXJCauZmZmZ\nmZkVyQmrmZmZmZmZFckJq5mZmZmZmRXJCauZmZmZmZkVyQmrmZmZmZmZFckJq5mZmZmZmRVpeNUB\n2JA0CkBSR8VxtLPaNlxSdSDdeBT4W9VBdKH0Y3EssLDqILoi6SBgUtVxdGECFF9WRgL3Vh1Em6vt\n546K4+jKhsDoqoPowkhgaeHbcCzpulKq0q8p7aL4a58NLPewmll/GUnZlbN2sBCYVnUQ3ZhEqlyY\nWddGk86LpVpK2ckg+LoyVLTDtc8GkHtYrQqzASJiYsVxtK1a623J27AdYrSWWej9vPLcG9N3EaGq\nY+iOz4l9V/idEuD6jVm/cA+rmZmZmZmZFckJq5mZmZmZmRXJCauZmZmZmZkVyQmrmZmZmZmZFckJ\nq5mZmZmZmRXJCauZmZmZmZkVyQmrmZmZmZmZFckJq5mZmZmZmRXJCauZmZmZmZkVyQmrmZmZmZmZ\nFckJq5mZmZmZmRXJCauZmZmZmZkVyQmrmZmZmZmZFckJq5mZmZmZmRXJCauZmZmZmZkVyQmrmZmZ\nmZmZFckJq5mZmZmZmRXJCauZmZmZmZkVyQmrmZmZmZmZFckJq5mZmZmZmRXJCesQJunfJM2UNFvS\nrPx+jKQZ+fMDJe3Sxfxdfm5lqN+nZlXLx2NI2r9u3DmS7qsyrs5ynE9K6pB0q6TDq47JBidJZ0ja\nMw9vIeklSevk95+X9M1qI2ysu2uLpMUDGU+TGIqP0cy654R1iJI0CjgP+HRETAA+ld+Pqk0TEVMj\n4oZmy+juczOzJhYAHwWQtBrwemBZpRE1Nj8iJgLjgIMlvabieGxwmgNsl4e3A2aSjrna+5uqCMrM\nrBROWIeu3YErI+IvAPnv9DweAEnfkrSfpA9JOqVu/K8lvaH2eR53Qe6pXSBpjwH9JtYjko7IPUWz\nJB2Wx71iv0naMY+7SdJ0Savn8XtLuiXP/9Uqv4u1vSeBFyStTzrn/Aq6PPYWSzoxf3ZJBfG+GlgV\nGNakzNyUvwuSxks6p4IYrX3NAbbPw9sBP6p7/y7g8XzMzZZ0o6T1JL1V0vTaAvJdCuPznU9XSvq5\npDsljc+fbyVpRr6r6jJJr2pV8JI2z3cizJZ0ad2yV5V0Vr5unJSnnZi/w2WS7pD0sVbF0e4xmllz\nTliHro2BBzqNux94ocG01wI7Sxou6XXAqhHR+fa9g3NP7S7AD1oerbXCvsDOEbEj8JM8rtF++21E\nTIiI8cDdwMclvRY4Bnhfnv+kAY7dBp/LgY8DewO1JPQVx14ePxy4OB+r60jacoBi3FbSbOBBYHJE\nPE3jMjMVOCAPfwY4e4Dis0EgIh4A1s1J1IbADGArSRsDfwf+DOyYj7srSMfgXcAakjaQNBLYOiJu\nqlvmXsBBwGF51GTSHVU7AXNJx2mr/BA4Nse3CPhsHr8+cBzwXmB3SWvm8WsB+wAfAAaq8bMdYjSz\nJoZXHYBV5iFgi07jNgGe7TxhRLwo6UbSiXsL4ML6zyWtAhwraRzwIrBpv0RsfXU4cJqkEcCZkm6m\n8X57m6TvAasBo4Gngc2AP0TEswARUeLtm9ZeriJVzJ+MiEckQeNjD+DFiFiYhx8AXjtAMc6PiJ0l\nbQOcKOlkGpeZS4CZkqYAb4mIWwYoPhs8fgvsATwSEcskLQN2IvW+bgycnJOpUcBteZ6fAQcCjwGX\n1i1rfv5bX1beBpyfy9nqpLLXKpsDN+fhm4G98vBDEfEIgKS/Amvn8QvzNeRhSWu1MI52j9HMmnAP\n69B1DfBhSZsCSNoE+HAe38j5pB6Ej5J6RuptQ2rd3T5//lK/RGx9tSAiPgUcDfwXzffbN4Djckv0\nVYCAxaQW/1fBy40UZistIp4DfgGcUTe60bHXSLPx/SIifg88DHyNBmUmN+QsAE4DLh7I2GzQmAN8\nheVJ1QJS7+hNwKHAtFwuprD8+L8c2BPYn/QbFDVRN1yb9k5gn4iYGBHvAb7Twtj/xPJnbscB9zSI\noz6WzuMHQjvEaGZNuId1iIqIJyV9Cpiak4+XSD+8tKTJ9AskbQ7cnW+Lq3cPMCLfOrew2TKschdI\nWpfUuj6Z5vvtEuAcSfcATwFPR8Q/JP0A6JD0T+A64MQB/wY2qERE51vLX3HsDXxUTZ0CnAM8IfMk\ndwAAIABJREFU0+RcNwWYBxxZQWzW/uaQzsu1hHUucGz++wxwuqR9SHdHARAR/5J0C7BRRDzezfIP\nIV3vR+T3xwN9/dFEkX4s7WjgLKXu28dICXQp2iFGM+uGItyINNhI6gDIv25ZnNLjawftsA3bIUbr\nO+/nRNJY4KiI2Hcl5u0Ab8PBrj/2s6RTgWuq+MV+STsC+0fEpwdwnUsAIqJHt+kOdIwuy2b9wz2s\nZmZmfSBpX9Iz4p+sOhYbOiSdB6xRUbI6CTiC5T9eVJx2iNHMesYJq5mZWR9ExEXARVXHYUNLRFTW\nQBIR04BpVa2/J9ohRjPrGf9wipmZmZmZmRXJCauZmZmZmZkVyQmrmZmZmZmZFckJq5mZmZmZmRXJ\nCauZmZmZmZkVyQmrmZmZmZmZFckJq5mZmZmZmRXJ/4d1cJoAIKmj4jiaGQssrDoIM0kHAZOqjqPN\nlX6+2RAYXXUQ3RgJLC14G0LajgB/qzSKrk2LiClVB9GF0stKOxgFIGlJ1YE0sQbwf97HLVF6ebYB\n5B5Wq8JC/M+8rQyTSA0oNniNJiWEJVsKPFp1EN3YLL9KNRY3Pln1VgFWqzqIQcDl2VbgHtZBKCJU\ndQxmbWRhREysOoh2VetJKHUblh5fu6j1aJW6HduhR8vX5r4rvTyXXk7aRTuUZxtY7mE1MzMzMzOz\nIjlhNTMzMzMzsyI5YTUzMzMzM7MiOWE1MzMzMzOzIjlhNTMzMzMzsyI5YTUzMzMzM7MiOWE1MzMz\nMzOzIjlhNTMzMzMzsyI5YTUzMzMzM7MiOWE1MzMzMzOzIjlhNTMzMzMzsyI5YTUzMzMzM7MiOWE1\nMzMzMzOzIjlhNTMzMzMzsyI5YTUzMzMzM7MiOWE1MzMzMzOzIjlhNTMzMzMzsyI5YTUzMzMzM7Mi\nOWE1MzMzMzOzIjlhNTMzMzMzsyI5YTUbAiRtLelaSR2SbpZ0pKTFPZhvV0n7D0SM7UDSGElP5u14\nu6RJvZz/W5L268f4pkjqqHu/OP89UNIx/bXewajTvr5V0uH9tI4ZrV5uD9bbIWle/tshaZeexteT\n88ZAxddk3n6Pz9pHd2Ws6uOl1PiqKvtmzQyvOgAz61+SRgEXAntGxL2SBLy/B/MNi4jr+j3A9jM/\n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\nYmLVQbSrwltGAYgIVR1DV2rb0Mfhyqv1rEbEWlXH0kw77Od2KM9twteVPmiDOyVmQ3uU5ZJjLJ3P\nhwPPPaxmZmZmZmZWJCesZmZmZmZmViQnrGZmZmZmZlYkJ6xmZmZmZmZWJCesZmZmZmZmViQnrGZm\nZmZmZlYkJ6xmZmZmZmZWJCesZmZmZmZmViQnrGZmZmZmZlYkJ6xmZmZmZmZWJCesZmZmZmZmViQn\nrGZmZmZmZlYkJ6xmZmZmZmZWJCesZmZmZmZmViQnrGZmZmZmZlYkJ6xmZmZmZmZWJCesZmZmZmZm\nViQnrGZmZmZmZlYkJ6xmZmZmZmZWJCesZmZmZmZmViQnrGZ9JGmMpCcldUi6VdLhvZz/QEnH9Fd8\neR1bS7o2x3izpCMlLe7BfLtK2r8/Y7PWkTRFUkfd+8X5b78fY73R1zIzENohxtLkbTaj6jjamaRt\n8rl6tqQ5ks6WNKLquDqr39eS1sjxfrTJtFMlbZ+Hu73uDKUYS9WoLJe8XTqdrzskHbUSy/ippIn9\nEJ61wPCqAzAbJOZHxM6ShgF/lHR2RDxbdVAAkkYBFwJ7RsS9kgS8vwfzDYuI6/o9QGsJSasC2wCP\nSdokIh6oOqZuFFtm6rRDjDZI5HP1BeRzdR63PTAMeCG/HxYRy6qLckWS1gB+CZweEVdUHU8j7RDj\nYDdAx+38iNi5pxOXVpasa+5hNWutVwOrAsMkfTb3zNwq6dMAktaW9D+5pXeWpA1qM0oakVt5P9Xi\nmHYDrq5VgCL5dV7niTmWS/L7MZJuk3QBcHatZ07JNEk35bh3aHGM1ne7AVcB5wGTmk0kaULe5x2S\nzsz7doyk+ZIulLRggHsT68vMBTm2BZL2yPHeJGn9PDxe0jkDGFs7xVgMSZvn42u2pEslvSqPf0DS\nWZJukXRSHjci92zMyj2K78rjT5I0L4/fu8rvM4B2A66qnasBImIOsEGn8/KOedveJGm6pNUBJO2d\nt+0sSV/N4z6Wp5sj6dgWxzsSuBqYHBGXN9uXjQxgmWmHGNuGpFGSLpN0o6SZkt6Ux3dIOlXS9fmz\n1fL4+yWdAUzP54K35/GbSrqhn2M9Lp9DbpW0Wx73rVzPugr4eC4fCyX9AtisP+OxvnHCatYa20qa\nDTwITAZWAw4FxufXYZLWA74GXB8REyJiR+CxPP8awOXAZRHxsxbH9vocV2fDgYsjYgKwjqQt8/gx\n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\nnwAAAABJRU5ErkJggg==\n",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "best_dominoes(names2);"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.6.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}