# [Python 3], (1, 149, 945, 1118, 102)

<!-- language-all: lang-python -->

<pre><code>from collections import Counter

# history: a list of tuple of (guess, feedback)
# feedback: a list of length 5, each element can be MISS, CLOSE, or MATCH
def play(history):
 # Hard coded first guess
 turn = len(history) + 1
 if turn == 1:
 return 'trace'

 # When there are few words left
 remaining_words = [word for word in WORDS if all(get_feedback(guess, word) == feedback for guess, feedback in history)]
 if len(remaining_words) &lt;= 2:
 return remaining_words[0]
 &#32;
 # Hardcoded hard case
 if turn == 3 and history == [('trace', [MISS, CLOSE, MISS, MISS, CLOSE]), ('risen', [CLOSE, MISS, MISS, MATCH, MISS])]:
 return 'howdy'

 guess_list = WORDS if turn &gt; 2 and len(remaining_words) &lt; 100 else remaining_words
 return find_best_guest(guess_list, remaining_words)
 &#32;

def find_best_guest(guess_list, secret_list):
 R = []
 secret_set = set(secret_list)
 for guess in guess_list:
 c = Counter([tuple(get_feedback(guess, secret)) for secret in secret_list])
 R.append([guess, len(c), guess in secret_set, -max(c.values())])
 best_guess = max(R, key=lambda t:t[1:])
 return best_guess[0]
</code></pre>

[Try it online!][TIO-kyijk52o]

