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
Semi-supevised Semantic Segmentation with High- and Low-level Consistency

Semi-supevised Semantic Segmentation with High- and Low-level Consistency This Pytorch repository contains the code for our work Semi-supervised Seman

123 Dec 30, 2022
An implementation of the [Hierarchical (Sig-Wasserstein) GAN] algorithm for large dimensional Time Series Generation

Hierarchical GAN for large dimensional financial market data Implementation This repository is an implementation of the [Hierarchical (Sig-Wasserstein

11 Nov 29, 2022
The official GitHub repository for the Argoverse 2 dataset.

Argoverse 2 API Official GitHub repository for the Argoverse 2 family of datasets. If you have any questions or run into any problems with either the

Argo AI 156 Dec 23, 2022
Location-Sensitive Visual Recognition with Cross-IOU Loss

The trained models are temporarily unavailable, but you can train the code using reasonable computational resource. Location-Sensitive Visual Recognit

Kaiwen Duan 146 Dec 25, 2022
Public scripts, services, and configuration for running a smart home K3S network cluster

makerhouse_network Public scripts, services, and configuration for running MakerHouse's home network. This network supports: TODO features here For mo

Scott Martin 1 Jan 15, 2022
BuildingNet: Learning to Label 3D Buildings

BuildingNet This is the implementation of the BuildingNet architecture described in this paper: Paper: BuildingNet: Learning to Label 3D Buildings Arx

16 Nov 07, 2022
Catch-all collection of generative art made using processing

Generative art with Processing.py Some art I have created for fun. Dependencies Processing for Python, see how to download/use here Packages contained

2 Mar 12, 2022
Multi-label classification of retinal disorders

Multi-label classification of retinal disorders This is a deep learning course project. The goal is to develop a solution, using computer vision techn

Sundeep Bhimireddy 1 Jan 29, 2022
Jupyter notebooks showing best practices for using cx_Oracle, the Python DB API for Oracle Database

Python cx_Oracle Notebooks, 2022 The repository contains Jupyter notebooks showing best practices for using cx_Oracle, the Python DB API for Oracle Da

Christopher Jones 13 Dec 15, 2022
This codebase is the official implementation of Test-Time Classifier Adjustment Module for Model-Agnostic Domain Generalization (NeurIPS2021, Spotlight)

Test-Time Classifier Adjustment Module for Model-Agnostic Domain Generalization This codebase is the official implementation of Test-Time Classifier A

47 Dec 28, 2022
Gated-Shape CNN for Semantic Segmentation (ICCV 2019)

GSCNN This is the official code for: Gated-SCNN: Gated Shape CNNs for Semantic Segmentation Towaki Takikawa, David Acuna, Varun Jampani, Sanja Fidler

859 Dec 26, 2022
Rational Activation Functions - Replacing Padé Activation Units

Rational Activations - Learnable Rational Activation Functions First introduce as PAU in Padé Activation Units: End-to-end Learning of Activation Func

<a href=[email protected]"> 38 Nov 22, 2022
Improving Factual Completeness and Consistency of Image-to-text Radiology Report Generation

Improving Factual Completeness and Consistency of Image-to-text Radiology Report Generation The reference code of Improving Factual Completeness and C

46 Dec 15, 2022
GAN-STEM-Conv2MultiSlice - Exploring Generative Adversarial Networks for Image-to-Image Translation in STEM Simulation

GAN-STEM-Conv2MultiSlice GAN method to help covert lower resolution STEM images generated by convolution methods to higher resolution STEM images gene

UW-Madison Computational Materials Group 2 Feb 10, 2021
Image Classification - A research on image classification and auto insurance claim prediction, a systematic experiments on modeling techniques and approaches

A research on image classification and auto insurance claim prediction, a systematic experiments on modeling techniques and approaches

0 Jan 23, 2022
đź’ˇ Type hints for Numpy

Type hints with dynamic checks for Numpy! (âť’) Installation pip install nptyping (âť’) Usage (âť’) NDArray nptyping.NDArray lets you define the shape and

Ramon Hagenaars 377 Dec 28, 2022
ReConsider is a re-ranking model that re-ranks the top-K (passage, answer-span) predictions of an Open-Domain QA Model like DPR (Karpukhin et al., 2020).

ReConsider ReConsider is a re-ranking model that re-ranks the top-K (passage, answer-span) predictions of an Open-Domain QA Model like DPR (Karpukhin

Facebook Research 47 Jul 26, 2022
Multi-view 3D reconstruction using neural rendering. Unofficial implementation of UNISURF, VolSDF, NeuS and more.

Volume rendering + 3D implicit surface Showcase What? previous: surface rendering; now: volume rendering previous: NeRF's volume density; now: implici

Jianfei Guo 682 Jan 04, 2023
Pytorch implementation of U-Net, R2U-Net, Attention U-Net, and Attention R2U-Net.

pytorch Implementation of U-Net, R2U-Net, Attention U-Net, Attention R2U-Net U-Net: Convolutional Networks for Biomedical Image Segmentation https://a

leejunhyun 2k Jan 02, 2023
PyTorch wrappers for using your model in audacity!

audacitorch This package contains utilities for prepping PyTorch audio models for use in Audacity. More specifically, it provides abstract classes for

Hugo Flores GarcĂ­a 130 Dec 14, 2022