Coder Social home page Coder Social logo

microsoft / pythonprogrammingpuzzles Goto Github PK

View Code? Open in Web Editor NEW
948.0 17.0 91.0 248.24 MB

A Dataset of Python Challenges for AI Research

License: MIT License

Python 90.12% Jupyter Notebook 7.77% Shell 2.11%
ai program-synthesis programming-competitions puzzles

pythonprogrammingpuzzles's Introduction

Python Programming Puzzles (P3)

This repo contains a dataset of Python programming puzzles which can be used to teach and evaluate an AI's programming proficiency. We present code generated by OpenAI's
codex neural network
solving many of these puzzles. We hope this dataset will grow rapidly, and it is already diverse in terms of problem difficulty, domain, and algorithmic tools needed to solve the problems. Please propose a new puzzle or browse newly proposed puzzles or contribute through pull requests.

To learn more about how well AI systems such as GPT-3 can solve these problems, read our two papers:

Programming Puzzles. Tal Schuster, Ashwin Kalyan, Oleksandr Polozov, Adam Tauman Kalai. In Proceedings of the Thirty-fifth Conference on Neural Information Processing Systems Datasets and Benchmarks Track (NeurIPS), 2021.

@inproceedings{
schuster2021programming,
title={Programming Puzzles},
author={Tal Schuster and Ashwin Kalyan and Alex Polozov and Adam Tauman Kalai},
booktitle={Thirty-fifth Conference on Neural Information Processing Systems Datasets and Benchmarks Track},
year={2021},
url={https://arxiv.org/abs/2106.05784}
}

To reproduce the results in that paper, see the solvers folder.

NEW self-teaching: In our second paper, we have Language Models (LMs) generate their own puzzles and, together with the Python interpreter, improve their own puzzle solving capability. Following our paper (arXiv, 2022), there have been several papers where an LM improves itself by checking its own solutions. However, our approach is potentially more powerful because we have the LM generate its own problems, not only its own solutions.

Language Models Can Teach Themselves to Program Better. Patrick Haluptzok, Matthew Bowers, Adam Tauman Kalai. In Proceedings of the Eleventh International Conference on Learning Representations (ICLR), 2023.

@inproceedings{
haluptzok2022selfteach,
title={Language Models Can Teach Themselves to Program Better},
author={Patrick Haluptzok, Matthew Bowers, Adam Tauman Kalai},
booktitle={Eleventh International Conference on Learning Representations (ICLR)},
year={2023},
url=https://arxiv.org/abs/2207.14502}
}

To reproduce the results in that paper, see the ICLR2023 folder.

If you just want to dive right into solving a few puzzles, try the intro notebook at Binder that shows which puzzles the AI baselines solved and which they did not, so you can see how your programming compares.

What is a Python programming puzzle?

Each puzzle takes the form of a Python function that takes an answer as an argument. The answer is an input which makes the function return True. This is called satisfying the puzzle, and that is why the puzzles are all named sat.

def sat(s: str):
    return "Hello " + s == "Hello world"

The answer to the above puzzle is the string "world" because sat("world") returns True. The puzzles range from trivial problems like this, to classic puzzles, to programming competition problems, all the way through open problems in algorithms and mathematics.

The classic Towers of Hanoi puzzle can be written as follows:

def sat(moves: List[List[int]]):  
    """
    Eight disks of sizes 1-8 are stacked on three towers, with each tower having disks in order of largest to
    smallest. Move [i, j] corresponds to taking the smallest disk off tower i and putting it on tower j, and it
    is legal as long as the towers remain in sorted order. Find a sequence of moves that moves all the disks
    from the first to last towers.
    """
    rods = ([8, 7, 6, 5, 4, 3, 2, 1], [], [])
    for [i, j] in moves:
        rods[j].append(rods[i].pop())
        assert rods[j][-1] == min(rods[j]), "larger disk on top of smaller disk"
    return rods[0] == rods[1] == []

The shortest answer is a list of 255 moves, so instead we ask for the AI to generate code that outputs an answer. In this case, the codex API generated the following code:

def sol():
    # taken from https://www.geeksforgeeks.org/c-program-for-tower-of-hanoi/
    moves = []
    def hanoi(n, source, temp, dest):
        if n > 0:
            hanoi(n - 1, source, dest, temp)
            moves.append([source, dest])
            hanoi(n - 1, temp, source, dest)
    hanoi(8, 0, 1, 2)
    return moves

This was not on its first try, but that is one of the advantages of puzzles---it is easy for the computer to check its answers so it can generate many answers until it finds one. For this puzzle, about 1 in 1,000 solutions were satisfactory. Clearly, codex has seen this problem before in other input formats---it even generated a url! (Upon closer inspection, the website exists and contains Python Tower-of-Hanoi code in a completely different format with different variable names.) On a harder, less-standard Hanoi puzzle variant that requires moving from particular start to end positions, codex didn't solve it on 10,000 attempts.

Next, consider a puzzle inspired by this easy competitive programming problem from codeforces.com website:

def sat(inds: List[int], string="Sssuubbstrissiingg"):
    """Find increasing indices to make the substring "substring"""
    return inds == sorted(inds) and "".join(string[i] for i in inds) == "substring"

Codex generated the code below, which when run gives the valid answer [1, 3, 5, 7, 8, 9, 10, 15, 16]. This satisfies this puzzle because it's an increasing list of indices which if you join the characters "Sssuubbstrissiingg" in these indices you get "substring".

def sol(string="Sssuubbstrissiingg"):
    x = "substring"
    pos = string.index(x[0])
    inds = [pos]
    while True:
        x = x[1:]
        if not x:
            return inds
        pos = string.find(x[0], pos+1)
        if pos == -1:
            return inds
        inds.append(pos)

Again, there are multiple valid answers, and again this was out of many attempts (only 1 success in 10k).

A more challenging puzzle that requires dynamic programming is the longest increasing subsequence problem which we can also describe with strings:

def sat(x: List[int], length=20, s="Dynamic programming solves this classic job-interview puzzle!!!"):
    """Find the indices of the longest substring with characters in sorted order"""
    return all(s[x[i]] <= s[x[i + 1]] and x[i + 1] > x[i] for i in range(length - 1))

Codex didn't solve this one.

The dataset also has a number of open problems in computer science and mathematics. For example,
Conway's 99-graph problem is an unsolved problem in graph theory (see also Five $1,000 Problems (Update 2017))

def sat(edges: List[List[int]]):
    """
    Find an undirected graph with 99 vertices, in which each two adjacent vertices have exactly one common
    neighbor, and in which each two non-adjacent vertices have exactly two common neighbors.
    """
    # first compute neighbors sets, N:
    N = {i: {j for j in range(99) if j != i and ([i, j] in edges or [j, i] in edges)} for i in range(99)}
    return all(len(N[i].intersection(N[j])) == (1 if j in N[i] else 2) for i in range(99) for j in range(i))

Why puzzles? One reason is that, if we can solve them better than human programmers, then we could make progress on some important algorithms problems. But until then, a second reason is that they can be valuable for training and evaluating AI systems. Many programming datasets have been proposed over the years, and several have problems of a similar nature (like programming competition problems). In puzzles, the spec is defined by code, while other datasets usually use a combination of English and a hidden test set of input-output pairs. English-based specs are notoriously ambiguous and test the system's understanding of English. And with input-output test cases, you would have to have solved a puzzle before you pose it, so what is the use there? Code-based specs have the advantage that they are unambiguous, there is no need to debug the AI-generated code or fears that it doesn't do what you want. If it solved the puzzle, then it succeeded by definition.

For more information on the motivation and how programming puzzles can help AI learn to program, see the paper:
Programming Puzzles, by Tal Schuster, Ashwin Kalyan, Alex Polozov, and Adam Tauman Kalai. 2021 (Link to be added shortly)

The problems in this repo are based on:

Notebooks

The notebooks subdirectory has some relevant notebooks. Intro.ipynb has a dozen puzzles indicating which ones the AI solved and did not Try the notebook at Binder and see how your programming compares to the AI baselines!

Demo.ipynb has the 30 problems completed by our users in a user study. Try the demo notebook and see how your programming compares to the AI baselines!

Hackathon

During a Microsoft hackathon July 27-29, 2020, several people completed 30 user study puzzles. We also had tons of fun making the puzzles in Hackathon_puzzles.ipynb. These are of a somewhat different flavor as they are more often hacks like

def sat(x):
    return x > x

where the type of x is clearly non-standard. The creators of these puzzles include github users: Adam Tauman Kalai, Alec Helbling, Alexander Vorobev, Alexander Wei, Alexey Romanov, Keith Battaochi, Kodai Sudo, Maggie Hei, Mariia Mykhailova, Misha Khodak, Monil Mehta, Philip Rosenfield, Qida Ma, Raj Bhargava, Rishi Jaiswal, Saikiran Mullaguri, Tal Schuster, and Varsha Srinivasan. You can try out the notebook at (link to be added).

Highlights

  • Numerous trivial puzzles like reversing a list, useful for learning to program
  • Classic puzzles like:
    • Towers of Hanoi
    • Verbal Arithmetic (solve digit-substitutions like SEND + MORE = MONEY)
    • The Game of Life (e.g., finding oscillators of a given period, some open)
    • Chess puzzles (e.g., knight's tour and n-queen problem variants)
  • Two-player games
    • Finding optimal strategies for Tic-Tac-Toe, Rock-Paper-Scissors, Mastermind (to add: connect four?)
    • Finding minimax strategies for zero-sum bimatrix games, which is equivalent to linear programming
    • Finding Nash equilibria of general-sum games (open, PPAD complete)
  • Math and programming competitions
    • International Mathematical Olympiad (IMO) problems
    • International Collegiate Programming Contest (ICPC) problems
    • Competitive programming problems from codeforces.com
  • Graph theory algorithmic puzzles
    • Shortest path
    • Planted clique (open)
  • Elementary algebra
    • Solving equations
    • Solving quadratic, cubic, and quartic equations
  • Number theory algorithmic puzzles:
    • Finding common divisors (e.g., using Euclid's algorithm)
    • Factoring numbers (easy for small factors, over $100k in prizes have been awarded and open for large numbers)
    • Discrete log (again open in general, easy for some)
  • Lattices
    • Learning parity (typically solved using Gaussian elimination)
    • Learning parity with noise (open)
  • Compression
    • Compress a given string given the decompression algorithm (but not the compression algorithm), or decompress a given compressed string given only the compression algorithm
    • (to add: compute huffman tree)
  • Hard math problems
    • Conway's 99-graph problem (open)
    • Finding a cycle in the Collatz process (open)

Train-test split

The file split.json contains a suggested train-test split. This split was hand-selected by the puzzle authors, who are familiar with all puzzles, so that: there is minimal overlap between related puzzles in the two splits. In particular, for pairs of related puzzles, either both were placed in the training set or the test set.

Contributing

This project welcomes contributions and suggestions. Use your creativity to help teach AI's to program! See our wiki on how to add a puzzle.

Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

See the datasheet for our dataset.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

pythonprogrammingpuzzles's People

Contributors

akalai avatar dependabot[bot] avatar haluptzok avatar kasimmahroof avatar microsoft-github-operations[bot] avatar microsoftopensource avatar spacemiqote avatar talschuster avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pythonprogrammingpuzzles's Issues

New puzzle

def sat(xs: List[int]): 
    return len(xs) == 7 and xs == xs[::-1] and sum(xs[:2]) == sum(xs[2:]) and all([x!=0 for x in xs])

Solution hidden below so that other people can try to solve it.

Reveal solution
def sol():
    return [1,1,-1,2,-1,1,1]

Please post your solutions to this puzzle in the comments using the following formatting:

<details><summary>Reveal solution</summary>

```python
def sol():
    return "world"  # replace with your solution
```
</details>

New puzzle inspired by codeforces 266B

def sat(s: List[int]):
    """
    Find a sequence of 0's and 1's so that, after n_steps of swapping each adjacent (0, 1), the target sequence
    is achieved.

    Inspired by [Codeforces Problem 266 B](https://codeforces.com/problemset/problem/266/B)
    """
    for step in range(8):
        for i in range(len(s) - 1):
            if (s[i], s[i + 1]) == (0, 1):
                (s[i], s[i + 1]) = (1, 0)
    return s == [1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Solvers, post your solutions in the comments using the following formatting:

<details><summary>Reveal solution</summary>

```python
def sol():
    return "world"  # replace with your solution
```
</details>

New Puzzle - 0CTF 2021 lalamblambdadambda

Original author of the CTF challenge is believed to be @hzqmwne

def sat(x: str): 
    """0CTF 2021 lalamblambdadambda pseudo code, all rights belong to original author of challenge"""
    buf = bytes.fromhex(s[:16])
    S0 = []
    for i in range(8):
        for j in range(8):
            S0.append(((lambda b:lambda a:a),(lambda b:lambda a:b))[1&(buf[i]>>j)])
    S1 = [True,False]
    
    f1 = (lambda c:lambda b:lambda a:c(b)(a))
    f5 = (lambda c:lambda b:lambda a:f1(a)(c)(b))
    f6 = (lambda b:lambda a:f5(b)(a))
    f7 = (lambda d:lambda c:lambda b:lambda a:f5(f5(d)(c))(f5(b)(a)))
    f8 = (lambda d:lambda c:lambda b:lambda a:f5(f6(d)(c))(f6(b)(a)))
    f9 = (lambda h:lambda g:lambda f:lambda e:lambda d:lambda c:lambda b:lambda a:f5(f8(h)(g)(f)(e))(f8(d)(c)(b)(a)))
    f12 = (lambda b:lambda a:a)
    f13 = (lambda a:f12)
    f15 = f5(f5(f5(f5(f5(f12)(f12))(f5(f12)(f12)))(f5(f5(f12)(f12))(f5(f12)(f12))))(f5(f5(f5(f12)(f12))(f5(f12)(f12)))(f5(f5(f12)(f12))(f5(f12)(f12)))))(f5(f5(f5(f5(f12)(f12))(f5(f12)(f12)))(f5(f5(f12)(f12))(f5(f12)(f12))))(f5(f5(f5(f12)(f12))(f5(f12)(f12)))(f5(f5(f12)(f12))(f5(f12)(f12)))))
    f16 = f5(f15)
    f28 = (
        (lambda b:lambda a:
      b
      (
        b
        (
          b
          (
            b
            (
              b
              (
                b
                (
                  b
                  (
                    b
                    (
                      b
                      (
                        b
                        (
                          b
                          (
                            b
                            (
                              b
                              (
                                b
                                (
                                  b
                                  (
                                    b
                                    (
                                      b
                                      (
                                        b
                                        (
                                          b
                                          (
                                            b
                                            (
                                              b
                                              (
                                                b
                                                (
                                                  b
                                                  (
                                                    b
                                                    (
                                                      b
                                                      (
                                                        b
                                                        (
                                                          b(b(b(b(b(b(a))))))
                                                        )
                                                      )
                                                    )
                                                  )
                                                )
                                              )
                                            )
                                          )
                                        )
                                      )
                                    )
                                  )
                                )
                              )
                            )
                          )
                        )
                      )
                    )
                  )
                )
              )
            )
          )
        )
      )
    )
    )
    f30 = (lambda b:lambda a:b(a)(b))
    f33 = (lambda b:lambda a:b(b)(a))
    f41 = (lambda b:lambda a:b)
    f42 = (lambda a:a)
    f43 = (lambda c:(lambda a:c(a(a)))((lambda b:c((lambda a:b(b)(a))))))
    f2 = (lambda e:lambda d:lambda c:e((lambda b:lambda a:a(b(d))))((lambda a:c))(f42))
    f3 = (lambda a:a(f13)(f41))
    f10 = (lambda a:a(f12))
    f11 = (lambda a:a(f41))
    f17 = f7(f9(f12)(f12)(f41)(f41)(f12)(f12)(f12)(f12))(f9(f12)(f41)(f41)(f12)(f41)(f41)(f41)(f12))(f9(f12)(f12)(f41)(f41)(f12)(f41)(f12)(f41))(f9(f41)(f12)(f12)(f41)(f12)(f12)(f12)(f41))
    f18 = f7(f9(f12)(f41)(f41)(f12)(f12)(f12)(f12)(f41))(f9(f41)(f12)(f41)(f12)(f12)(f12)(f12)(f41))(f9(f12)(f12)(f41)(f12)(f12)(f41)(f41)(f12))(f9(f12)(f41)(f41)(f41)(f41)(f41)(f41)(f41))
    f19 = f7(f9(f41)(f12)(f12)(f12)(f12)(f41)(f41)(f12))(f9(f41)(f41)(f41)(f41)(f12)(f12)(f41)(f12))(f9(f41)(f41)(f12)(f12)(f41)(f41)(f12)(f41))(f9(f12)(f41)(f41)(f12)(f12)(f41)(f12)(f12))
    f20 = f7(f9(f41)(f12)(f12)(f12)(f41)(f41)(f41)(f12))(f9(f12)(f41)(f12)(f41)(f41)(f41)(f41)(f41))(f9(f12)(f41)(f41)(f12)(f12)(f12)(f12)(f12))(f9(f41)(f12)(f12)(f41)(f41)(f12)(f12)(f12))
    f21 = f7(f9(f41)(f12)(f12)(f41)(f41)(f41)(f41)(f12))(f9(f12)(f12)(f41)(f41)(f12)(f41)(f41)(f41))(f9(f12)(f41)(f41)(f41)(f41)(f12)(f12)(f41))(f9(f41)(f12)(f41)(f41)(f41)(f12)(f12)(f41))
    f22 = f7(f9(f41)(f41)(f12)(f41)(f41)(f41)(f41)(f41))(f9(f41)(f12)(f12)(f41)(f41)(f12)(f41)(f41))(f9(f12)(f12)(f12)(f12)(f41)(f41)(f41)(f41))(f9(f41)(f41)(f12)(f41)(f12)(f12)(f12)(f12))
    f23 = f7(f9(f41)(f41)(f41)(f41)(f12)(f12)(f12)(f12))(f9(f41)(f41)(f12)(f12)(f41)(f41)(f12)(f12))(f9(f12)(f12)(f12)(f12)(f12)(f41)(f12)(f12))(f9(f41)(f41)(f12)(f41)(f12)(f41)(f12)(f12))
    f29 = (lambda a:f41)
    f32 = (lambda a:a(f12)(f41))
    f34 = (lambda b:lambda a:f33(f30(f32(b))(a))(f30(b)(f32(a))))
    f35 = (lambda b:lambda a:f34(b)(a))
    f36 = (lambda f:lambda e:lambda d:lambda c:(lambda b:(lambda a:f5(f11(a))(f5(f10(a))(f10(b))))(f(e(f41))(d(f41))(f11(b))))(f(e(f12))(d(f12))(c)))
    f37 = (lambda e:lambda d:lambda c:(lambda b:(lambda a:f5(f11(a))(f5(f10(a))(f10(b))))(e(d(f41))(f11(b))))(e(d(f12))(c)))
    f38 = (lambda e:lambda d:lambda c:(lambda b:(lambda a:f5(f11(a))(f5(f10(b))(f10(a))))(e(d(f12))(f11(b))))(e(d(f41))(c)))
    f39 = (lambda c:lambda b:lambda a:f30(c(b(f41))(a(f41)))(c(b(f12))(a(f12))))
    f40 = (lambda c:lambda b:lambda a:f5(c(b(f41))(a(f41)))(c(b(f12))(a(f12))))
    f0 = (lambda c:lambda b:lambda a:f5(f33(f30(c)(b))(f30(f34(c)(b))(a)))(f34(f34(c)(b))(a)))
    f14 = (
        (lambda b:lambda a:
      f10(f36(f36(f36(f36(f36(f0)))))(b)(a)(f12))
    )
    )
    f25 = (
        (lambda a:
      f10(f37(f37(f37(f37(f37(f6)))))(a)(f12))
    )
    )
    f26 = (
        (lambda a:
      f10(f38(f38(f38(f38(f38(f6)))))(a)(f12))
    )
    )
    f27 = f40(f40(f40(f40(f40(f35)))))
    f31 = (lambda b:lambda a:f33(f30(b)(a))(f30(f32(b))(f32(a))))
    f24 = f39(f39(f39(f39(f39(f31)))))
    f4 = (lambda a:f30(f24(f11(a))(f22))(f24(f10(a))(f17)))
    answer = (
        (lambda v50:lambda v49:lambda v48:lambda v47:lambda v46:lambda v45:lambda v44:lambda v43:lambda v42:lambda v41:lambda v40:lambda v39:lambda v38:lambda v37:lambda v36:lambda v35:lambda v34:lambda v33:lambda v32:lambda v31:lambda v30:lambda v29:lambda v28:lambda v27:lambda v26:lambda v25:lambda v24:lambda v23:lambda v22:lambda v21:lambda v20:lambda v19:lambda v18:lambda v17:lambda v16:lambda v15:lambda v14:lambda v13:lambda v12:lambda v11:lambda v10:lambda v9:lambda v8:lambda v7:lambda v6:lambda v5:lambda v4:lambda v3:lambda v2:lambda v1:lambda v0:lambda z:lambda y:lambda x:lambda w:lambda v:lambda u:lambda t:lambda s:lambda r:lambda q:lambda p:lambda o:lambda n:
      f4
      (
        (lambda m:lambda l:
          f10
          (
            f43
            (
              (lambda k:lambda j:lambda i:
                f3(j)(i)
                (
                  (lambda h:
                    k(f2(j))
                    (
                      (lambda g:
                        (lambda f:
                          (lambda e:
                            (lambda d:
                              (lambda c:
                                (lambda b:
                                  (lambda a:f5(c)(f5(b)(a)))
                                  (
                                    f14(d)
                                    (
                                      f27
                                      (
                                        f27(f14(f25(f25(f25(f25(b)))))(f23))(f14(b)(c))
                                      )
                                      (
                                        f14(f26(f26(f26(f26(f26(b))))))(f18)
                                      )
                                    )
                                  )
                                )
                                (
                                  f14(e)
                                  (
                                    f27
                                    (
                                      f27(f14(f25(f25(f25(f25(d)))))(f19))(f14(d)(c))
                                    )
                                    (
                                      f14(f26(f26(f26(f26(f26(d))))))(f20)
                                    )
                                  )
                                )
                              )
                              (f14(f)(f21))
                            )
                            (f10(f10(g)))
                          )
                          (f11(f10(g)))
                        )
                        (f11(g))
                      )
                      (i)
                    )
                    (h)
                  )
                )
              )
            )
            (f28)(f16(f5(m)(l)))
          )
        )
        (f7(f9(v19)(v20)(v21)(v22)(v23)(v24)(v25)(v26))(f9(v27)(v28)(v29)(v30)(v31)(v32)(v33)(v34))(f9(v35)(v36)(v37)(v38)(v39)(v40)(v41)(v42))(f9(v43)(v44)(v45)(v46)(v47)(v48)(v49)(v50)))(f7(f9(n)(o)(p)(q)(r)(s)(t)(u))(f9(v)(w)(x)(y)(z)(v0)(v1)(v2))(f9(v3)(v4)(v5)(v6)(v7)(v8)(v9)(v10))(f9(v11)(v12)(v13)(v14)(v15)(v16)(v17)(v18)))
      )
    )
    (S0[0])(S0[1])(S0[2])(S0[3])(S0[4])(S0[5])(S0[6])(S0[7])(S0[8])(S0[9])(S0[10])(S0[11])(S0[12])(S0[13])(S0[14])(S0[15])(S0[16])(S0[17])(S0[18])(S0[19])(S0[20])(S0[21])(S0[22])(S0[23])(S0[24])(S0[25])(S0[26])(S0[27])(S0[28])(S0[29])(S0[30])(S0[31])(S0[32])(S0[33])(S0[34])(S0[35])(S0[36])(S0[37])(S0[38])(S0[39])(S0[40])(S0[41])(S0[42])(S0[43])(S0[44])(S0[45])(S0[46])(S0[47])(S0[48])(S0[49])(S0[50])(S0[51])(S0[52])(S0[53])(S0[54])(S0[55])(S0[56])(S0[57])(S0[58])(S0[59])(S0[60])(S0[61])(S0[62])(S0[63])(S1[0])(S1[1])
    )

    return answer

Solvers, post your solutions in the comments using the following formatting:

Reveal solution
def sol():
    return 'fe54620f00feb0ad'

New puzzle

def sat(inds: List[int]):
    return inds == sorted(inds) and "".join("enlightenment"[i] for i in inds) == "intelligent"

Please post your solutions to this puzzle in the comments using the following formatting:

<details><summary>Reveal solution</summary>
```python
def sol():
    return "world" # replace with your solution
```
</details>

New puzzle based on codeforces 133 A (harder)

def sat(s: str):
    """
    Find a string with certain characters, simple codeforces problem

    Inspired by [Codeforces Problem 133 A](https://codeforces.com/problemset/problem/133/A)
    """
    for c in ["H", "Q", "9"]:
        if s.count(c) != 17:
            return False
    return True

Solvers, post your solutions in the comments using the following formatting:

<details><summary>Reveal solution</summary>

```python
def sol():
    return "world"  # replace with your solution
```
</details>

New puzzle from codeforces 136 A

def sat(indexes):
    """
    Given a list of integers representing a permutation, invert the permutation.

    Inspired by [Codeforces Problem 136 A](https://codeforces.com/problemset/problem/136/A)
    """
    target=[1, 3, 4, 2, 5, 6, 7]
    for i in range(1, len(target) + 1):
        if target[indexes[i - 1] - 1] != i:
            return False
    return True

Solvers, post your solutions in the comments using the following formatting:

<details><summary>Reveal solution</summary>

```python
def sol():
    return "world"  # replace with your solution
```
</details>

New puzzle: next permutation in lexicographical order

def sat(nx: List[int], x=[1, 2, 4, 3]): 
    """Find the next permutation of a given list by lexicographical ordering."""
    import itertools
    assert len(x) == len(nx) and set(x) == set(nx)
    return x < nx and all([list(perm) <= x or list(perm) >= nx for perm in list(itertools.permutations(x))])
Reveal solution
def sol():
    return [1, 3, 2, 4]
Reveal solution
def sol():
    import itertools
    perms = sorted([list(p) for p in list(itertools.permutations(x))])
    return perms[perms.index(x) + 1]

Solvers, post your solutions in the comments using the following formatting:

<details><summary>Reveal solution</summary>

```python
def sol():
    return "world"  # replace with your solution
```
</details>

New puzzle

def sat(s: str):
    """
    Find a string with certain characters, simple codeforces problem

    Inspired by [Codeforces Problem 133 A](https://codeforces.com/problemset/problem/133/A)
    """
    for c in ["H", "Q", "9"]:
        if c not in s:
            return False
    return True

Solvers, post your solutions in the comments using the following formatting:

<details><summary>Reveal solution</summary>

```python
def sol():
    return "world"  # replace with your solution
```
</details>

New puzzle

def sat(x: str): 
    return ("hello" * 1000).count(x) == 999

Solution hidden below so that other people can try to solve it.

Reveal solution
def sol():
    return "oh"

Please post your solutions to this puzzle in the comments using the following formatting:

<details><summary>Reveal solution</summary>
```python
def sol():
    return "world"  # replace with your solution
```
</details>

New puzzle: Find a number with a number of 4s and 7s that has only 4s and 7s

def sat(d: int):
    """
    Find a number bigger than n whose decimal representation has k 4's and 7's where k's decimal representation
    consists only of 4's and 7's

    Inspired by [Codeforces Problem 110 A](https://codeforces.com/problemset/problem/110/A)
    """
    return d > 123456789 and set(str(str(d).count("4") + str(d).count("7"))) <= {"4", "7"}

Solvers, post your solutions in the comments using the following formatting:

<details><summary>Reveal solution</summary>

```python
def sol():
    return "world"  # replace with your solution
```
</details>

New puzzle: lucky numbers inspired by codeforces 122A

def sat(d: int, n=6002685529):
    """
    Find a integer factor of n whose decimal representation consists only of 7's and 4's.

    Inspired by [Codeforces Problem 122 A](https://codeforces.com/problemset/problem/122/A)
    """
    return n % d == 0 and set(str(d)) <= {"4", "7"}

Solvers, post your solutions in the comments using the following formatting:

<details><summary>Reveal solution</summary>

```python
def sol():
    return "world"  # replace with your solution
```
</details>

New puzzle from Codeforces Problem 467 A

def sat(ans: List[List[int]]):
    """
    Find a list of lists of two integers where the number of pairs in which the second number is more than
    two greater than the first number is a given constant

    Inspired by [Codeforces Problem 467 A](https://codeforces.com/problemset/problem/467/A)
    """
    target = 17
    for i in range(len(ans)):
        a, b = ans[i]
        if b - a >= 2:
            target -= 1
    return target == 0

Solvers, post your solutions in the comments using the following formatting:

<details><summary>Reveal solution</summary>

```python
def sol():
    return "world"  # replace with your solution
```
</details>

New puzzle - DiceCTF 2021 - Lambda

def sat(s: str):
    """DiceCTF 2021 lambda pseudo code, all rights belong to original author of challenge"""
    __import__('sys').setrecursionlimit(3000)

    # -----
    # This section is just used to implement tail-recursion.
    # You probably don't need to reverse this but you can try if you want ;p
    class TR(Exception):
        SEEN = []
        
        def __init__(self, key, args, kwargs):
            self.key = key
            self.args = args
            self.kwargs = kwargs

    def T(fn, name=''):
        def _fn(*args, **kwargs):
            key = id(_fn)
            if key in TR.SEEN:
                raise TR(key, args, kwargs)
            else:
                TR.SEEN.append(key)
                while True:
                    try:
                        val = fn(*args, **kwargs)
                        TR.SEEN = TR.SEEN[:TR.SEEN.index(key)]
                        return val
                    except TR as e:
                        if e.key != key:
                            raise
                        else:
                            args = e.args
                            kwargs = e.kwargs
                            
                        TR.SEEN = TR.SEEN[:TR.SEEN.index(key)+1]

        return _fn

    # -----
    # Sice machine:

    ____=lambda _:lambda __,**___:_(*__,**___)
    _____=____(lambda _,*__:_)
    ______=____(lambda _,*__:__)
    _______=____(lambda _,__:_)
    ________=____(lambda _,__:__)
    _________=lambda *_:_
    __________=lambda _,__,___:_____(______(_________(*(((),)*(_==())),___,__)))()
    ___________=lambda _:(_,)
    ____________=____(lambda *_,___=():__________(_,lambda:____________(______(_),___=___________(___)),lambda:___))
    _____________=____(lambda *_:_________(*______(_),_____(_)))
    ______________=lambda _,__,___:__________(_,lambda:______________(_____(_),___(__),___),lambda:__)
    _______________=T(lambda _,__,___:__________(_,lambda:_______________(_____(_),___(__),___),lambda:__))
    ________________=____(lambda *_:_______________(_____(____________(_)),_,_____________))
    _________________=____(lambda *_:__________(______(_),lambda:_________________(_________(___________(_____(_)),*______(______(_)))),lambda:___________(_____(_))))
    __________________=lambda _:_______________(_,0,lambda __:__+1)
    ___________________=lambda _,__,___:__________(_,lambda:___________________(______(_),__,_________(*___,__(_____(_)))),lambda:___)
    ____________________=lambda _,__:___________________(_,__,())
    _____________________=lambda _,__,___:(__________(_______(_____(__)),lambda:__________(_______(_______(_____(__))),lambda:((_________(_____(___),*______(_)),_____________(__),______(___))),lambda:((_,_____________(__),_________(_____(_),*___)))),lambda:__________(_______(________(_____(__))),lambda:__________(_______(_______(________(_____(__)))),lambda:((______________(_____(___),_,_____________),_____________(__),______(___))),lambda:((______________(_____(___),_,________________),_____________(__),______(___))),),lambda:__________(_______(________(________(_____(__)))),lambda:__________(_______(_______(________(________(_____(__))))),lambda:(_,______________(_____(_______(_______(________(________(_____(__)))))),__,________________),___),lambda:(_,______________(_____(________(_______(________(________(_____(__)))))),__,_____________),___)),lambda:__________(_______(________(________(________(_____(__))))),lambda:__________(_______(_______(________(________(________(_____(__)))))),lambda:(_,_____________(__),_________(_____(_______(_______(________(________(________(_____(__))))))),*___)),lambda:(_,_____________(__),_________(_____(_______________(_____(________(_______(________(________(________(_____(__))))))),___,_____________)),*___))),lambda:__________(_______(________(________(________(________(_____(__)))))),lambda:__________(_______(_______(________(________(________(________(_____(__))))))),lambda:(_,__________(_____(___),lambda:_____________(__),lambda:_____________(_____________(__))),______(___)),lambda:(_,______________(_____(___),__,_____________),______(___))),lambda:__________(_______(________(________(________(________(________(_____(__))))))),lambda:__________(_______(_______(________(________(________(________(________(_____(__)))))))),lambda:(_,_____________(__),_________(_______________(_____(___),_____(______(___)),___________),*______(______(___)))),lambda:(_,_____________(__),_________(_______________(_____(___),_____(______(___)),_____),*______(______(___))))),lambda:())))))))
    ______________________=T(lambda _,__,___:__________(_____(__),lambda:______________________(*_____________________(_,__,___)),lambda:_))
    _______________________=lambda _,__:____________________(______________________(((),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),()),__,_________(*____________________(____________________(_,lambda _:((),)*_),_________________),*(((),(),(),(),(),(),(),(),(),(),(),(),(),(),(),())))),__________________)

    # -----

    def load(cs, i=0):
        objs = []
        while True:
            if cs[i+1] == ')':
                return tuple(objs), i+1
            elif cs[i+1] == '(':
                obj, i = load(cs, i+1)
                objs.append(obj)
            elif cs[i+1] == ',':
                i += 1

    # this is apparently "too nested" for the native python parser, so we need to use a custom parser
    prog_string = '(((),((),((),((((((((),),),),),),()),())))),((),((((),),()),())),((),((),(((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),()))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((((),),()),()),((),((),((),(((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),(((((),),),()),())))),((),((),((),((),((),(((),((),)),())))))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),(((((),),),()),())))),((),((),((),((),((),(((),((),)),())))))),((((),),()),()),((),((),((),(((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),((),((((),),()),()))))),((),((),(((),((((((),),),),),)),()))),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),(((),((((((((((),),),),),),),),),)),()))),((),((),((),(((((),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),((),((((),),()),()))))),((),((),(((),((((),),),)),()))),((),((),(((),(((((((((((),),),),),),),),),),)),()))),((),((),(((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),()))),(((),((),)),()),((),((),((),((),((((),),()),()))))),((),((),(((),((((),),),)),()))),((),((),(((),((((),),),)),()))),((),((),(((),(((((),),),),)),()))),((),((),((),((((),),()),())))),((),((),(((),((((),),),)),()))),((),((),((),(((((),),),()),())))),((),((),((),((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),((),((),((((),),()),())))))),((),((),((),((),(((),((),)),()))))),((),((),((),(((((),),),()),())))),((),((((),),()),())),((((),),()),()),((),((),((),(((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),((((),),()),()),(((),((),)),()),((),((),((),(((((),),),()),())))),((),((),((),((),((),(((),((),)),())))))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),(((((),),),()),())))),((),((),((),((),((),(((),((),)),())))))),((((),),()),()),((),((),((),(((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),((),((((),),()),()))))),((),((),(((),((((((),),),),),)),()))),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),(((),((((((((((((),),),),),),),),),),),)),()))),((),((),((),(((((),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),((),((((),),()),()))))),((),((),(((),((((),),),)),()))),((),((),(((),(((((((((((),),),),),),),),),),)),()))),((),((),((),(((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),((),((),(((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),()))),(((),((),)),()),((),((),((),((),((((),),()),()))))),((),((),(((),((((),),),)),()))),((),((),(((),((((),),),)),()))),((),((),(((),(((((),),),),)),()))),((),((),((),((((),),()),())))),((),((),(((),((((),),),)),()))),((),((),((),(((((),),),()),())))),((),((),((),((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),((),((),((((),),()),())))))),((),((),((),((),(((),((),)),()))))),((),((),((),(((((),),),()),())))),((),((((),),()),())),((((),),()),()),((),((),((),(((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),((((),),()),()),((),((),(((),(((((((((((),),),),),),),),),),)),()))),(((),((),)),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),((),((),(((),((),)),())))))),((),((),((),(((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),(((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),((((((),),),),()),())))),((),((((),),()),())),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),(((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),()))),((),((),((),((),((((),),()),()))))),((),((),(((),((((),),),)),()))),((),((),(((),((((((),),),),),)),()))),((),((),((),((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),((),((),(((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),()))),((),((),((),((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),(((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),((),((),((((),),()),())))))),((),((),((),((),(((),((),)),()))))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),(((((((((((((((((),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),((((),),()),())))),((((),),()),()),((),((),(((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),()))),((),((),((),(((((((((((((((((((((),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),((),((),((((),),()),())))))),((),((),((),((),((),((((),),()),())))))),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),((((((),),),),()),())))),((),((((),),()),())),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),(((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),()))),((),((),((),(((((((((((((((((((((),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),(((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),((((),),()),()),((),((),((),((((((),),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),(((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((((),),()),()),((),((),((),((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),((),((),((((),),()),())))))),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),((((((((),),),),),),()),())))),((),((((),),()),())),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),(((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),()))),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),(((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),()))),((),((),((),(((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),((),((),((((),),()),())))))),((((),),()),()),((),((),((),((((((((((((((((((((),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),(((((),),),()),())))),((),((),((),((),((),(((),((),)),())))))),((((),),()),()),(((),((),)),()),((),((),((),((),((((),),()),()))))),((),((),(((),((((),),),)),()))),((),((),(((),((((((),),),),),)),()))),((),((),((),((((((((),),),),),),()),())))),((),((((),),()),())),((),((),(((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),()))),((),((),((),((((((((),),),),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),(((((((((((((((((((),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),(((),((),)),()),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),((),((),((((),),()),())))))),((),((),((),((),(((),((),)),()))))),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),(((),(((),),)),())))),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),(((),((((((),),),),),)),())))),((),((),((),(((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),(((),(((((((((),),),),),),),),)),())))),((),((),((),(((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),(((),((((((((((((),),),),),),),),),),),)),())))),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),(((),(((((((((((((((),),),),),),),),),),),),),),)),())))),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),(((),((((((((((((((((((),),),),),),),),),),),),),),),),),)),())))),((),((),((),((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),(((),(((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),)),())))),((),((),((),((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),(((),((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),)),())))),((),((),((),(((((),),),()),())))),((),((),((),(((),(((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),)),())))),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),(((),((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),())))),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),(((),(((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),())))),((),((),((),(((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),(((),((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),())))),((),((),((),((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),(((),(((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),())))),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),(((),((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),())))),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),(((),(((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),())))),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),(((),((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),())))),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),(((),(((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),())))),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),(((),((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),())))),((),((),((),(((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),()),())))),((),((),((),(((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),())))),((),((),((),((((((((((((((((((((),),),),),),),),),),),),),),),),),),()),())))),((),((),((),(((((((((((((((((((((),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),(((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),()))),((),((),((),((),((((),),()),()))))),((),((),(((),((((((),),),),),)),()))),((),((),((),(((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),((),((),(((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),()))),((),((),((),(((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),()),())))),((),((((),),()),())),((),((),((),((((),),()),())))),((((),),()),()),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),((((),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),(((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),()),())))),((),(((),((),)),())),((),((),(((),(((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),)),()))),((),((),((),((((),),()),())))),((((),),()),()),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),(((((((((((((((((((((((((((((((((((((),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),((((),),()),())))),((((),),()),()),((),((),((),(((((),),),()),())))),((),((((),),()),())),((),((),((),(((((((((((((),),),),),),),),),),),()),())))),((),(((),((),)),())),())'
    prog, _ = load(prog_string)

    flag = s.encode('ascii')

    # --- takes 1-2 minutes to check flag
    o = _______________________(flag, prog)
    # ---

    output = bytes(o[:o.index(0)]).decode('ascii')

    return output == 'Correct!'

Solvers, post your solutions in the comments using the following formatting:

Reveal solution
def sol():
    return 'dice{Al0nz0_Churc4}'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.