[Python 3]: https://docs.python.org/3/
[TIO-kyijk52o]: https://tio.run/##fZxdjyW3cYbv51d07AvPJhNDkuGbRTZAoDhwgDgGJAO@WCwEnm52N89hkxQ/Tk/Pn1eKXe97VqsIvppnyOI3WSwW2ScddY3hDz/95b@//374MHz19O3//PX7Pwl9/fSX//jbt38W@uZpsvOw2PrDbO10MePteWm2lJeh2DHb@u790zBUc7NBhD/@l/HFfhr@efijhGZbmq89uOfP0DnmwQ0uDNmExT7/8cxgGJwU0vP96D4NHz4gc/lHY5nZGTucdUP4WbQG/y03ywJexl6EDW2z2VSrdf5c1M9yQ3bvhzGG6sKZxTBcJb9gX@vz8/XM8PoyjN98mSXa37MLsaIi10@DCdMw9nzHb969DP8bg33HYq@DK6dwD/21lp39/0XLrj9rmRTXckCCp6e///W7/@zD9vF3po/L716GDsUCKuBiD0CsCmvMCm6CjLeTQmRIzBCOjXBHVGMRRyknjDEHhew0n7GiiLGhGpNZCEkznCxhc4GAkHiBcKRMzAxBWZP0wQnz7F4VHGTmiJbOsXmFarU@i0FZi0kWgBouNmiqxXmEuLAo@LgrxHAAslHIVoVXa7Tt0qlalivIx5u8KVwawKJ7/WIg4y4OYANgIdwogyHw3hwAS0CTPasqgKg4I0omHWEBxBnQtPI@rdouX00GoDmbwXBv5k3z2S6MuqClmw2az@Yo7KpWY2OhW6Jw8ojijBKF4AkZ4BmVD0DR5gS3IepGGVmxALQ9BEyAwIkta3xUuDuNkpmuTU4Gg5JWTOPECZCChQwrn1j5lKMOU6oIyRdM/jwRbNDkWfSQgkOT80aZuEEmMipjlHPGmOaCsnItGlVGjHtZMW0KF3W5WU1VCvIpxapwjd4DMCUqu6VNLhJUuC1Na9gChvJu0HV3TuO7M1r6PaLrdoPku8Hs3aU/CAwpq8KMYdojhF@d8YC4EbSIt6bJRedpyMVMC0ImHYKLwUQSWBBy0xl16WsPsCEqGAiHa1TIzDCziEKZoh3V4RFCGVcAFcnruAJWhjDDWlH6PgGO2E6wBqlEoxwA7ToBnfwXayljZ8jMDlGLjkUHhliCY1QDYIZfrGeGooAA/gEoArrlYgOFM3POGTK5IqowqmIs7J3wBnDQGxc32qQwoclu0Yl9cR5j4VgNqbIl6HjJHEFIRsUcq@GwZC6OHe6xVwroShHYCKq@OlAmMwo976H9pOrmRkCUtRMhAZihVX148W5DlGOUY1nuIVPfFCJzjqwzFogAk8f4gA2wa5N9w1T3bZ4BARm2fCEwRBfjJXKyRTY5Xi7adaItCOj5GJrWOUbKRKaKGAIBRqHrBBCSzSsgIKqgFbEUyHARxbYQMG1iQyfEHTMqvqLJ2YwWoBqpQwDcGBUYhbZn7HECd8rcI2D3BOSDHb/DDYAJkJ1BNdwF@TiMYIZ@FrAzIDAEizFzSggcgIKQyEIj9E/mlMicCQIURmdmjkXm3MicCZnjnmGqXRrXYKNebdSiDdvxpTk/ETSfxnXa/A3CXLCN6qIFNKdlRmVUo2VMG7EFkHNZIcMJ0Cpr@Ip2tQPDfXhzqqZRDF8P0AkpoOM@Gmib0YwmAlaGVKeAtguo@hplK0GIy8hns56AfAILDUyOlgpES0DypHUWaCgiG8KCDHNEhtCrAnfkg81l5OYiwAyh4kYjYwAoEIa1M1ocEEY76RQdRb1roauZLWEGoOsEMgA5r0b1mICOoEAsAFUgHTYCZQqLKIiyJhEgY0cUYe0DUDq0aAcIOwpjWQlYVB5TtIMjeMBGYTXMBDKqEZlhZJOxvgTYLhxGBNicxlSN3dICQzBtVqyvkQeE0S0YAocFMsr@pfVxdzUzOmiduW0JuA2AsmS3WgiU0UXdgTLoOtmtAiETKmAmZOTD7vUOU0L2rwuAhToWGg2BqWBeChRCRcVw4uiAQnHAHLl/jZ69KhsZhNm9spFp6RHG0sjdaowXPZqNUcIUPJaegDZZ7AUIb2o@CaDD47YhFQdFdtoIoExCc2T/8gCMqWxkyLAxObYtAUzICN0rkJAPduFR@iAQMuERhZx3Rh2qRcfMuZENRjBzbsgeZwmUwdzgZjdmHIFH7nojNzuBN4a8oSxsdh02APqH218HylhUw2LFZZsegKpyUWcuau6VAszQocmZKzc7NtBhhmdOv8zplzn9Mo7tI3dGARYqYwDYJ4IOQW5QKblB4eeGyZ85D7l7dkDlD7SrXTBbGvwbY8t6thq5/QlkAmZUo54XQFRVg3w8cNwejxEb2YEJOXHbmuRkRsiEAvCMCmoaTdytJlPVLzEZzMzJGk/QBTvZi6oLAYcoMQcICBl1OXQ4ADETGIKK2dkiCo4OgYooz@Rez@YC2i2T3SKEt4bkQfWhQIFMiqhPYuXzBRlWFlrjq0JDb1ho2klsNxWWUwlgQZN5BpncRgjIkIeRDoiCz2FyOE4KoIFOzu0K2MQFKkMoc2fOb7r0pgh7rANCFlVWU4Q2niJrGAN6Xkx0rXxMaE5sF4RANU0Rh9CJhrRAYAh6Q4x37XkqmYkW9USLWgD1obYRSIxSlTLRfp5oP0/UJBNVwcSFP3HhC7BQbOITjWQBzA0xiSETKQMNIBAZEhOAZcVHclasOZTeWMTBakDlTqLdAezwtm2EBOBCa@WGkILBpU07Naj3aTd5VrCovIBGHRhca@AWE1ANIFu4li6gU73bd16h6nhZ2of2AjVoxRo4c7YyxQm6D4qlpdrGLjjay@pcFa4WwjfWx2PjsP6ingHrYdtYT2Fvda5aP@tssR6mmgCTxwSAyrUbXEx2u@hMsHQ22m20kEnamTYYlCUbtVYjWJ2HHSBzjYDQnEJRX5wN7J9QM2TuEE5Rh0ngVUN@bKriBNw5kWyGTWszm5yx8G3OugZtbropWPriZKtDoXV9gCpzATWkbWVv3A0BPmoBVPXOEbzDTLWv7I1X6HD7OmJKvMJfZ1/h4hYoCEmUqZGgdpR9hafdch7OPEnNcsiuCi4QtGICOiHnfiWkEEZE4XA0mzwiqmqvzjzCzAaFCqiJPstB/OyomU6wmdvNzB1klqVjABEhmxoMM/eL2WJVyvbD5NiFZ8tqWCxPAVUFAuromC3U8mxhhs3u8gA9F8xuhLCzavIJBALKEn22EhCChTY7zwy9ZYiHDJyWAkyOs@fMQ8TMLWl2OFPPDkfp2b0yCnvKfMWhZub5QkCXXocM0KnV4QBsDAlMlRmiFlEHRFnmbNEcbynjGAU9P/NY0QHCLgPgDZt5vpjp@@qA5LiXEVD1LtAY1Zhc9fxMt5gARtk3trSxgY31aWxpY@VxoJs9doc5GoxO5MyMnAkRLpQ5YsXN0as1OHPLniMc/gKYohGWQwcI58oQTIAIo0JArbiZbrE5smKZY5o5cNygBfQgNtOwn2nGd0Byjhf9WjM36Jnb8UwPlYB6L2fa4QKoj0AFFAJawc1X4A01bLqbz3RDzQ23JzP33FkGxwFuDIFuadC9M23sucGjODdM/sXM6vFYaDYv0j0ZoDuIgE6bxSD5Ih1GWJAcZrPAG0Lg617MfoPwwZwPlvWGEFkfUcFC2FrVmYsYtwRdX8uKrhPQS5PFwQOz0Hm@uISqOpgHC/3hi8MBc6F5udANvtD7vXAtL3QaLHR6i9mhptpCN8LC3Xzhgl24TgUuiIIfUkDHYuHyXHjqX/yRtIYBCmQJ8OovEdc6C63cJXq7ARgV1JgUQLtENyAqWsJMQPdyfS2xPUD14UIHssBEUBN04WpaaAAv9CR3oExiKrQrwxWz8Ny98Ny98Nzd4QCgwzOcMwtXZYdAQBRcXgsX48Jjcgdk6FhDx4pFjKCYzQQMU44PGVYVx@QOKJQDJyvXE5APzssCMyrGBdLgGxS46/pqsPk7QIYzik7mDo8QymAEG@6tFuqERc7oEYC2t5QApUaChhxYKavBqXalAbMaHDlXHpNXg3y6g5Og81DgEcXkWafxSodtB0TBulhpma9UIAIUxjoViKMCbs1WXguuvBbsUAG6zAVQeYsZtVpo0dXC3lgtdqJVDPFXgLqCV9pIYpuqHbXSAll5@7a6lCIBUWwXr5BW3hyt3PVWLtg1QtOuvFRaeWLtflYLCIiCe2SNuEwUYD7Y7AQoc6fMnUXgeLu2Tee8gO74AihUTm0rQLfsldcWKzeXlVvJygPdyj1l5YFuPeQcqYBL//XYMJQHPP9uxHYjoArNdYeLAu67O1QFWINuOnR1u65PT/DOnHPDbXhd47ZLA8Ced3xlIXainoVduKjrQwxGNY1ENViEwCnXTUgAvDTdvYEQOGcELEICZXCj4XikEtDecPSdOio9R6dcfyajqQpOZH0eadQd@8WVC@RqsHdfeSt9tfkGwNnhauHEuLpZFf41Ym@6ch5eI94DXDkhrxEevCvtjWtz4wNUhrrlyjP@VeplCIiC4XETdWEU8gY41MS62Ys5HYm31dxOA0aO1NqKm4tqR93oCLoFWOYCuqhvAZ4TAfsAD1ANeQtuhnBkcnhFBFRR36LR49KNG4c3F0vQVnTrIABUCXt6ITwdif0QcCgkJoeH3PMphYAq/G5TRAUsGU816PlMQqAC4KHyNJ88X0cI6OD2e3iCjrJAIujli@e1VwcmL5S5Iwrj7vm4QiAjZ@hMbxddpwILQuCQ9DxgeptYVSgizzOjd@xeZ1EWD339kZfm47wu6n7TEgEOMoEygRnC6@hdUoXmHfvQPQq9I8rDO@d5TumWmraUitrz5OJ5cvH0OvZ3ZJBZdC130PrEmBAFy0oMPXSdBGg1qJ87IIo15I2GgEfUgWq0EZVvI0a5QZ16rkE5mempxFNj90ObltUSWtEyozIzxHbs6dbwB7YAfzCfI2tLNzPq/bLAGgEZMKlJvPH10WZmZxQWJoefdjNO7brNXHV9bXyYtBkM98ajRwdkGBZDsIRIoAwLDSw0sD6BZeH12mbQGxvNlY3mymbwYKY/94NwpXC1EG53RL06tP24IORAWbKhHQBdlQIVIaPecm520lEWcAxB5a1XL99GT46YCyOSQ6UIOOTMVtCBs9HPL4Bhchwvh/ksoBpg4xrcHJ4ubA63gZuDitu44gTQZMdedXgXJ6CTbeNpa3OFqWAnbHHUB5ZbZNvjZB@gOcelIQS71Ra9znCBCfnAahJAWTzvbFyDG28nBdCHMScIP@pTWXp1MwDtiriS2CJ8cRttrY03mAIZOTcW2lgfrG4Bhygs841rWQA9xjcnG@35jdb7xkUt6hXNaZnJ4dcSwHjRMNu4urcj5zO5nA/VnRUM7gsC/ZCBr/sCTfRAh6RsuQ/Qjupbrsp0z7hCZggu7wIVfqCTUECXgyxOhDg8PpET/gjAPAwuXA0ANXQY5RDheu2gURFHoQ4I2dQ8CJwJgc6iIAGQwaIOtJYDzZ7Au8jQYIGEA2swUENGg90qXuCpiCOMyTjCMxBH9KGAGnhxwu2AgFY@zjNkZtiZsskgZz99Bo3i@@e4wdEqZwhVjGJdag1jwLNDOcGqJzAmPK8SUP9YTHjsGjMOff3AoUVkPJ6MdMvLIgA0jE7ktY7MdL34FqBMVbUc77hDFFBLJvKtrKwG1IdvZeOODUjMMuTziiNwfMMFVuINbzKoYaLLPfFFq0CBTNAxTdwLBBiVDKISU@UH3AwgQxgzob@MRkiphmAJiMKMElDHpgALrZRpzPCwD9DSLfwtiQZe6pdbCiOazP0i2fAApgrhAVqWzcwnOwhDbyRbHqAqLnHjSDxEJD5VSiuHYMWBRQCpnOysClBoiWtZAPk4GIrJ4Yl@oqO@T0xEBSYPzJmj435syJDdKwYehO/M8BXD7V4dhN/edJg8e9XjGWSHQKiAQBn1CXdgVGUUM8TRI/HVUPJwBSf68BPf7Qjoe4lEd3riA55Ed3qiOz1Fi9nCw1qiZks8rCXugwKYq9EfmmHEVV2KcEekyAlAE1QATY6FOTfKYGsTwMBxt0p0lSfeXCe64BIvrFPGUTHx7UriO89EV3miU65DBKCl2UWU5fRdnID6bQTekAre1MRL7Q4LQL/jSPx2QKChULjpEt10Aq/IubGGDRnKNqil8@1KanhpkBqO0qn5REBZ3KBTo25pyREojM9kOmTAwhDmg908cd9Jx6I2wI8NR2ABzVlAb2r6fewGyJRRTSugU6uDU8DAdcgAjwxx1vuRfkiBhiIcS3cWUY6p4JAUYOm41P6xRVWVHR4hZ32yuejHPrl/gqUAqyAbPMsUcI4QFfAYWEB7LJurQYZwYuT@AY8CTkkyeUeEwI2ZeYjIJrH0zNJLgkxloRiLTIdkFgsf8KaTNlNjd6gAlGUxOgIZgHdEAqq1BNQIzHxHlEXhJ0DLBERZ5gyDIfPDh8yzebarelcy74Wz9frOPPNlkYDO8Gw3Jg9MHvTDmWwThROrCmea9FdDzrA3BBxCKnsDR48OSIXtL9MzIKBzLK9Ot5Lc3YUn8Jlo5oElu9kDYIoIYATdgrFweATV3fyBgKjCkPII0X1HlA3aTqdBBy2CDywzH1iKHkJLI74o7Bd9mo8cYbQVET4iATQwxg0ykfngoJF5@ZL5HilTG2ceK/q1A4A1pFM3U1FnOg0yTxNdw2lUWy4I8QzZLgaAarSkOirzoJF5iCg82heDWVdofYnK1A2xcA0WA2tZoBgA88GdQoeogFUpwJyhMwsvHIssRmRYD8jg0VoHyOCZROENQuF7iQ6QueueUkajFysdLCERKLMxBC0dcS3YYSZA2AZLgDAM8jLGGcKRhUYK4y2WQGJIfgCTqwbogJyxkZX@yJWAfLDLdNgB7UKAcNNxL2JMahFUKcVirhaLPbdYaNHCt4XFJofkWc/LAsiZpz/RCHpZVuydyTFpC8@DZcWOJqC7cIcDoPeMAjdG3RjlGaIbUAcKb4wKzDkxRK9jOjxCKKPv3ssKL6gAunfF@3ABtGLFa97CB/kdULp1yND6mYB8YP8IsF04AXVAuxwr5lgxvPooazTIJ7LHOH9WvObtQGHmw/mzxkc@jcCWwg3eAdXgtFk5bQQWhcbS4foQUOtCrBYsGTp1BVAEFbWA@vQKXUyFF2qFLiYBlM4rtiK9ojWk@6i4VzUhOmjIDSZ6ucH8FsCKu8FKEcBavrFXb/hCpANkYJAXPgQqPCkUfl9QeC4ofORTeEAQQJM93n4XfgRX@OxHIAFgLRe@/yl8RSCwPeAAsHTHGlJv8N2gAOsDE6vwoFH4gKf4RwNbZhRTcQQ3tn3j@tpgTApAeOO62DjDN9y5lA331AKYxhuswQ5Izmm84cFeB5QOQ7HwxkdAzV2BG6MgHLiWA47JJeABjwBmQmCvBk6JgNv/EtiHgUsmcKUErpTAdRE4@QMu9Es02KQiHr8VPnAqPKMJqHEigLkRA6Pglyj8SLDwI8HCi4NCG6DQo1i40ZeEU63ARMDgJnZLoopL@NRIAOs9saMShzLhiZoAlFXi4CYObsITvg4MyciZ8znholCA@TiLfPAVfwfKsAjHIqgYExVjomJMnEgJb3cFHABfApbEGZVwHuxwI1AG@3LiuCeOe@K4J7xDK4n7qZxCdRElLqIEx28HTSWnrInAEKdatHI@V3xZJgAVV@GX6BAIGXCjjH8A80HXVVopFS9wOlAmM1V@hFQA1nKl@qpUXxX@jQ43gidsAEsZyyjousqlVy2bY9FRlbqucjFWToDKCVCp6yp1XaWdWak3asTaqRzuGtk/kb3BLbLCZyUQJ4InUJgdFdlRERO74v5doLEa7CgaXQI7AcLZMYqpqEAq3s4JsBOoqCsVdeUcq9xq64EGNg5Tw6dzpbHHeO4u/P608EVQaZveqBY@DiwNZ6JCd0ShO6Lw25wim8N5AC@72R6QAOgf/oKBAHTUTpWywz8mgLmxcx/kC38BbIg7TaOdU2KnKqBzWCAzioVyLe8cyh2veTtYAmTYvUfATDiymqmVn8pWvusW0BcmsnBVyfQVDBk4gipPQJV3AZVXmZVHocqjUOW7ysqLy8qLy0pHtIAD4D5FIKIIeJsrvc2VfonKlyHV4IuVSneEQGaIWu/V4mAoy7RCZtNXTFVOMBWg56ZKm1@AwjghCqjWksWttwwCFGYNaYfXFZ9VCqCBK76G65cMhEJQr1Hll62VH7QK6Om4rpgSHSij495/zglRGPfKb1TrCmVeaeUKxAuBIXqWqSs8t5UftFb6JaozaLK7OADc8tXh1F9p94pim5CKE8Dh5VXlI9Xqqh7EKp8uCGAe0udQ46S6RQAjGDnrIvw2AnoZVGldVFoXNSbzBmAUnMMC@hxFQN1QNVZmWPVCttJLXOmgqPxOqtImqfGVOb@q5q98QVr5eWaHCpgYpXt35VPSDpRBz/ODzcpPqCq/nKp8HSoQEOLMAyCMnyCo9FFX@qgrXdOVj0IFsND4CVXlB1OVj0Irn4BW@pZFzY8PQM746QkBqAJ@Mln5UZWAOs8rv53s2wVaeiCk4XN@AWTYvG4uApgkdODIdoEhaFmfUtQGF1PdcYSpO7Z1AbSdarnu7B/q3kqVK1Ao86rARyONd5rNjwR8OCNLCBDwwaaAdp2YthAOky4HgQaZ2SIEjk1plqrcxltOgWoJiPIUxqfNjTehoh@dJXiFnUW8aWe2BCXcElPli67Kxp@naAU2m2yMEC7shIKvogT0bNUqjkKN96d3A@/K3eC9n4C2XSBCxj9k7oBEmUQZvEa4U/Pf@Ys3d1HdGwD58K3Infq5QwSgCDfqln138F7e3aIddadb9e7wYdFdDHNERYag6@4ObkMB1SR3h/smAeaD@9O7qxTG66y7e1WFducTrHuc9JLrTifqPWKKCqD0CPf1PbKfqazu1FF3ztWdm/hON@bOt3x7/2kzBUz1nc8kduP1g46dt8A7t@Odd747n/Dt5k5Ac3buwjsf2u18aLfT87bzKYWAbmQ7f49IoABwkbHTdbbTGyagDsmdPyIhoG0XUMfmzq12l40V@cAOF2A@mOo7HVMCGfng8xYBtH2NTAUNuXOr3R2eLuz04QvoDiugKm7np2E798qdHqHd4WHbTtfQzitjAfQYffgCFOZY8OHozi1yj3j2LMAQPBYSQD5yLGDIGyBTJqOqPJvvfI/doQLQLv7Kwc7z@87fNNi5DwpAmN8cCTAKt287fwxH4BGCnue9pwBDGkPgyTnEBjxTHXwCevDB58GePyJSHfQwvFlo7DdacW@ndfHppznHbRhlT7RjFSVcBhkjafLwbX8JZfPT028HmSH9uPR@MIMXHOI81Ja87cDfzORvaL4TefLPE3gblroOf3wZuhE7WN8d0HUYTRgudug/o/mivxH5MsSM38Hsv8@ZvDmeUYHzVy5/O/xZrGip8WSn4fwQUH9es/9YZ/8NyQ@9qEeK4V@Gr5/OX6jUyA/D1/rrlPjFSdgyT2fGf19tGE7LdZATtjRjH/pUKUN/JXv@SuUmtoyM3g8a/GH42OH8Gc0TXBj0pyulPDkpPP/aj4t2wXe9Iow4k/@iF3tObMInrX9v1S8q8G74tw/DN1@05xcSH7/qqR@9pp22nv0nB4cvO@YP5@97otQe8PH5Yel9/GKA9J@fBX169zI8P67hPv6K2Dmg@s@nd5@@HAL9iKEPwdkLP5xT5sPnnjyl/n345qzfr3fD8PVXX8mcKvaXHfD5t0VnUTA/XGT2/3B@j/P8uayXXybqv2r6dM6@f5RIfyX1/OecmN/1@dC7GxFibgz9517r888l8TOuZ0Z9lD/nqJ0y9t9K1aX3/PFcZc//4Cdq352Z6T89t5@V9El/m/W735vU/XvPH5Gyd@Ao4/Wowefqvgz/upnX5/H3p7VSnt@9OzN5tL/P@C7w3ctws8cHb7bLZIb6vn78@v0pia7@nEDmnyqYfkcvf6Bb@k8QjfbpCRX/gIDnc8jfPZ2vR/grtPjv3dMTq9B/YvbpMU97n5/7HFr0T/yJ3fecUCLzhRbpQ8B19uEf/QCwCCINO/H/absuoxXU3@F9/Pub3/y@f5vxvJn0XGp@@Zzis4y0CcLff/vX7/70/jcvX@iud08//R8 "Python 3 – Try It Online"

