A Dataset of Python Challenges for AI Research

Overview

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 hope this dataset with grow rapidly, and it is already diverse in terms of problem difficult, domain, and algorithmic tools needed to solve the problems. Please contribute!

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

Programming Puzzles. Tal Schuster, Ashwin Kalyan, Oleksandr Polozov, Adam Tauman Kalai.

@misc{schuster2021programming,
      title={Programming Puzzles}, 
      author={Tal Schuster and Ashwin Kalyan and Oleksandr Polozov and Adam Tauman Kalai},
      year={2021},
      eprint={2106.05784},
      archivePrefix={arXiv},      
}

What is a python programming puzzle?

Each puzzle takes the form of a python function that takes an answer as an argument. The goal is to find an answer 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. A slightly harder example is:

def sat(s: str):  
    """find a string with 1000 o's but no consecutive o's."""
    return s.count("o") == 1000 and s.count("oo") == 0

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

from typing import List

def sat(x: List[int], s="Dynamic programming solves this classic job-interview puzzle!!!"): 
    """Find the indexes (possibly negative!) of the longest monotonic subsequence"""    
    return all(s[x[i]] <= s[x[i+1]] and x[i+1] > x[i] for i in range(25))

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

def sat(moves: List[List[int]]):  
    """moves is list of [from, to] pairs"""
    t = ([8, 7, 6, 5, 4, 3, 2, 1], [], [])  # towers state
    return all(t[j].append(t[i].pop()) or t[j][-1] == min(t[j]) for i, j in moves) and t[0] == t[1]

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)

Click here to browse the puzzles

The problems in this repo are based on:

Notebooks

The notebooks subdirectory has some relevant notebooks. Demo.ipynb has the 30 problems completed by our users in a user study. Try the notebook at Binder 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 f(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, Maggie Hei, 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)

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.

Comments
  • Fix capitalization of the word 'Python' in README.md

    Fix capitalization of the word 'Python' in README.md

    Here's a small fix to the Readme I made.

    Really interesting project you have here 💪

    I hope I'll be able to contribute more to the project in the future!

    opened by KasimMahroof 1
  • Bump numpy from 1.19.1 to 1.22.0 in /solvers/codex

    Bump numpy from 1.19.1 to 1.22.0 in /solvers/codex

    Bumps numpy from 1.19.1 to 1.22.0.

    Release notes

    Sourced from numpy's releases.

    v1.22.0

    NumPy 1.22.0 Release Notes

    NumPy 1.22.0 is a big release featuring the work of 153 contributors spread over 609 pull requests. There have been many improvements, highlights are:

    • Annotations of the main namespace are essentially complete. Upstream is a moving target, so there will likely be further improvements, but the major work is done. This is probably the most user visible enhancement in this release.
    • A preliminary version of the proposed Array-API is provided. This is a step in creating a standard collection of functions that can be used across application such as CuPy and JAX.
    • NumPy now has a DLPack backend. DLPack provides a common interchange format for array (tensor) data.
    • New methods for quantile, percentile, and related functions. The new methods provide a complete set of the methods commonly found in the literature.
    • A new configurable allocator for use by downstream projects.

    These are in addition to the ongoing work to provide SIMD support for commonly used functions, improvements to F2PY, and better documentation.

    The Python versions supported in this release are 3.8-3.10, Python 3.7 has been dropped. Note that 32 bit wheels are only provided for Python 3.8 and 3.9 on Windows, all other wheels are 64 bits on account of Ubuntu, Fedora, and other Linux distributions dropping 32 bit support. All 64 bit wheels are also linked with 64 bit integer OpenBLAS, which should fix the occasional problems encountered by folks using truly huge arrays.

    Expired deprecations

    Deprecated numeric style dtype strings have been removed

    Using the strings "Bytes0", "Datetime64", "Str0", "Uint32", and "Uint64" as a dtype will now raise a TypeError.

    (gh-19539)

    Expired deprecations for loads, ndfromtxt, and mafromtxt in npyio

    numpy.loads was deprecated in v1.15, with the recommendation that users use pickle.loads instead. ndfromtxt and mafromtxt were both deprecated in v1.17 - users should use numpy.genfromtxt instead with the appropriate value for the usemask parameter.

    (gh-19615)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump numpy from 1.19.1 to 1.22.0 in /solvers/gpt3

    Bump numpy from 1.19.1 to 1.22.0 in /solvers/gpt3

    Bumps numpy from 1.19.1 to 1.22.0.

    Release notes

    Sourced from numpy's releases.

    v1.22.0

    NumPy 1.22.0 Release Notes

    NumPy 1.22.0 is a big release featuring the work of 153 contributors spread over 609 pull requests. There have been many improvements, highlights are:

    • Annotations of the main namespace are essentially complete. Upstream is a moving target, so there will likely be further improvements, but the major work is done. This is probably the most user visible enhancement in this release.
    • A preliminary version of the proposed Array-API is provided. This is a step in creating a standard collection of functions that can be used across application such as CuPy and JAX.
    • NumPy now has a DLPack backend. DLPack provides a common interchange format for array (tensor) data.
    • New methods for quantile, percentile, and related functions. The new methods provide a complete set of the methods commonly found in the literature.
    • A new configurable allocator for use by downstream projects.

    These are in addition to the ongoing work to provide SIMD support for commonly used functions, improvements to F2PY, and better documentation.

    The Python versions supported in this release are 3.8-3.10, Python 3.7 has been dropped. Note that 32 bit wheels are only provided for Python 3.8 and 3.9 on Windows, all other wheels are 64 bits on account of Ubuntu, Fedora, and other Linux distributions dropping 32 bit support. All 64 bit wheels are also linked with 64 bit integer OpenBLAS, which should fix the occasional problems encountered by folks using truly huge arrays.

    Expired deprecations

    Deprecated numeric style dtype strings have been removed

    Using the strings "Bytes0", "Datetime64", "Str0", "Uint32", and "Uint64" as a dtype will now raise a TypeError.

    (gh-19539)

    Expired deprecations for loads, ndfromtxt, and mafromtxt in npyio

    numpy.loads was deprecated in v1.15, with the recommendation that users use pickle.loads instead. ndfromtxt and mafromtxt were both deprecated in v1.17 - users should use numpy.genfromtxt instead with the appropriate value for the usemask parameter.

    (gh-19615)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • New puzzle based on codeforces 133 A (harder)

    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 
    opened by akalai 2
  • New puzzle - DiceCTF 2021 - Lambda

    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}'
    
    New-puzzle 
    opened by ThinerDAS 0
  • New Puzzle - 0CTF 2021 lalamblambdadambda

    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 
    opened by ThinerDAS 0
  • New puzzle from codeforces 136 A

    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 
    opened by akalai 0