[Scorer](https://tio.run/##hZxdjyS3dYbv91dU5AvPSBNBu4JzIWQNBP6IDcR2ICnIxWIhsKtYVexmkRQ/uqbnzyuHdd63d2QFNrRYPUsefpOHh4esTre6xvD1T3/583ffDe@Hr9787r/@9t0fhN6@@ct/fP@7Pwm9ezPZeVhs/WG2djqZ8fKwNFvK01DsmG19/ObNMFRzsUGEP/zR@GI/Dp8Pv5HQbEvztQf3/Bk6xzy4wYUhm7DYh98cGQyDk0J6vh/cx@H9e2Qu/9BYZnbEDkfdEH4UrcHf52ZZwNPYi7ChbTabarXOn4p6lRuy@2YYY6guHFkMw1nyC/a5PjycjwzPT8P47udZov09uxArKnL@OJgwDWPPd3z3@DT8NQb7yGLPgyuHcA/9/1p29P/PWnZ@1TIpruWABG/e/O/fvv19H7YPvzZ9XH79NHQoFlABJ3sDxKqwxqzgJsh4OylEhsQM4dgIV0Q1FnEr5YAx5qCQneYzVhQxNlRjMgshaYaTJWwuEBASTxCOlImZIShrkj44YJ7ds4KDzBzR0jk2r1Ct1mcxKGsxyQJQw8UGTbU4jxAXFgUfd4UYboBsFLJV4dUabbt0qpblCvLxJm8Kpwaw6F6/GMi4kwPYAFgIF8pgCLw3N4AloMmeVRVAVJwRJZOOsADiDGhaeZ9WbZevJgPQnM1guDfzovlsJ0ad0NLNBs1ncxR2VauxsdAtUTh5RHFGiULwhAzwjMo3QNHmBLch6kIZWbEAtD0ETIDAiS1rfFS4Oo2Sma5NTgaDklZM48QJkIKFDCufWPmUow5TqgjJJ0z@PBFs0ORZ9JCCQ5PzRpm4QSYyKmOUc8aY5oKyci0aVUaMe1kxbQoXdblYTVUK8inFqnCN3gMwJSq7pU0uElS4LU1r2AKG8mrQdVdO46szWvo1out2g@S7wezdpT8IDCmrwoxh2iOEn53xgLgRtIiXpslF52nIyUwLQiYdgpPBRBJYEHLRGXXqaw@wISoYCIdzVMjMMLOIQpmiHdXhHkIZVwAVyeu4AlaGMMNaUfo@AW6xHWANUolGuQG06wR08p@spYydITM7RC06Fh0YYgmOUQ2AGX6ynhmKAgL4O6AI6JaTDRTOzDlnyOSKqMKoirGwV8ILwEFvnNxok8KEJrtFJ/bJeYyFYzWkypag4yVzBCEZFXOshsOSOTl2uMdeKaArRWAjqPrqQJnMKPS8h/aTqpsLAVHWToQEYIZW9eHJuw1RjlGOZbm7TH1RiMw5ss5YIAJMHuMdNsCuTfYNU923eQYEZNjyicAQXYynyMkW2eR4OmnXibYgoOdjaFrnGCkTmSpiCAQYha4TQEg2z4CAqIJWxFIgw0UU20LAtIkNnRB3zKj4jCZnM1qAaqQOAXBhVGAU2p6xxwlcKXONgN0TkA92/A4XACZAdgbVcCfk4zCCGfpZwM6AwBAsxswpIXADFIREFhqhfzKnROZMEKAwOjNzLDLnRuZMyBz3DFPt1LgGG/VqoxZt2I5PzfmJoPk0rtPmLxDmgm1UFy2gOS0zKqMaLWPaiC2AnMsKGU6AVlnDZ7Sr3TDcN28O1TSK4esBOiEFdNxHA20zmtFEwMqQ6hTQdgFVX6NsJQhxGfls1hOQT2ChgcnRUoFoCUietM4CDUVkQ1iQYY7IEHpV4Ip8sLmM3FwEmCFU3GhkDAAFwrB2RosDwmgnnaKjqHctdDWzJcwAdJ1ABiDn1ageE9ARFIgFoAqkw0agTGERBVHWJAJk7IgirL0DSocW7QBhR2EsKwGLymOKdnAED9gorIaZQEY1IjOMbDLWlwDbhcOIAJvTmKqxW1pgCKbNivU18oAwugVD4LBARtm/tD7uqmZGB60zty0BtwFQluxWC4Eyuqg7UAZdJ7tVIGRCBcyEjHzYvd5hSsj@dQKwUMdCoyEwFcxLgUKoqBhOHB1QKA6YI/ev0bNXZSODMLtXNjItPcJYGrlbjfGkR7MxSpiCx9IT0CaLvQDhTc0nAXR43Dak4qDIThsBlElojuxfHoAxlY0MGTYmx7YlgAkZoXsFEvLBLjxKHwRCJtyjkPPOqJtq0TFzbmSDEcycG7LHWQJlMDe42Y0ZR@CRu97IzU7ghSEvKAubXYcNgP7h9teBMhbVsFhx2aY7oKpc1JmLmnulADN0aHLmys2ODXSY4ZnTL3P6ZU6/jGP7yJ1RgIXKGAD2iaBDkBtUSm5Q@Llh8mfOQ@6eHVD5G9rVTpgtDf6NsWU9W43c/gQyATOqUc8LIKqqQT7ecNwebyM2shsm5MRta5KTGSETCsAzKqhpNHG3mkxVv8RkMDMnazxBF@xkT6ouBByixBwgIGTU5dDhBoiZwBBUzM4WUXB0CFREeSb3ejYX0G6Z7BYhvDUkD6oPBQpkUkR9EiufT8iwstAanxUaesNC005iu6mwnEoAC5rMM8jkNkJAhjyMdEAUfA6Tw3FSAA10cm5XwCYuUBlCmStzftGlN0XYYx0QsqiymiK08RRZwxjQ82Kia@VjQnNiOyEEqmmKOIRONKQFAkPQG2K8a89TyUy0qCda1AKoD7WNQGKUqpSJ9vNE@3miJpmoCiYu/IkLX4CFYhOfaCQLYG6ISQyZSBloAIHIkJgALCvek7NizaH0xiJurAZU7iTaHcAOb9tGSAAutFYuCCkYXNq0U4N6n3aTZwWLygto1A2Daw3cYgKqAWQL19IFdKp3@84rVB0vS/vQnqAGrVgDR85WpjhB90GxtFTb2AVHe1mdq8LZQvjC@nhsHNaf1DNgPWwb6ynsrc5V62edLdbDVBNg8pgAULl2g4vJbiedCZbORruNFjJJO9MGg7Jko9ZqBKvzsANkzhEQmlMo6ouzgf0TaobMFcIp6jAJPGvIj01VnIA7JpLNsGltZpMzFr7NWdegzU03BUtfnGx1KLSud1BlLqCGtK3sjashwEctgKpeOYJXmKn2mb3xDB1un0dMiWf46@wzXNwCBSGJMjUS1I6yz/C0W87DmSepWQ7ZVcEFglZMQCfk3K@EFMKIKByOZpNHRFXt1ZlHmNmgUAE10Wc5iB8dNdMJNnO7mbmDzLJ0DCAiZFODYeZ@MVusStl@mBy78GxZDYvlKaCqQEAdHbOFWp4tzLDZne6g54LZjRB2Vk0@gUBAWaLPVgJCsNBm55mhtwzxkIHTUoDJcfaceYiYuSXNDmfq2eEoPbtnRmFPmc841Mw8Xwjo0uuQATq1OtwAG0MCU2WGqEXUAVGWOVs0x1vKOEZBz888VnSAsMsAeMNmni9m@r46IDnuZQRUvQs0RjUmVz0/0y0mgFH2jS1tbGBjfRpb2lh5HOhmj91hjgajEzkzI2dChAtljlhxc/RqDc7csucIh78ApmiE5dABwrkyBBMgwqgQUCtupltsjqxY5phmDhw3aAE9iM007Gea8R2QnONFv9bMDXrmdjzTQyWg3suZdrgA6iNQAYWAVnDzFXhBDZvu5jPdUHPD7cnMPXeWwXGAC0OgWxp070wbe27wKM4Nk38xs3o8FprNi3RPBugOIqDTZjFIvkiHERYkh9ks8IIQ@LoXs18gfGPON5b1ghBZH1HBQtha1ZmLGLcEXV/Liq4T0EuTxcEDs9B5vriEqjqYBwv94YvDAXOhebnQDb7Q@71wLS90Gix0eovZoabaQjfCwt184YJduE4FToiCH1JAx2Lh8lx46l/8LWkNAxTIEuDVXyKudRZauUv0dgMwKqgxKYB2iW5AVLSEmYDu5fpaYruD6sOFDmSBiaAm6MLVtNAAXuhJ7kCZxFRoV4YrZuG5e@G5e@G5u8MNgA7PcM4sXJUdAgFRcHktXIwLj8kdkKFjDR0rFjGCYjYTMEw53mVYVRyTO6BQDpysXE9APjgvC8yoGBdIg29Q4Krrq8Hm7wAZzig6mTvcQyiDEWy4t1qoExY5o0cA2t5SApQaCRpyw0pZDU61Kw2Y1eDIufKYvBrk0x2cBJ2HAvcoJs86jVc6bDsgCtbFSst8pQIRoDDWqUAcFXBrtvJacOW1YIcK0GUugMpbzKjVQouuFvbGarETrWKIPwPUFbzSRhLbVO2olRbIytu31aUUCYhiu3iFtPLmaOWut3LBrhGaduWl0soTa/ezWkBAFNwja8RlogDzwWYnQJkrZa4sAsfbtW065wV0xxdAoXJqWwG6Za@8tli5uazcSlYe6FbuKSsPdOtNzpEKuPRfbxuG8gbPvxux3QioQnPd4aKA@@4OVQHWoJtuurpd16cHeGeOueE2vK5x26kBYM87vrIQO1HPwi6c1PUhBqOaRqIaLELglOsmJABemu7eQAicMwIWIYEyuNFwPFIJaG84@k4dlZ6jU64/k9FUBSeyPo806or94swFcjbYu8@8lT7bfAHg7HC2cGKc3awK/xyxN505D88R7wHOnJDnCA/emfbGubnxDipD3XLmGf8s9TIERMHwuIi6MAp5A9zUxLrYkzkciZfVXA4DRo7U2oqLi2pHXegIugRY5gK6qC8BnhMBewcPUA15CW6GcGRyeEUEVFFfotHj0oUbhzcnS9BWdOsgAFQJe3ohPB2J/RBwU0hMDg@551MKAVX43aaIClgynmrQ85mEQAXAQ@VpPnm@jhDQwe338AQdZYFE0MsXz2uvDkxeKHNFFMbd83GFQEbO0JneLrpOBRaEwCHpecD0NrGqUESeZ0bv2L3Ooiwe@vojL83HeV3U/aYlAhxkAmUCM4TX0bukCs079qG7F3pFlId3zvOc0i01bSkVtefJxfPk4ul17O/IILPoWu6g9YkxIQqWlRh66DoJ0GpQP3dAFGvIGw0Bj6gbqtFGVL6NGOUGdeq5BuVkpqcST43dD21aVktoRcuMyswQ27GnW8PfsAX4G/O5ZW3pZka9XxZYIyADJjWJN74@2szsjMLC5PDTbsapXbeZs66vjQ@TNoPh3nj06IAMw2IIlhAJlGGhgYUG1iewLLxe2wx6Y6O5stFc2QwezPTnfhCuFK4Wwu2KqGeHtt9OCLmhLNnQbgBdlQIVIaPecm520lEWcAxB5a1XL99GT46YCyOSQ6UIOOTMVtCBs9HPL4Bhchwvh/ksoBpg4xrcHJ4ubA63gZuDitu44gTQZMdedXgXJ6CTbeNpa3OFqWAnbHHUB5ZbZNvjZO@gOcelIQS71Ra9znCBCfnAahJAWTzvbFyDG28nBdCHMScI3@tTWXp1MwDtiriS2CJ8cRttrY03mAIZOTcW2lgfrG4Bhygs841rWQA9xjcnG@35jdb7xkUt6hXNaZnJ4dcSwHjRMNu4urdbzkdyOR@qOysY3BcE@iEDX/cFmuiBDknZcu@gHdW3XJXpnnGFzBBc3gUq/EAnoYAuB1mcCHF4fCIn/BGAeRhcOBsAaugwyiHC9dpBoyKOQh0Qsql5EDgTAp1FQQIgg0UdaC0Hmj2Bd5GhwQIJN6zBQA0ZDXareIKnIo4wJuMIz0Ac0YcCauDFCbcDAlr5OM@QmWFnyiaDnP30CTSK75/jBkernCFUMYp1qTWMAc8O5QSrnsCY8LxKQP1jMeGxa8w49PUDhxaR8Xgy0i0viwDQMDqR1zoy0/XiW4AyVdVyvOIOUUAtmci3srIaUB@@lY07NiAxy5DPM47A8QUXWIk3vMmghoku98QXrQIFMkHHNHEvEGBUMohKTJXvcDGADGHMhP4yGiGlGoIlIAozSkAdmwIstFKmMcObvYOWbuFvSTTwUr/cUhjRZO4XyYY7MFUId9CybGY@2UEYeiPZcgdVcYkbR@IhIvGpUlo5BCsOLAJI5WRnVYBCS1zLAsjHwVBMDk/0Ex31fWIiKjB5YM4cHfdjQ4bsXjHwIHxlhs8YbvfsIPzyosPk2asezyA7BEIFBMqoT7gDoyqjmCGOHomvhpKHKzjRh5/4bkdA30skutMTH/AkutMT3ekpWswWHtYSNVviYS1xHxTAXI3@phlGXNWlCHdEipwANEEF0ORYmHOjDLY2AQwcd6tEV3nizXWiCy7xwjplHBUT364kvvNMdJUnOuU6RABaml1EWU7fxQmo30bgBangTU281O6wAPQ7jsRvBwQaCoWbLtFNJ/CMnBtr2JChbINaOt@upIaXBqnhKJ2aTwSUxQ06NeqWlhyBwvhMpkMGLAxhPtjNE/eddFvUBvix4QgsoDkL6E1Nv4/dAJkyqmkFdGp1cAoYuA4Z4JEhzno/0g8p0FCEY@nOIsoxFRySAiwdl9o/tqiqssM95KhPNif92Cf3T7AUYBVkg2eZAs4RogIeAwtoj2VzNsgQTozcP@BRwClJJu@IELgxMw8R2SSWnll6SZCpLBRjkemQzGLhA1500mZq7A4VgLIsRkcgA/COSEC1loAagZnviLIo/ARomYAoy5xhMGR@@JB5Ns92Ve9K5r1wtl7fmWe@LBLQGZ7txuSByYN@OJNtonBiVeFMk/5qyBn2hoBDSGVv4OjRAamw/WV6BgR0juXV6VaSu7vwAD4TzTywZDd7AEwRAYygWzAWDo@gups/EBBVGFLuIbrviLJB2@k06KBF8IFl5gNL0UNoacQXhf2iT/ORI4y2IsJHJIAGxrhBJjIfHDQyL18y3yNlauPMY0W/dgCwhnTqZirqTKdB5mmiaziNassJIZ4h28kAUI2WVEdlHjQyDxGFR/tiMOsKrS9RmbohFq7BYmAtCxQDYD64U@gQFbAqBZgzdGbhhWORxYgM6w0yeLTWATJ4JlF4g1D4XqIDZK66p5TR6MVKB0tIBMpsDEFLR1wLdpgJELbBEiAMg7yMcYZwZKGRwniLJZAYku/A5KoBOiBnbGSlP3IlIB/sMh12QDsRINx03IsYk1oEVUqxmKvFYs8tFlq08G1hsckhedbzsgBy5ulPNIJelhV7ZXJM2sLzYFmxownoLtzhBtB7RoELoy6M8gzRDagDhTdGBeacGKLXMR3uIZTRd@9lhRdUAN274n24AFqx4jVv4YP8DijdOmRo/UxAPrB/BNgunIA6oF2OFXOsGF59lDUa5BPZY5w/K17zdqAw8@H8WeM9n0ZgS@EG74BqcNqsnDYCi0Jj6XB9CKh1IVYLlgydugIogopaQH16hS6mwgu1QheTAErnFVuRXtEa0n1U3LOaEB005AITvVxgfgtgxV1gpQhgLV/Yqxd8IdIBMjDICx8CFZ4UCr8vKDwXFD7yKTwgCKDJHm@/Cz@CK3z2I5AAsJYL3/8UviIQ2O5wA7B0xxpSb/DdoADrAxOr8KBR@ICn@HsDW2YUU3EEN7Z94/raYEwKQHjjutg4wzfcuZQN99QCmMYbrMEOSM5pvOHBXgeUDkOx8MZHQM1dgQujIBy4lgOOySXgAY8AZkJgrwZOiYDb/xLYh4FLJnClBK6UwHUROPkDLvRLNNikIh6/FT5wKjyjCahxIoC5EQOj4Jco/Eiw8CPBwouDQhug0KNYuNGXhFOtwETA4CZ2S6KKS/jUSADrPbGjEocy4YmaAJRV4uAmDm7CE74ODMnImfM54aJQgPk4i3zwFX8HyrAIxyKoGBMVY6JiTJxICW93BRwAXwKWxBmVcB7scCFQBvty4rgnjnviuCe8QyuJ@6mcQnURJS6iBMdvB00lp6yJwBCnWrRyPld8WSYAFVfhl@gQCBlwoYy/A/NB11VaKRUvcDpQJjNVvodUANZypfqqVF8V/o0OF4InbABLGcso6LrKpVctm2PRUZW6rnIxVk6AyglQqesqdV2lnVmpN2rE2qkc7hrZP5G9wS2ywmclECeCJ1CYHRXZURETu@L@XaCxGuwoGl0COwHC2TGKqahAKt7OCbATqKgrFXXlHKvcausNDWwcpoZP50pjj/HcXfj9aeGLoNI2vVEtfBxYGs5Ehe6IQndE4bc5RTaH4wBedrPdIQHQP/wFAwHoqJ0qZYd/TABzY@c@yBf@AtgQd5pGO6fETlVA57BAZhQL5VreOZQ7XvN2sATIsHtvATPhltVMrfxUtvJdt4C@MJGFq0qmr2DIwBFUeQKqvAuovMqsPApVHoUq31VWXlxWXlxWOqIFHAD3KQIRRcDbXOltrvRLVL4MqQZfrFS6IwQyQ9R6rxYHQ1mmFTKbvmKqcoKpAD03Vdr8AhTGCVFAtZYsbr1lEKAwa0g7vK74rFIADVzxNVy/ZCAUgnqNKr9srfygVUBPx3XFlOhAGR33/nNOiMK4V36jWlco80orVyCeCAzRs0xd4bmt/KC10i9RnUGT3ckB4JavDqf@SrtXFNuEVJwADi@vKh@pVlf1IFb5dEEA85A@hxon1S0CGMHIWRfhtxHQy6BK66LSuqgxmRcAo@AcFtDnKALqhqqxMsOqF7KVXuJKB0Xld1KVNkmNz8z5WTV/5QvSys8zO1TAxCjduyufknagDHqeH2xWfkJV@eVU5etQgYAQZ@4AYfwEQaWPutJHXemarnwUKoCFxk@oKj@YqnwUWvkEtNK3LGp@vANyxk9PCEAV8JPJyo@qBNR5XvntZN8u0NIbQho@5xdAhs3r5iKASUIHjmwXGIKW9SlFbXAx1R1HmLpjWxdA26mW687@oe6tVLkChTLPCnw00nin2fxIwIczsoQAAR9sCmjXiWkL4TDpchBokJktQuDYlGapym285RSoloAoT2F82tx4Eyr60VmCV9hZxIt2ZktQwi0xVT7pqmz8eYpWYLPJxgjhwk4o@CpKQM9WreIo1Hh/ejXwrlwN3vsJaNsFImT8XeYKSJRJlMFrhCs1/5W/eHMV1b0BkA/filypnztEAIpwo27ZVwfv5dUt2lFXulWvDh8WXcUwR1RkCLru6uA2FFBNcnW4bxJgPrg/vbpKYbzOurpnVWhXPsG6xkkvua50ol4jpqgASo9wX18j@5nK6koddeVc3bmJ73Rj7nzLt/efNlPAVN/5TGI3Xj/o2HkLvHM73nnnu/MJ326uBDRn5y6886Hdzod2Oz1vO59SCOhGtvP3iAQKABcZO11nO71hAuqQ3PkjEgLadgF1bO7canfZWJEP7HAB5oOpvtMxJZCRDz5vEUDb18hU0JA7t9rd4enCTh@@gO6wAqridn4atnOv3OkR2h0etu10De28MhZAj9GHL0BhjgUfju7cIveIZ88CDMFjIQHkI8cChrwAMmUyqsqz@c732B0qAO3irxzsPL/v/E2DnfugAIT5zZEAo3D7tvPHcATuIeh53nsKMKQxBJ6cm9iAR6obn4De@ODzxp6/RaS60cPwYqGxX2jFvRzWxcef5hy3YZQ90Y5VlHAZZIykycPv@ksom5@GyR6fLPYPat8cwlLZ3M9ad1FRtT/0X96TrN8cP6o5y2D@cJJ//nB8BKG/UfmDl@byxzWPfxy/Wvlt/53HjwKIEC099F/JrA@vJfHrl0dG/ccqP@WoPzY59p@Y1Bo/fKgtefvwD37Z8/HITP/Rc3tV0kf9SctvvzSpu0UePiClt@FhfHz6VINP1X0aPvzr28@vR57XI6p/yjY9jF8eWr88SLJ@LyYz633/vcvHj0chvxr@W6yVQSxDZCp2dT3C3345/MmUI2aLpQ6h9U@EhzgPMpz9Fz7K8PB3EbJd/tjswPZq/u@@HL53djh@xembIf2ytP6jncaX2CvdY171g/RVHNSKF5mh/xjOaIf9U2pKD8fHmIMYNkeZX//TMo93hu7FavvM89DfLPTfS3vVnL5Cy9AfJw/HL1xqelk3UsaneSVjLukfvn0aLvb23pvtNJmhflM/vP3m6GH8quinBB@@@qgTtNj@TvThKObp@ChxUon3/fdLn46fV3j/9klUY/cTvNcJ9XjMVzcfc@FI@th/DPXtNyzow9s@j63/hci7VyJPg0hpPkcxPf7r46dVUVoPeLjb2A9fSYKn4avjz9vHV7edD/fgd/L3I34C9lfDd8mOYiEPoxwNjznZL0mG0k5iSutPwLLz8PnIUedimf6vMW9I/kn6mBOSRH@Z9V733w7vjqq/au6/D19/deSng/izAl/39CA1@0d6QrOT5JMkfKWDHl7rg09L@BDXJsyS4J@rgEN0@jB/5EpHxDFv@q@WiJHwg/4gba/6h9dT5h1myPH3F5/mCf7/BcqiomFrjp/Znb4U/bmJUui9WId/kcF@94T/Hvv8GWUvEl3cf7V4@GJ4eBV7JO8V/NlPEEP@6fPNpIfStqdX6vjh81@05Wno31wfmum9zJqPv/j13T4Hft9/AaX/SOxwuLM@TXuVeZSKcQL8m3b68eLn4Qh8Qk5Qlk@vZscTJ/n9h4OZzVv@aLBm9NkwfPYkfz77sn/hgtSPf7dsPs09Vuu3w9evq4PCRD1//HktUDEk@@UPEP/xz99@9/0P//k/fzh@PfqzYzF@9kYzxUQ4VsIT4x4ff/rp/wA)

# Big idea
Each time, I pick the guess from the list of remaining words (words matching all previous guesses), such that the guess maximize the number of possible outcomes.
For example, at the start, we guess "trace". This splits the possible secrets into 150 groups, only one of which is possible based on the feedback. For the second guess, if we guess a word from that group, then there is 1 universe where we guess correctly. Thus in total, we have 150 universes where we guess correctly within the first 2 turns. By maximizing the number of groups each turn, we can make sure that there are more universes where we guess correctly early on.

Following the naive strategy above, the result is `(1, 149, 1044, 904, 178, 31, 7, 1)`. If we score by lexicographical order from left to right, without caring about the length of the tuple, then this is the largest tuple possible. Heuristically, this is good since if the left entries of the tuple are as large as possible, then the right most entries will be small. However, because the most important criteria is the length of the tuple, I have to tweak this algorithm a bit to get rid of all cases that have >5 turns.

# Optimization
- If we have too few remaining words, then we might have to guess a word outside of those, to get the best split. Specifically, I allow selecting from outside if we're at the 3rd guess (or after) and there are less than 100 remaining words.
- I brute forced search a some hard subtrees (e.g. 'trace' -> 'risen') to get the worst case at most 5 guesses.