Releases(v0.2)
  • v0.2(Nov 8, 2021)

    Version for camera-ready paper for the NeurIPS proceedings. Added puzzles, including puzzles inspired by HumanEval. Added codex experiments. We are up to 397 puzzles.

    Source code(tar.gz)
    Source code(zip)
  • v0.1(Jun 4, 2021)

Owner
Microsoft
Open source projects and samples from Microsoft
Microsoft
[CVPR'20] TTSR: Learning Texture Transformer Network for Image Super-Resolution

TTSR Official PyTorch implementation of the paper Learning Texture Transformer Network for Image Super-Resolution accepted in CVPR 2020. Contents Intr

Multimedia Research 689 Dec 28, 2022
PyTorch implementation of "VRT: A Video Restoration Transformer"

VRT: A Video Restoration Transformer Jingyun Liang, Jiezhang Cao, Yuchen Fan, Kai Zhang, Rakesh Ranjan, Yawei Li, Radu Timofte, Luc Van Gool Computer

Jingyun Liang 837 Jan 09, 2023
Pytorch code for paper "Image Compressed Sensing Using Non-local Neural Network" TMM 2021.

NL-CSNet-Pytorch Pytorch code for paper "Image Compressed Sensing Using Non-local Neural Network" TMM 2021. Note: this repo only shows the strategy of

WenxueCui 7 Nov 07, 2022
RuDOLPH: One Hyper-Modal Transformer can be creative as DALL-E and smart as CLIP

[Paper] [Хабр] [Model Card] [Colab] [Kaggle] RuDOLPH 🦌 🎄 ☃️ One Hyper-Modal Transformer can be creative as DALL-E and smart as CLIP Russian Diffusio

AI Forever 232 Jan 04, 2023
[NeurIPS 2020] Official repository for the project "Listening to Sound of Silence for Speech Denoising"

Listening to Sounds of Silence for Speech Denoising Introduction This is the repository of the "Listening to Sounds of Silence for Speech Denoising" p

Henry Xu 40 Dec 20, 2022
A set of tools to pre-calibrate and calibrate (multi-focus) plenoptic cameras (e.g., a Raytrix R12) based on the libpleno.

COMPOTE: Calibration Of Multi-focus PlenOpTic camEra. COMPOTE is a set of tools to pre-calibrate and calibrate (multifocus) plenoptic cameras (e.g., a

ComSEE - Computers that SEE 4 May 10, 2022
Python TFLite scripts for detecting objects of any class in an image without knowing their label.

Python TFLite scripts for detecting objects of any class in an image without knowing their label.

Ibai Gorordo 42 Oct 07, 2022
Code for the TIP 2021 Paper "Salient Object Detection with Purificatory Mechanism and Structural Similarity Loss"

PurNet Project for the TIP 2021 Paper "Salient Object Detection with Purificatory Mechanism and Structural Similarity Loss" Abstract Image-based salie

Jinming Su 4 Aug 25, 2022
Exploring Versatile Prior for Human Motion via Motion Frequency Guidance (3DV2021)

Exploring Versatile Prior for Human Motion via Motion Frequency Guidance [Video Demo] [Paper] Installation Requirements Python 3.6 PyTorch 1.1.0 Pleas

Jiachen Xu 19 Oct 28, 2022
PyJokes - Joking around with Python library pyjokes

Hi, it's Muhaimin again 👋 This is something unorthodox but cool. Don't forget t

Muhaimin A. Salay Kanton 1 Feb 02, 2022
Mortgage-loan-prediction - Show how to perform advanced Analytics and Machine Learning in Python using a full complement of PyData utilities

Mortgage-loan-prediction - Show how to perform advanced Analytics and Machine Learning in Python using a full complement of PyData utilities

Deepak Nandwani 1 Dec 31, 2021
An official PyTorch Implementation of Boundary-aware Self-supervised Learning for Video Scene Segmentation (BaSSL)

An official PyTorch Implementation of Boundary-aware Self-supervised Learning for Video Scene Segmentation (BaSSL)

Kakao Brain 72 Dec 28, 2022
CATE: Computation-aware Neural Architecture Encoding with Transformers

CATE: Computation-aware Neural Architecture Encoding with Transformers Code for paper: CATE: Computation-aware Neural Architecture Encoding with Trans

16 Dec 27, 2022
Data augmentation for NLP, accepted at EMNLP 2021 Findings

AEDA: An Easier Data Augmentation Technique for Text Classification This is the code for the EMNLP 2021 paper AEDA: An Easier Data Augmentation Techni

Akbar Karimi 81 Dec 09, 2022
Standalone pre-training recipe with JAX+Flax

Sabertooth Sabertooth is standalone pre-training recipe based on JAX+Flax, with data pipelines implemented in Rust. It runs on CPU, GPU, and/or TPU, b

Nikita Kitaev 26 Nov 28, 2022
Paddle implementation for "Cross-Lingual Word Embedding Refinement by ℓ1 Norm Optimisation" (NAACL 2021)

L1-Refinement Paddle implementation for "Cross-Lingual Word Embedding Refinement by ℓ1 Norm Optimisation" (NAACL 2021) 🙈 A more detailed readme is co

Lincedo Lab 4 Jun 09, 2021
Source code for the paper "PLOME: Pre-training with Misspelled Knowledge for Chinese Spelling Correction" in ACL2021

PLOME:Pre-training with Misspelled Knowledge for Chinese Spelling Correction (ACL2021) This repository provides the code and data of the work in ACL20

197 Nov 26, 2022
PyTorch Implementation of Daft-Exprt: Robust Prosody Transfer Across Speakers for Expressive Speech Synthesis

PyTorch Implementation of Daft-Exprt: Robust Prosody Transfer Across Speakers for Expressive Speech Synthesis

Ubisoft 76 Dec 30, 2022
Video Background Music Generation with Controllable Music Transformer (ACM MM 2021 Oral)

CMT Code for paper Video Background Music Generation with Controllable Music Transformer (ACM MM 2021 Best Paper Award) [Paper] [Site] Directory Struc

Zhaokai Wang 198 Dec 27, 2022
Transport Mode detection - can detect the mode of transport with the help of features such as acceeration,jerk etc

title emoji colorFrom colorTo sdk app_file pinned Transport_Mode_Detector 🚀 purple yellow gradio app.py false Configuration title: string Display tit

Nishant Rajadhyaksha 3 Jan 16, 2022