11
\$\begingroup\$

"A picture is worth a thousand words"—so the old saying goes. The average word is about four characters long, so a picture conveys 4kB of information. But how much entropy, rather than information, can a picture convey?

Your task is to generate an image, exactly 4,000 bytes in size, with the highest entropy possible. You may use any language, libraries, or image format you choose, and you may output to the console or to a file so long as you upload your image here.

Scoring

Your score is the compression ratio (4000 ÷ compressed size) when your image is compressed with GNU tar version 1.28 and gzip version 1.6, using the DEFLATE algorithm and default settings — specifically, the command tar -czvf out.tar.gz image. The smallest compression ratio wins.

\$\endgroup\$
  • 1
    \$\begingroup\$ tar includes metadata, including mtime, in output files by default. This affects the final compressed file size - some mtimes compress better than others. Changing the command to gzip -n image would make the output size deterministic regardless of mtime (and input file name). \$\endgroup\$ – Nnnes Aug 13 at 22:34
  • 1
    \$\begingroup\$ Never mind, gzip -n image cannot produce a file larger than 4023 bytes given a 4000-byte input. It needs 10 bytes for the header, 8 for the footer, 1 for the DEFLATE block header and padding, and 4 for the DEFLATE block size; the rest are just stored as uncompressed bytes. Most files comprised of random bits are stored uncompressed, as they should be. \$\endgroup\$ – Nnnes Aug 13 at 23:40
  • \$\begingroup\$ I can confirm that. Instead of compression getting worse with increasing entropy, it just flags that the data should be stored uncompressed. Deflate adds 2 bytes to the data. Gzip adds the rest. \$\endgroup\$ – Mark Jeronimus Aug 16 at 21:26
4
\$\begingroup\$

Brainfuck, 4201 bytes compressed.

Image format used is PNG. I'm pretty sure the challenge is over because I'm leaving 4 instances modified script overnight.

Explaination

So how does it work?

Using a Java program I'm generating a JPG file. Then, it's compressed and it's size is being checked prompting me shall I keep it. I ran this script for a while and it generated me a few tar.gz files with varying sizes. Then, after a new winner is found, Brainfuck code is regenerated.

Bash script used:

#!/bin/bash

max=0

while true; do

    java Start 
    tar -czf out.tar.gz target.png
    filename="out.tar.gz"
    size="$(wc -c <"$filename")"
    printf "%s/%s " "$size" "$max"

    if [ "$max" -lt "$size" ]; then
        max=$size
        read -p "Keep? " -n 1 -r
        echo
        if [[ $REPLY =~ ^[Yy]$ ]]
        then
            java -jar out.jar out.tar.gz > "out/sub$size.bf"
        fi
    else
        echo "Crappy result, skipping."
    fi
done

Screenshot of the program running:

alt text

It could be fully automated removing the read and keeping implicitly, but I'd wish to have control on it.

The code

+++++[->++++++<]>+.-[++>-<]>----.>++++++++.[++>---<]>--.>+++++.>-[--->+<]>--.++++++++++.>+++.>-----[->++++<]>+.-[->++<]>.>-[--->+<]>++.+[-->+<]>++++.[-->+<]>++++.[->++++++++<]>.------.>+++++++.>----[->++++<]>.>-[--->+<]>.[----->++<]>+.+[++>-----<]>.---[->++<]>.-[--->+<]>--.[->+++<]>+.[-->+<]>+++++.---.[-->+<]>----.--[->++<]>.--[-->+++++<]>.+[->++++<]>+.-[->+++<]>-.+[--->+<]>+++++.[--->++<]>++.--[----->+<]>-.+[-->+++<]>-.+[->++<]>+.+[++>-----<]>.[------->+++<]>.++[->++++<]>+.[--->++<]>-.>-[--->+<]>.++++[->++<]>.+++[->++<]>.[++>-----<]>-.-[--->+<]>+.[--->+++++<]>.[->++++<]>--.++[----->+<]>.[->++<]>+.>+[--->++<]>.>+++++++++.[->++++++<]>.[-->+++++<]>+.[----->+<]>.>++++.+++++.>-[--->+<]>----.[->++<]>+.++++++++++.+++++++++.[-->+<]>-.[->+++<]>++.[----->++<]>++.+[->++<]>+.-[->++<]>-.-------.[------->++++<]>.--[--->++<]>--.[->+++++++<]>-.--.+[->++++<]>-.++++[->++<]>.+++[->+++<]>.>--------.--[->+++++<]>.+++++++.-[--->+<]>---.[--->+<]>.[->++<]>+.----[->++<]>.[-->+++++<]>.++[->++<]>.[------>+<]>--.>--.+[----->+<]>.+[--->++++<]>-.-[-->+<]>----.+[--->++++<]>+.--[->+++<]>+.+[->++++<]>.--[-->+++<]>.+[----->++<]>-.[------->+++<]>.[--->++<]>.[++++++>-<]>.+++[-->+++<]>..-[--->++++<]>++.>+++++++++.>----[-->+++<]>-..-[++>-<]>--.>--.---[------->+<]>.>++[++>-<]>+++.>-.[------->++<]>.++..>----.++[----->+<]>+.>-.------[->+++<]>.>-.---[-->+++++<]>.-[->+++++<]>.>+++++++++.[------->+<]>++.-[->+++<]>+.>--[-->+<]>+.++++++++.--[->++++<]>.+[->+++<]>+.++++++++.++++++++.[-->+++++++<]>.[--->++++<]>.----.[----->+<]>--.++.+[->++++<]>.++++++++++++.++++++++++++.----------.>++.+++[------->+<]>.[------->+<]>-.>+.>----[---->+<]>+.++[->++<]>+.>-.-[-->+++<]>.>-[--->+<]>++.>------.[----->++<]>-----.>--[-->+<]>-.[++>-<]>-.--[--->++<]>.[-->+++<]>-.+[-->+<]>+.+++++++++.[-->+<]>.[--->++++++++<]>.+[->++++<]>-.+[-->+<]>++.[++>-<]>.>--.--[---->+++<]>++.------.>--[-->+<]>.----------.>--.[----->+<]>-------.++++[->+++<]>+.-[->+++++<]>+.++[->++++<]>.----[->++++<]>-.+[---->+<]>++.+[--->+<]>.--[->+++<]>.[--->+<]>.>-------.-[->++++<]>-.-[--->+<]>--.[++>-<]>+.++++.--------.>--[----->+<]>.>++++.++[++>-----<]>+.[->+++<]>.>--.>+[----->+<]>.>++++.-[----->+<]>---.---[->++++<]>.-----.----[->++++<]>-.-----[->++<]>.>--[-->+++<]>.-[++>-<]>-.[--->+<]>-.----[->++++<]>.>--[--->+<]>.-.---.-[--->++<]>--.[->+++++<]>.[->++<]>.+++++++++++++++.+[--->++++<]>.--[++>---<]>.>--[-->+++<]>-.+.-[--->++<]>.--[----->++<]>-.>++++[->++++<]>+.-[++>---<]>+.+[->++<]>.--[++++++>-<]>-.-[->++<]>.[--->+<]>+.-[-->+<]>---.[->++++++<]>.-[->++++<]>.--[------>+<]>.-[->++++<]>.--[--->+<]>-.>--[-->+++<]>.[----->++<]>.>+[--->+<]>.+[++>-<]>+.+++[++>---<]>.>+++.-[------->+<]>+++.+++[->+++<]>+.-[->++++<]>+.-[++>-----<]>.---[--->++++<]>.+[--->++++<]>.----.--[->++++++<]>+.-[-->+++<]>+.[->++<]>.--[-->+++++<]>+.>-----------.-[-->+<]>----.+++++++.+[-->+<]>++++.+[--->++++<]>+.[->++++++<]>.[->+++<]>-.++[->+++++<]>.-[-->+<]>.+[->++<]>+.>--------------.++.--[->+++<]>+.----[->+++<]>-.>-[--->+<]>-.-[--->++<]>+.>-[----->+<]>.+[--->+<]>+++.>++.[--->+<]>.--[--->+<]>--.+++[->++<]>.---[->++<]>.-[->++++++<]>+.+[-->+++<]>-.[->++++<]>+.--[----->+<]>-.[->++++++<]>.[++>---<]>+.---[->++++<]>-.[--->++<]>.-----[->++++<]>+.+++++++.>--[-->+++<]>.++.[----->++<]>-.[--->++<]>+.-[-->+<]>------.--[--->+<]>.-[++++>-----<]>.[----->++++<]>+.>+++++++.[----------->+<]>-.++[->++++<]>-.++[->++++<]>-.-[--->+<]>.[-->+++<]>--.+[----->+<]>++.[--->++<]>-.[--->+<]>+++..---[->+++<]>-.+[--->+<]>.-[----->++<]>.[-->+<]>+++.+++++++++.[->++++<]>.[->+++<]>++.++[++>---<]>.++[->++<]>+.----------.--[--->+<]>-.-[--->+<]>---.------.+++[->+++<]>+.>++[++>---<]>.-[++>-<]>---.>+++[->+++++<]>.-[++>---<]>--.[--->++++<]>.++[->++++<]>.>-[--->+<]>++.-[----->+<]>+.+[-->+<]>.[-->+<]>--.++[->++<]>.[----->+<]>++.--[->+++<]>-.--[--->+<]>-.[++>-----<]>++.++++[->++<]>.>++++++++++++++.-[->+++<]>.+[------>+<]>+.[--->++<]>-.++[----->++<]>.[------->+<]>.>++++++++.>+[--->+<]>------.[->+++<]>+.[-------->+<]>-.--[----->+<]>++.-.[++++>---<]>--.-[--->+<]>-.[---------->+<]>.[----->+<]>+.[++>---<]>-.+++.-[->++++++<]>--.+[->++<]>.>++++++.>-[----->+<]>-.---[->+++<]>.>+[--->+<]>+.>---[----->+<]>.>++++++++.>--[--->+<]>.>----[---->+<]>.-[++>---<]>+.>+[--->+<]>++.-[--->++<]>-.+[->++++<]>.--[->+++++<]>.+[->+++++<]>-.[----->+<]>+.-[-->+<]>.[----->+++<]>.-[----->+<]>.+[--->++<]>++.>+++++++++++.+[->++++++<]>-.----[->+++<]>-.-[->++++<]>.[--->++++<]>.[----->+<]>++.>--[-->+<]>+.[++++>---<]>++.[---------->+<]>+.--[->++++<]>-.---[->+++<]>+.+[-->+++<]>.-[-->+++<]>-.>+[------->+<]>.[->++++++<]>.[-->+<]>++.[--->++<]>.--[->+++<]>-.[->+++<]>+.>-------.-[------->++<]>--.+++++[->+++<]>.-[-->+<]>---.[->+++++<]>++.---[++>---<]>.+++[->++++<]>.++[--->++<]>.[++>-<]>+++++.+[------>+<]>++.[++>-<]>---.+[--->++<]>+.>-[--->+<]>.[--->+<]>.+[++>-----<]>+.-[++>-<]>-----.+[->++<]>+.+[-->+++<]>++.-[++>-----<]>+.---[->++<]>-.>--[-->+<]>-.>----------.+[->+++<]>+.--[->++++<]>.---[->+++<]>+.[--------->+<]>.--.--[---->+++<]>+.----[->+++<]>+.-[->++<]>.[++>-<]>++++++.----[->+++<]>.+[->++++++++<]>.+[->+++++<]>+.[++++++>-<]>.>-[----->+<]>.>-[--->+<]>-.[->++<]>+.----[->++<]>.---[->+++++<]>.++++[->++++<]>++.-[----->++<]>.+[->+++<]>+.[--->+++++<]>.--[--->++<]>-.--[->++++<]>-.++[--->++<]>+.+[->++<]>.+++++++.[--->++++<]>+.++++.[----->++<]>+.+[-->+++++<]>+.+[->++<]>+.----------.[----->++<]>-.--[->++<]>.>-[----->+<]>.++[->+++<]>++.>+++++++++.>--[----->+<]>-.--[--->+++++<]>.[--->+<]>.>-----------.[--->++<]>.>---------.>++++++[++>---<]>.[->++++<]>++.+[->++<]>+.-----[->++<]>-.-[-->+<]>-.++.--[->++++++<]>.>-[--->+<]>-----.-[->++<]>-.+[------>+<]>+.>--[-->+++<]>-.-[->++<]>.[------->++<]>.---[->++<]>.---[->++<]>-.>------.>-[--->+<]>+++.[---->+++<]>.++++++++.-[--->+<]>++.++[->++<]>+.[->+++++++<]>.>+[----->+++<]>.++[->+++++<]>+.--[++>---<]>-.+++++++++++++.++[----->+<]>++.[++>-<]>.-[--->+<]>---.-[----->++<]>-.+[-->+<]>.+++++[->+++<]>.[->+++++<]>.+[->++<]>..>--[----->+<]>-.---.++[--->++<]>.-[->++<]>.+[->+++++<]>++.[->+++<]>+.>+++++++++.+[++>-<]>+++.+[----->+<]>.-[->+++++<]>.[--->++++<]>.+[->+++<]>++.[->++++<]>-.-[->++++++<]>-.-[-->+<]>----.-[-->+++++<]>+.+[->++++++<]>+.[->++<]>+.-------.[-->+<]>.++++[->++<]>+.-[-->+++<]>+.-[->+++<]>.>-[--->+<]>.[----->+<]>-.>--------.[->+++++<]>+.-[--->+<]>--.>-[----->+<]>.++++.-[--->++<]>--.[--->++<]>-.-[----->+<]>+.[----->++<]>.>----[-->+++<]>-.--[->++<]>.[----->++<]>++.[++>---<]>+.--[++>---<]>.>++[++>-<]>+.++[-->+++<]>+.[----->++++<]>.[-->+<]>+.>+++.-[----->+<]>+++++.[->+++<]>-.>+++++++++++.>-------[->++++<]>.-----------.--------.-----------.[----->++++<]>.-[->++++++<]>+.-[->+++<]>.---[->+++<]>.[----->++++<]>+.[->++++<]>++.-------------.>+++++++++.+[->+++<]>+.>-------[->+++<]>.+[------->+++<]>.++[->+++++<]>+.[--->++<]>.[-->+<]>++.[----->++++<]>.[---->+<]>++.++[->+++<]>.+[++++++>-<]>-.[---->+<]>---.++[->++<]>.>+++[->+++++<]>.--[->++++++<]>.[++++++>-<]>.>------------.-[----->++<]>.+[->+++++<]>++.+[-->+++<]>+.>--.[----->+<]>------.++[-->+++<]>.------.-[++++>-<]>-.+[--->++<]>+.-[++>-<]>--.-[++>-<]>.-[->++++<]>-.+[++++>-<]>----.>--.+[--->+<]>+++++++++.>+++++++++.[->+++<]>+.++[->+++<]>.[--->+<]>.--[->++++<]>.>--------.-[->++<]>-.---[->+++<]>.[----->+<]>--.>----.-[------->++<]>.[--->++<]>-.>++[++>-<]>+++.[++++>-<]>--.>--.----[->+++++<]>-.>+[--->+<]>++.[--->++<]>---.>--[-->+<]>.-[----->+<]>++.--[-->+++++<]>.-[-->+<]>.>-----[->++++<]>+.[->++++++<]>.++[->+++<]>+.>++[++>-<]>+.>++++++.>+[--->+<]>.+[++>-<]>++.[->++++++<]>-.++[->+++<]>.++[------->+<]>.++++++.+++[->+++<]>++.+[->++++<]>+.---[++>---<]>-.>++++++.>---.>+[--->+<]>++.-[--->+<]>++.[->++++<]>-.+++++++++++++++.>++[++>-<]>+.-[----->+<]>++.+[->+++<]>++.-[->++++++++<]>.---------------.[--->++++<]>.++[->+++<]>+.>--[-->+<]>.+[-->+<]>+++++.>----[-->+++<]>-.-[--->+<]>+++.--[->++<]>-.-[->+++++<]>++.[----->+++<]>.+[->+++<]>.>+[--->++<]>.+[--->++<]>+++.-[----->+<]>+.>-------[->+++<]>.++[->+++<]>+.-[----->++<]>+.[--->+<]>+.--[->++++<]>+.[->++++++++<]>+++.++[->+++<]>.---[->+++<]>+.-[->++<]>-.+[->+++<]>.>-[--->+<]>--.>+[----->+<]>.+[->+++<]>+.[->+++++<]>--.--[----->++++<]>.[---->+<]>.>+[--->+<]>++.>++++.[++++>-<]>++.[->++<]>+.+[----->+<]>.+[----->++<]>+.>----[->++++<]>.[---->+<]>-----.>+++++.>----[-->+++<]>-.[--->++++<]>--.[->++++++<]>.--[->+++++<]>.-----------.-[->++++++<]>.-----------.[--->+<]>.>++[++>-<]>+++.--[----->+<]>+.++[->+++<]>++.+[----->++<]>+.-[->++++<]>-.+[---->+<]>.++[->++<]>.[++>-<]>+++.+[--->++<]>++.-[--->++<]>+.[--->++<]>+++.>----------.--[->+++<]>.>+.[----->+++<]>+.[----->+<]>++.+[----->++<]>.[->++++<]>.----[->++<]>.[-------->+<]>-.------.-[----->+<]>+.[--->++++<]>.>-------------.>++++++++++++++.-[--->+<]>++.-[--->+<]>+++.[--->+<]>---.--[->+++++<]>.[++>---<]>--.--[++>-----<]>+.--[----->+<]>.++[->++<]>.-------.+++[->++++<]>-.+[--->++++<]>-.----[->+++<]>-.[------->+<]>-.---[->++++<]>+.+++[->+++<]>.>---------.[->++<]>-.+++.[---->+<]>---.-[--->+<]>----.+[->++++<]>.-[--->+<]>++++.-[--->++<]>+.++++++++++++.[->++++<]>--.+[->++++<]>++.+++[->++<]>.[++>-<]>+.>---------.++++.+[------->+<]>+.++[------->+<]>.-----[->++<]>-.------[->++<]>.-[->++++<]>.++++++++.-[->++<]>.+[--->++++<]>.++[->++<]>+.[->++++<]>--.--[--->++++<]>.>+++++++++.-[++++>-<]>-.[--->++<]>.[++>---<]>+.-[--->+<]>--.>++++++++.>--[-->+++<]>.-[------>+<]>.++++++++.++[->+++<]>.[->+++++<]>.------[->++++<]>.----[->++<]>.-.--[--->+<]>.-[->++++<]>--.--[--->+<]>.[------>+<]>++.+[--->++++<]>-.+[-->+<]>++.++[----->+++<]>+.>--[-->+++<]>.>-[--->+<]>++.+[->+++++<]>.--.[-->+++++<]>-.-------.[--->+<]>+.[++>-<]>++.>-.[------->++<]>++.[->++++<]>.>+[----->+<]>-.+++++[->+++<]>+.>+[--->+<]>.>-[------->+<]>.>--[--->+<]>.[--->+<]>++++++.>----[---->+<]>-.[----->+<]>-.++[->++<]>+.+[--->++<]>-.-[->++++<]>.---.+[->+++<]>++.>-[--->+<]>--.+++++++++++.[++>-<]>++++.+[++>-<]>+++++.[->+++++<]>-.>+[----->+<]>.[--->++++<]>--.+++++++++++++++.[->++++<]>-.-[++>---<]>-.>+[----->++<]>+.-[--->++<]>.[--->+<]>--.+[--->+<]>+.--[->++++<]>.[++++>-----<]>.[++++>-----<]>.[-->+<]>-----.[->++++++<]>.+[->++<]>+.>--[-->+<]>-.---[->+++<]>-.[---->+<]>+++.+++[->++++<]>.++++++++.[---->+++<]>++.++[->++<]>+.[->+++<]>.+++++.[++++>---<]>-.----.>----------.-[->++<]>.>++++[->++++<]>.---.+++++.--[->+++<]>.[--->++++<]>-.---[->++<]>.[----->+++<]>-.-[--->+<]>---.+[-->+<]>+++.+++++++++++++.--[--->++<]>-.+.-[->++++<]>-.--------------.-[->++++++<]>-.-[--->+<]>+++.--[->+++<]>.-[++++>-<]>+++.++++.>+++[->+++++++<]>.-[--->+<]>++.+.+[------->+<]>++.----[->+++<]>+.+[++>-----<]>+.+[++++>---<]>+.++++[->+++<]>.--------.---[++>---<]>-.---------.>+++++++.[----->+<]>.[->++++<]>++.---[----->++<]>.[-->+<]>-----.++[++>-----<]>-.+++[------>+<]>.++++++.[-->+++++++<]>-.>+[--->+<]>+.[---->+<]>.-[++>---<]>+.>+[----->++<]>.[--->++<]>++.+[->+++<]>.+[++>-<]>+.-[--->+<]>++.+[++>-<]>.++++.>--[-->+<]>-.[------->++<]>.+[----->+<]>.--.---[->+++<]>+.[->++++<]>--.-[----->+<]>--.[->++++<]>-.[->+++++++<]>-.[-->+<]>----.+[->++++++<]>+.----.+[++++>-<]>--.>------.[----->++<]>----.---[->++<]>-.-[++++>-<]>+.+[-------->+<]>--.-[----->+++<]>+.[++>-<]>-.+++.-[-->+<]>----.--[++>-----<]>.-[---->+++++<]>.[----->+<]>++.-[--->+<]>++.[-->+<]>++++.--[->+++++<]>++.>+[--->+<]>.--[--->++<]>--.[->+++<]>+.++++++++++++++++.--[----->+++<]>+.[------->+<]>.[--->++<]>.------------.+++[->++++++<]>-.-[++>---<]>-.++[----->+<]>.>----[-->+++<]>.-[--->+<]>---.>---------.>++++[->++++<]>.++++++.++[->+++<]>.++++++.[----->+++<]>--.[-->+<]>+++++++.++++++++.-[--->++<]>+.[--->++++<]>--.+[----->+<]>-.[->++++++<]>-.>++++++++.>+[--->+<]>-----.[->++<]>-.--[--->++<]>-.>-.[----->++<]>+++.>+++++++++.+[++>---<]>++.[----->++++<]>++.---[----->+<]>-.>----[->++++<]>.>--[-->+<]>-.-----.-.[++>-<]>-.+[++>-<]>+.>+[--->+<]>++.+[++>-<]>+.--.+++++.-[--->++++<]>.---[->++<]>-.>--[----->+<]>-.-[----->+<]>.++[->++<]>+.+++[-->+++<]>+.---------..[---->+<]>--.[-->+++++<]>.---[->++<]>-.+[++++>-<]>+.+[++>-<]>.++[->+++<]>+.++[--->++++<]>+.>+++++++++.+[->++++++++<]>-.-[->+++<]>-.[--->+<]>++.---.>--[----->+<]>.>++[++>-----<]>.>-------.-[------->++<]>--.>++++++.>------[->++++<]>+.++[->+++++++<]>.--[->+++<]>-.[-->+++<]>--.[-->+++++++<]>.+[--->+<]>++.>++[++>-----<]>.+[->++++<]>+.-[++++++>-<]>+.>----[->++++<]>-.>++++[->++++<]>+.---[++>---<]>-.>--[-->+<]>-.++++++.[------->+<]>+++.----------.+.---[->++<]>-.++[->+++<]>.[------->++++<]>.[++>-<]>+++++.-----.[--->++<]>.[--->++<]>++.[->+++++++<]>.+[->++<]>+.[->+++++++<]>.>-------------.-[-->+<]>.+[++>-<]>++.++++++++.++.----[->++++<]>+.++[->++<]>.+[->+++++<]>.+[++>-<]>.[--------->++<]>-.+[++++>-<]>.-[->++++<]>+.++++[->++<]>.[++>-<]>++++++.-[->++<]>.++[++>-----<]>.+[---->+<]>.+++++.-[++>-<]>-----.+[-->+<]>++.>+[--->+<]>++++.[----->+++<]>.--[----->+<]>.-[->++++<]>--.-------.-[----->+<]>.[++>-<]>+++.++[---->+<]>++.---[->++<]>-.-[--->++<]>-.>-----------.[----->+++<]>++.+[++>-<]>++.[--->+<]>--.-[->+++<]>.[->++++<]>++.++[--->++<]>+.-[---->+++<]>-.>-------.+[------->+<]>-.>--[-->+++<]>.++[------->+<]>.---[->+++<]>.+++++++++.-[++++++>-<]>.+[++>-<]>++.[++>-<]>-----.-[------->+<]>.>-.>+[------->++<]>--.--[--->+<]>---.-[->++<]>-.>--[----->+<]>.>--[-->+++<]>.-[++++++>-<]>.+[->+++++++<]>+.++++[->++++<]>.-[->++<]>-.>-------.[->+++<]>++.-[-->+<]>.[->++++<]>+.--[->++++<]>.[------>+<]>+.-[------>+<]>+.[-->+++++<]>.[--->++<]>---.>-[--->+<]>+++.+[----->+<]>+++.-[->++<]>.>++[++>-<]>.++[->+++++<]>.>+[----->+<]>.--[----->++<]>+.+[++>-<]>++.-[->++++<]>+.>-----[->+++<]>.>+++++++++++++.>--------.[---->+<]>---.>++[++>-<]>.--[----->+<]>+.>--[-->+<]>-.----[->+++++<]>+.-[-->+++<]>+.[++>-<]>----.-[->+++<]>.+[->+++++<]>-.+[->++++<]>.>+[--->+<]>++.+[++>-<]>+.-[--->++++<]>-.[->+++++<]>++.>---.[----->+<]>-.-[--->+<]>.++[--->++<]>.[--->+<]>+.[->++++++<]>+.[->+++++<]>-.[--->+<]>+.>+[----->++<]>+.+[->+++++<]>++.+[------->+<]>.[->++++<]>--.+[--->++<]>+.>+[--->+<]>+.[--->+<]>++.[++>---<]>.[--->+++++<]>+.-[->++<]>.++++++++.[++>-<]>++++.-[++>---<]>-.>+[----->+<]>.[--->++++<]>.[--->+<]>-.---[->+++<]>.-[--->++<]>+.[------->+<]>-.+++++.---[->++++<]>+.-[->++<]>.+++[--->++++<]>.>--[-->+++<]>-.[---->+++++<]>.-[--->+<]>---.-[->++<]>.++[->++<]>.>-[--->+<]>.-[----->+<]>.[++>---<]>.---[->++<]>-.+[++>---<]>-.[++++>-<]>-.>----.[------->+<]>.--[->+++<]>-.++[->++<]>.---[->+++<]>-.>-----------.>+[--->+<]>++.[----->+<]>.-[-->+<]>-.+[-->+++<]>++.>++++++++.>-[--->+<]>-.>+[----->+<]>++.>+[--->+<]>+++.++[---->+<]>+.+[-->+<]>+.+[--->++++<]>.[---->+<]>++.+++[-->+++++<]>.>--[-->+<]>-.[++++++>-<]>-.++++.[++>-<]>--.----[->+++<]>.[--->++<]>--.++[++++>-<]>.-[->++<]>.[++>---<]>.-[--->++<]>.---[->+++<]>.++[->+++++<]>.-[--->++++<]>++.[--->++<]>.++[->+++++<]>.[------->++++<]>+.-[---->+<]>++.>--[-->+<]>.>-----------.-[-->+++<]>+.[--->++<]>+.[--->++++<]>.[---->+<]>-.-[----->++<]>.[----->+++<]>.[->++<]>.[++++>-<]>.+++++++.[++++>-<]>-.--[--->++<]>-.>+[--->+<]>+++.[++>-<]>+++.--[->++++<]>.+[->++++<]>-.+[++>---<]>++.---------.>+[----->+<]>-.--[--->++<]>.>++[++>---<]>.+[-->+++++<]>.---[->++<]>.[-->+<]>-.>-[----->+<]>++.-----.---.+[--->++<]>-.--------.-[->++++<]>-.+[----->++<]>-.>-[--->+<]>.-[----->++<]>-.>-[--->+<]>---.[++>-<]>+.>-[----->+<]>---.+++++++++++.+[++++>-<]>.+++[------>+<]>+.++++[->+++<]>.[--->+<]>--.-[--->+<]>.>---------.>+++.>-------[->+++<]>-.[-->+<]>++++.[->+++++<]>.[->++++++++++<]>.----[->+++<]>.[--->++++<]>--.++[-->+++<]>.+[--->+<]>.[->+++++++++<]>.-----------.[++++>-<]>.>------.--[--->+<]>.>+++++++.+[----->++++<]>.+[->++++<]>.>--[----->+<]>.>+++++++.>--[--->+<]>.+[--->+<]>++.+[++++>-<]>.++++[->+++<]>+.--[--->++++<]>-.-[->++<]>.+[--->+<]>+.++++[->++<]>.[------->++<]>++.[-->+<]>-.++[->++++<]>++.+[->+++++++<]>-.[->++++<]>+.++++++++.+++[-->+++<]>+.>+[--->+<]>+.[++>-<]>+++.--------.-[++>-----<]>-.>+++++++.++[------->+<]>.-[-->+++++<]>-.[------->+<]>++.[++>-<]>+.++[--->++<]>+.-[----->+<]>++.-[->++++<]>.-----.-[->++++++<]>-.[--->++<]>+.--------.---[->++++<]>+.[->+++++<]>+.-----.+[->+++<]>+.>----.[--->+<]>++++++++++.---[----->+++<]>.------------.++[->++<]>.[++>-<]>-----.>++++++++++++.[++>-----<]>+.-[++++++>-<]>-.+++++++++++.+[--->++<]>+.++[--->++<]>.[----->++<]>.[---->+<]>--.+[->+++<]>.[++++++>-<]>+.[----->+<]>.---[-->+++<]>.>---------.>--[-->+<]>.-----------.>+[--->+<]>--.-[--->+<]>++++.[++>---<]>++.+++[->+++++<]>.>-----------.+[--->++++<]>.+[----->+<]>-.+++++.[->++++<]>.--[->+++<]>-.+++++++++++.+[->++++<]>.[--->++++<]>-.+[->+++<]>++.+[----->+++<]>-.>++++[--->+++++<]>.[------->+++<]>-.>+++.+[->+++++<]>.+[->+++<]>.-[++>---<]>+.--[--->+<]>-.>++++++[++>---<]>.[->++++<]>-.>--.[------->+++<]>.[--->++<]>.[++>-<]>+.>+[--->+<]>.>----------.-[--->+++++<]>+.>------------.-[----->+<]>++.-.-[->+++++<]>.--[->++<]>.+[--->++<]>++.-----[->+++<]>.-[----->++<]>.[++>-<]>+++.++[->+++<]>.--[--->+<]>.----[->++<]>.>++++[++>---<]>.[++>-<]>--.>-[----->+<]>++.+.-----[->+++<]>-.>++[++>-<]>+.++[->++++<]>.[++++>-----<]>.+[->+++++<]>++.+[----->+<]>.[-->+<]>+++.--[->++<]>-.+++++++++++++.>++.>-[----->+<]>.[--->++<]>+.+[++>-<]>.>++++++.--[++++>-<]>---.--[++++>-<]>.+++++.-[->++++<]>+.+++++++++++++.>++++++.>+[--->+<]>---.---[->+++<]>-.------.>++++++++.-[->++++<]>+.[--->++<]>--.------.>++++.[++++>-<]>---.>++++.[->++++++++<]>+.[----->++<]>+++.---[->++++<]>-.+[--->++++<]>-.+[----->+<]>-.[--->++<]>--.>++++++++++.[++++++>-<]>.-[->++<]>-.+[---->+<]>.-[++>-----<]>++.-.++[->++<]>+.++[->+++<]>.-[--->+<]>++.[++++++>-<]>++.+[++>-<]>+++.>-[----->+<]>--.-[-->+<]>---.----.--[->++<]>.--[->++<]>.-[->+++<]>+.+++++++.+[->++<]>.>--.>+++.+[->+++++<]>.++[->++++<]>.[->++<]>.+[--->++<]>.[++>---<]>-.-[----->+<]>+.------.--[---->+<]>-.[++>-<]>-.[++>---<]>-.[->++++<]>++.[->+++++++<]>.-[------->+++<]>.---[->++++<]>+.[------->+<]>.----------.--.----[->++<]>.[--->+<]>+.>+++.+[--->++<]>.+++[->++<]>.--[++++>-<]>-.>++++[->++++<]>.>-------------.[--->++<]>--.[----->+<]>+++.-[----->++++<]>+.+[--->++<]>.[->+++++<]>+.[->+++++<]>--.-[++>---<]>--.++[->++<]>.[-->+<]>----.+[->+++<]>++.--[->+++<]>+.---.-[--->++<]>+.-[----->+<]>.-[->+++++<]>+.[----->+<]>--.+[--->++<]>.------------.+++[->+++<]>.--[--->++<]>.[->+++<]>-.--[--->+<]>----.[->+++<]>.+[-->+<]>+.[--->++<]>++++.>+[--->+<]>.>+[----->++<]>+.-[--->+<]>+.-[++>---<]>.++++++++++.>---------.+[--->++++<]>--.++[----->+<]>.-----[->++<]>-.-[--->++++<]>-.+[-->+++<]>-.-[--->+<]>++.---[->++<]>-.[->+++<]>++.-[++>-<]>.----[->++++<]>.[--->++<]>--.[->++++++<]>++.--[->+++<]>+.>++++++++++++++.++[->++<]>.>++[++>-<]>+.++[++++>-<]>.-[--->++<]>--.+.[->+++<]>-.[-->+++++<]>+.-[++>-<]>--.>++++++.--[++++>-<]>-----.>---.>+++[->+++++++<]>.+[--->+<]>+++.--[->++<]>-.>++++.>-----.+[---->+++++<]>.-[->+++++<]>++.>--------------.+++++++.[--->+++++++<]>-.++[-->+++<]>.[----->+<]>.>++++.>----[-->+++<]>-.++++++++++.-[++++++>-<]>++.--[->+++<]>+.>--.[--->+<]>--------.-[--->+<]>.------.>------.-[--->+++++<]>-.--------.[-->+<]>------.-[++>-----<]>.-[->++++<]>-.>--[-->+++<]>-.>+++++.+++[------>+<]>.[-->+<]>--.++[++>---<]>++.[--->+<]>--.-[--->++<]>+.[--->+++++<]>.-[++>-<]>-.[---->+<]>-.>-[--->+<]>++++.+++++.[->++++<]>++.-[->+++<]>+.[-->+<]>--.--[->++<]>.--[--->++<]>-.[->+++++<]>--.+++[->++<]>.[--->++++<]>+.+++++[++>---<]>.[--->++<]>----.>---[----->+<]>.--[--->+<]>.>----------.--------.++[---->+<]>+.+[->+++<]>+.-[->+++++<]>.-[--->+<]>.-[->+++<]>.[--->++<]>.>------.[------->+<]>---.+[--->+<]>++++.[---->+<]>+.>++[++>-<]>+.[--->+<]>-----.-[-->+<]>-----.+[->+++++<]>.[----->++++<]>.[---->+++<]>++++.[->+++++<]>-.--[->++++<]>.[-->+<]>.++[--->++<]>+++.[----->+++<]>+.++[->+++<]>.[--->++<]>.[++>-------<]>-.>++[++>---<]>.-[----->++<]>+.-[-->+++<]>+.>+[--->+<]>++++++.+[->+++<]>++.>-[--->+<]>--.--[->+++++<]>-.>--[-->+++++<]>.+++++++++++++++.----[->++<]>.[++>-<]>++.+++[->+++<]>.--[->++<]>.[--->++++<]>.[++++>-<]>-.>+++++++.-[++>-----<]>++.-[----->+<]>.>+[----->+<]>+.++[->+++++<]>-.++[--->++<]>.++[---->+<]>+.-[->+++++<]>.+[------->+<]>-.>+[----->+<]>+.>++.-[----->+<]>++++.[--->+<]>----.[--->++<]>.--[->+++<]>.-----------.+[->+++++<]>.[--->++<]>-.+[->+++++<]>.-------.-[->+++<]>-.+[++++>-<]>++.-[--->+<]>+.++.---.>-[----->+<]>-.+++[->+++<]>+.>+++++++++.>-----.+[---->+++<]>-.[----->+<]>-.>------[-->+++<]>.+[-->+<]>++++.[-->+++<]>-.--------.[--->++<]>----.>----.[----->+++<]>----.-[->+++<]>.-[--->+<]>--.+++++++++++.-[++++>-<]>.--[->++++<]>.[--->++<]>.+[->++<]>.-[->+++++<]>.-[++>---<]>+.+[-->+++<]>-.+[--->+<]>.+[--->++<]>+.+[--->++<]>+.+++++[->++<]>+.>++[++>-<]>+.++[-->+++<]>++.[-->+<]>+++++.>++++[++++>-<]>.+[----->+<]>-.++[----->+++<]>.-[-->+<]>------.[---->+++<]>.[-->+++++<]>+.[->+++<]>+.-[++++>---<]>+.-[->+++<]>+.>+[--->+<]>+++.[++>-----<]>+.[------>+<]>-.+[->++<]>+.-[-->+<]>-.---[->++<]>-.++++.[->++++++<]>-.>+[--->+<]>+.+[->+++++<]>.+++++++.[------->+<]>+.++++++++++.++++[->++++<]>+.+[++>-<]>.>++++.[++++>-----<]>.+[-->+<]>+++.>+[--->+<]>--.---[++>---<]>.++.[--->+<]>+.++.>-------------.[--->++++<]>--.-[->+++<]>.+[++>---<]>-.-[--->++++<]>+.[->+++++<]>.>++++++++++.---.+[++>-<]>.-[----->++<]>+.[->++++<]>-.+[++>---<]>+.>++++[->++++<]>+.--[->+++<]>-.[->++<]>+.++[--->++<]>+++.>------------.[-->+<]>+++.+++++.++.[++>-<]>---.+[++>---<]>-.-[--->+++++<]>-.-[++>-<]>--.-[->++++<]>-.-[------>+<]>.>++++++.>------[->+++<]>.++[-->+++<]>+.>++[++>-<]>.-[++>-<]>---.-[--->+<]>+++.[------->+++<]>.--[--->+<]>.---[->+++<]>.>++++.>-------.>--[------->+<]>.++[++++>-<]>+.--[->++++<]>--.--[++++>-<]>---.[--->++<]>+.-[++++>---<]>+.>++[++>-----<]>.-[----->+<]>-.+++++++++++.[-->+<]>-.[++++++++++>-<]>.+[--->++<]>-.+[----->++++<]>.-------.-[++>---<]>-.-[--->+<]>+.+[++>-<]>.++[------>+<]>++.++++++++.+[-->+<]>.------.-----[->++<]>.++[->++++++<]>.--[->+++<]>.[------->+<]>+.>--------.>+++++++++++++.[->+++++<]>-.[-->+++<]>.+[->+++<]>++.[--->++++<]>.+++[->+++++<]>+.[++>-<]>+.>-[--->+<]>----.>++++++.[->++++++<]>+.>--[-->+<]>.>------.[----->+<]>-----.[->+++<]>.+[-->+++<]>++.--[++>---<]>-.[->+++<]>++.>++[++>-<]>+.----.--[++++>-<]>-.+[->++<]>.++[---->+<]>.--[->+++<]>+.[--->+<]>+.++++++[->++<]>.>+[----->+++<]>.+[----->+<]>++.--[--->++<]>.[-->+++<]>+.--[->++<]>.>----.[--->+<]>---.>++[++>-<]>.[--->+<]>+++.[++>-<]>-.-[--->+<]>++.+++++++++.+++[->+++<]>++.-[++++>-<]>-.[->++++++<]>+.-[--->++<]>-.-[++>---<]>+.+++++++.--[->++<]>-.--[->++++<]>.[------->+<]>.-------.[->++++<]>+.-[----->+++<]>.+++[->+++++<]>.>+++++++++++.--[----->++<]>+.+[->+++<]>+.+[-->+<]>++.+[++>-<]>+++.>+.>------[->+++++<]>.[--->+++++<]>.---[----->++<]>.>------------.+++.[----->+++++++<]>.>------.-[----->+<]>+.-[--->+<]>.---[->+++<]>.[++>---<]>.[--->+++++<]>.-[--->++<]>--.>++++++++++++++.++[--->++++<]>.[++>-<]>++.>++++[->+++++<]>.>-----[->++++<]>.+++[->++<]>.-[->+++<]>+.[++>-<]>++++.[--->++<]>.>++++++++++.+[->++++++<]>++.>------.>+[----->+<]>.-[----->+++<]>.-[--->+<]>+.--[++>---<]>.++++.[++>-<]>+.+[++>-<]>+.-[---->+<]>++++.[->+++<]>.[->++++++<]>-.[--->+<]>---.++++[->+++<]>+.-[--->+<]>.-[->++<]>-.++[->++<]>+.+[++++++++>-<]>.>+++[->++++++<]>.--[++++++++>-<]>.-[->+++++<]>-.-.+[->++<]>.-.--[->++++++<]>+.++[--->++++<]>.---[->++++<]>.[++++++>-<]>+++.+[->++++<]>-.-[++>---<]>+.[-->+++++++<]>.[--->++++<]>--.-.-----[->++<]>-.+++++++.>---.>+[--->+<]>+++++.+++[->+++<]>++.>--.----[->+++<]>.--[->++++<]>+.>-----------.[--->+<]>-.++[++>-----<]>.--[++>---<]>--.-[->++<]>.[-->+<]>+++.+[--->++<]>+++.-[----->+<]>.[------>+<]>.-[-->+<]>---.[-->+<]>-.[--->++<]>.++[->++<]>.---------.+[->++<]>.--[--->+<]>.++++++++++.[--->++<]>-.+[->++++<]>++.+++[->+++<]>+.+[->++++<]>+.[--->++<]>--.--[->+++++<]>+.-[--->++<]>--.[-->+<]>---.>+[--->+<]>++.+[++++++>-<]>+.[-->+<]>------.>--[-->+++<]>-.[++>---<]>-.[----->++++<]>+.-[++++>-<]>+.>+[----->+++<]>.+[++>---<]>++.+[----->+<]>+++.----[->++<]>.+[--->+<]>++.-[->++<]>.[--->++<]>--.[->++<]>-.[--->++++<]>-.++[----->+<]>.>----------.+[------->+<]>.+++++++++++.[++>-<]>---.>-[--->+<]>----.-[->++++<]>.>+[--->+<]>---.[--->++++<]>-.-----[->+++<]>.[++>-<]>++.+[->++<]>.>-[--->+<]>++.-----[->++<]>.>++++[->++++<]>+.-[->+++<]>+.---[->+++<]>-.+++[->++<]>+.+[--->++<]>.--[--->+<]>-.--[->+++<]>.>-[--->+<]>----.[->++++<]>.++++++.----[->++<]>-.[->++++<]>--.++[++>---<]>+.--[--->+<]>--.[->+++<]>+.-[->+++<]>.[--->+<]>++.-[-->+<]>-.-[->++++++<]>+.+[++++++>-<]>.+++++++.-------.-[-->+<]>--.--[--->+<]>--.+++++++++++.-[--->+<]>+.+[--->+<]>+.-----[->++++<]>-.-[->+++++++++<]>.[->+++<]>+.-[--->+<]>+++.-----.-------.>++++++++.>--[-->+<]>.[--->+<]>--.+[++>-----<]>+.>-------.---[------>+<]>.[------->+++<]>.[->++++++<]>-.>+[--->+<]>+.+++++++++.[->+++++<]>-.[---->+++<]>-.[----->+<]>.+[-->+<]>+++++.>----.>+[--->+<]>+++++++.>----.+[----->+<]>.>+[--->+<]>+.[--->+<]>+.---[->++<]>-.---------.+[--->+<]>+.[-->+<]>--.++[--->++<]>+.-[--->++++<]>++.>++++[++++>-<]>-.>--[----->+<]>++.[++++++>-<]>.[------>+<]>---.>--[-->+<]>+.-[----->+<]>.+[--->+<]>+.[----->++++<]>.[---->+<]>+.++[++++>-<]>.++++++++++.++[->++<]>+.+++++++++++++.+[--------->+<]>.+[--->+<]>+++++.+++.[->++<]>+.[->++++<]>-.+[++++>-----<]>.-[++++++>-<]>.--[->+++<]>.[----->+<]>--.+[->++++<]>-.--------.+++++[->+++<]>+.[--->++<]>.-[--->+<]>+.[---->+++<]>.++[---->+<]>+.--[--->+++++<]>+.-[--->++<]>.>+[----->+++<]>.++[->++++<]>+.-[->++++<]>.[->+++<]>++.++[---->+<]>+++.[----->+<]>.[++>-----<]>.++[------->+<]>.++++++++.[->++++<]>++.>-[--->+<]>++.++[->+++<]>.>--[----->+<]>.>-.[----------->+<]>.--[->+++++<]>-.++[++>-----<]>.--[++++++>-<]>-.++++[->++<]>.-[--->++++<]>+.>+[----->+++<]>.---[++++++>-<]>.>--.[----->+<]>--.++++[->+++<]>+.++++++++++..[->+++++++++<]>.-[--->++++<]>.[-->+++<]>--.++++++++++.[--->+<]>.--[->+++<]>-.+[-->+++<]>-.-[->+++++<]>-.[++>---<]>--.>+++++++++++++.--[--->++++<]>-.-[----->+<]>+.-[->+++++<]>.-[->++++++<]>.--[------>+<]>.-----[->+++<]>.[->++++<]>++.[++>-<]>+++.-[--->+<]>-.-[--->++<]>-.>--[++++++>-<]>.---[++>---<]>--.>+++++++++++++.[->+++<]>-.++[->++++<]>.+[->++++<]>+.[->+++<]>++.-[++>-<]>----.[++>-----<]>+.[->+++<]>++.+[->++++++<]>+.>++[++>-<]>.[--->+<]>++.--[----->+<]>.+[--->+<]>+++.[--->++<]>.-[->+++++<]>--.>--[-->+<]>.>+++.[----->+<]>++.>---.-[-->+<]>-.+[--->+<]>++.[-->+++<]>-.-[++>---<]>-.------------.-[->++++<]>.--[++>---<]>.>----.[--->+<]>+++.++++++++++.>----.[---->+++<]>++.--[->+++<]>.-[->++++<]>.>++.>---------.+[----->+<]>+.-[--->+<]>+++.+++++++.++[->+++<]>+.[->++++<]>.>++++[++>---<]>+.[--->+++++++<]>.++[->++<]>.-[--->++++<]>.>---.[----->++<]>.>++[++>-<]>+.[-->+<]>--.>+[--->+<]>+++.+.+++[->+++<]>.-[----->+<]>++.>++++++++++.>--------------.>+++++++.+[++>---------<]>.[++++>-------<]>.+[------->+<]>--.-[--->++<]>+.++++++++.---[->++++<]>-.+++.--[->++++<]>+.>+++++.>-------------.[--->++++<]>+.+[->+++<]>++.[-->+++<]>.[-->+++++<]>-.+++++++++.+[--->++<]>-.++[------->+<]>.[->++++++<]>+.+[-->+++++<]>--.++++++++++++.+[->+++<]>.++[----->+<]>.++[->++<]>.-[--->+<]>+.>-[--->+<]>-.++++++++++++.++[->++++++<]>+.[->+++++++++<]>-.+[->+++<]>++.+++.>+[----->+<]>+.++++++++++++.>++.[---------->+<]>+.++[-->+++<]>+.>++++++++++++.+++++++++.++[--->++<]>++.--[->+++++<]>+.++[->++++<]>-.-[----->++<]>--.----------.++++++++++++.[-->+++<]>++..-[----->++<]>.---[->+++<]>.+[--->++<]>++.---[->++++<]>.---[->+++<]>+.++[++>---<]>+.[------->+<]>.+[--->++<]>.[++++++>-<]>+.-[->++<]>-.+[->++<]>+.+[----->+<]>++.-[--->++<]>-.+++++++.-[--->+<]>++++.+[--->+<]>.-[--->+<]>++.-[-->+<]>----.--[------->+++<]>.[--->++<]>+++.+[----->++<]>--.>-----.+[-->+++<]>-.-[--->+<]>---.++++++++.>+[--->+<]>++.[--->+<]>+++++++.>+[--->+<]>----.+[--->+<]>+++.---.[-->+++++<]>--..++[->+++<]>+.+[++>-<]>++++.-[++>-<]>---.>+++.[----->+<]>--.>-[--->+<]>.++.++[--->++<]>+++.>+[--->+<]>.[--->++<]>+++.[->++++<]>+.-[->+++<]>+.-[---->+<]>+.[--->++<]>---.-[->++++++<]>++.[----->+<]>+++.+[->+++<]>+.--[--->++<]>.+[->+++++<]>.>++++[++++>-<]>.+[++>-<]>++.+++[->+++<]>++.+[->+++++<]>+.>-[--->+<]>++.++[----->++<]>.>----[-->+++++<]>.--[---->+++++<]>.+[-->+<]>+++.[--->++<]>-.-[->++++<]>+.+++++++++++.[-->+<]>+.>+++++++.++++++.---[++>---<]>-.[++>-------<]>+.++[->++<]>.+[->+++<]>++.++++.------------.>+++++++++.[->+++++<]>++.+[->++++<]>-.>-[--->+<]>--.+[++++>-<]>--.-[++>---<]>.+[++>---<]>+.-[-->+++<]>.>+++++++++.+[->++++<]>+.>---------.+[---->+++++<]>+.+[-->+++<]>.++++++[->++<]>+.-[-->+<]>---.>--[-->+<]>-.+++++[->+++++<]>.---[->+++<]>.[--->+<]>+.+++[->++<]>+.[----->+<]>+.>+++[->+++++<]>.++[----->+<]>+.>--[-->+<]>-.--[++>---<]>-.+[-->+++<]>.-[------->+<]>.>+[--->+<]>+++.[++>-<]>-----.-[--->+<]>++.+[->+++++<]>+.+[++>-<]>+++++.++[->+++<]>+.-[----->++<]>+.[--->++<]>+.[--->++++<]>--.>--[--->+<]>.++[----->+<]>.[------>+<]>-.-[++>-<]>---.[----->++++<]>.[-->+++++<]>.-[--->+<]>+.--[->+++<]>+.--[->++<]>-.[->++++<]>-.-------.--[-->+++++<]>-.-[->+++++<]>++.>++[++>-<]>+++.--[++++++>-<]>-.-[->+++<]>+.++[->++<]>+.+[--->++<]>-.--[----->++<]>+.+[-->+<]>.++[----->+<]>+.[->++++++<]>+.>++++++++++++.-[--->+<]>--.>-[----->+<]>.--------.+[-->+++<]>-.--[----->+<]>+.>++[++>-<]>+++.>-[----->+<]>.--.--[->+++++<]>.++[->+++<]>++.++++++++.++++++.--------------.++++.[--->++<]>+++.[--->++<]>---.-----[->++<]>-.--[------->+<]>.[----->++<]>-.[----->+<]>+.[->++<]>-.+[---->+<]>+.++[++++>-<]>+.>+[--->+<]>++.+[-->+<]>.+++.--[----->++<]>-.-[-->+++<]>.[--->+<]>--.+[++>---<]>+.--[----->+<]>++.>+++++++..>-------[->++++<]>.[++>---<]>--.[--->+<]>----.---[->++<]>-.-[->+++<]>-.+[-->+++<]>-.--[->++++<]>.>-------.[--->++<]>-.[--->++++<]>.---[->++++++<]>.-[----->+<]>-.[-->+++<]>-.+[---->+<]>+.+++++++++.+++[->++<]>.>--------.[----->+<]>----.+[--->+<]>+.[++++++>-<]>-.>--[--->+<]>.>++[++>-<]>.--[----->+<]>-.+++++.-[->+++<]>+.>++++++++++.>++.[----->+<]>++++.+++[->+++<]>.++++++++.+++.[------->+<]>++.-[--->+<]>--.+++[->++<]>.>--[-->+++<]>.--[->+++++<]>+.[--->+<]>+.---[-->+++<]>-.-[--->++<]>.++[--->++<]>+.-[++>---<]>+.-[++>-<]>.>--[-->+<]>.+++++[-->+++<]>.--[->+++<]>-.-[-->+<]>----.--[->++++<]>--.--[------>+<]>-.++[----->+<]>+.+[->++<]>+.-[->+++<]>+.>-----.+[------>+<]>-.+[-->+<]>+.[++>-<]>++++++.----.-[++++>-<]>+.[--->++++<]>-.+[->++<]>.--[->++++<]>+.--[->+++<]>-.-[----->+<]>+.-[--->+<]>.[------->+<]>-.[++>-----<]>+.+[--->++<]>+.+[-->+<]>.-[--->+<]>++.>--.--[->++++<]>.[---->+<]>-----.-[++>---<]>.>+[--->+<]>+.[---->+<]>-----.[++>-<]>+++.[++>---<]>--.-----------.>++++[++++>-<]>-.[++>-<]>++.>-[--->+<]>++.---[-->+++++<]>.-------.>--[-->+++<]>.---[->+++<]>.[++>-<]>++.>--------.--[-->+++<]>--.+[---->+<]>+.-[++>---<]>-.-[--->++<]>-----.>----------.[------->++<]>+.-[---->+<]>++.-[-->+<]>--..-[--->++++<]>+.++++[->++<]>+.--[----->++<]>.--[->+++<]>.[-------->+<]>.+[--->+<]>+.[------->+++<]>.-[-->+<]>----.[--->+<]>-----.+[->+++<]>+.+[-->+++++<]>+.>+[--->+<]>++.+.--[---->+<]>---.---[->++<]>.---.>+[--->+<]>+++.[-->+<]>---.>+[----->+++<]>.-[--->++<]>.>-------.-[---->+<]>----.>-[--->+<]>.-----[->+++<]>-.-[->++++<]>-.[--->+<]>------.-----[->+++<]>.>++++++++++.[--->++++<]>+++.>++[++>-<]>+++.>+[--->++<]>.>+[----->+<]>.[--->+<]>--.+[->++<]>.+++++[->++<]>+.>++++++++++.[--------->++<]>+.>++++[++++>-<]>.-----[->++<]>-.---[->+++++<]>.-----.+[->++<]>+.>++++++.>--[++++++>-<]>-.++[-->+++<]>+.-----------.[--->+<]>+++.[-->+<]>++.--[++>---<]>-.>-------------.[->++++<]>--.++++[->++<]>.[--->++<]>.[++++>-<]>++.[++>---<]>--.-------.[--->+<]>---.[---->+<]>--.++++++.---[->+++<]>-.+++[->++<]>.---------.-[->++++<]>.+[--->++++<]>+.-[->+++<]>.--[->++<]>-.-[------->+<]>.--[->++++<]>.++[--->++++<]>-.+[-->+++++<]>.>--[------->+<]>-.-[++++>-<]>--.[->+++++<]>-.>++++.>------[-->+++<]>.[----->+<]>++.+++++++++++++++.--------.>----------.-[->+++++++<]>.-[--->+<]>++.>+[--->+<]>++.-[--->++<]>-.++[->++++<]>+.[--->++++<]>-.--[->++++++<]>++.-[----->+<]>.[->++<]>+.+[++>-<]>.--[->+++<]>+.[------->+<]>.+.+++[->++<]>.+.[----->+++<]>-.[->++++++<]>+.[----->+<]>+++.+++[->++<]>+.[----->+++<]>.-[---->+<]>.[++>-<]>----.[---->+++<]>+++.--[->++++++<]>.>----[-->+++<]>-.[->+++++<]>-.-[->+++++<]>--.>----[-->+++<]>.++++++++++++++.+++.---[->+++<]>.-[----->+<]>.[->+++++++++<]>.-[--->++<]>--.[->+++<]>.----[->+++++<]>.>----.[---->+++++<]>.>+[----->+<]>--.-[--->++++<]>+.-[-->+++<]>+.-[------->+++<]>-.[--->++++<]>.++[->+++++<]>+.+[----->+<]>+.--.-[-->+<]>.---[++>---<]>.+[--->+<]>++.--[--->++++<]>+.[------->+<]>+.[---->+<]>--.>+[----->++<]>.+[->++<]>.[++>---<]>-.>++++++++++.>+[----->+<]>-.[------>+<]>+.[->++++++<]>-.[->+++<]>-.[--->+<]>+++.>-----.>++++++[++>---<]>.>++++.[----->+++<]>++++.[---->+++<]>.--.-----[->++<]>.--[----->+<]>--.--[->++++<]>--.>+++.>+[--->+<]>-----.>++++.>-----[->++++<]>+.+[-->+++<]>-.-[--->++<]>.-[--->+<]>--.---------.--[->++<]>-.+[->+++<]>+.>--[-->+<]>-.---[->++++<]>-.---[->++<]>.[----->+<]>+.+[----->+++<]>.++[++>---<]>.----[->++<]>.[++++>-<]>.++++[--->++++<]>.----------.[++>-<]>.>------.[->+++++++<]>.>+++[->+++++<]>.-[++>-----<]>++.++[--->++<]>.[->++++++<]>.++++++++.[--->++<]>.>++[++>-<]>+.-[--------->+<]>.[->+++++++<]>+.+[----->++++<]>.[->+++++<]>.[++>-<]>-----.>++++.[----->++<]>++.--[---->+++<]>+.+[--->++++<]>-.---[->++<]>-.+[-->+<]>++.[++>-<]>++.[--->++++<]>.[->++<]>.>--.--[-->+++++++<]>+.--[->++++<]>--.----.>+[----->+<]>++.[--->++<]>++.-----.+++++++.>----[-->+++++<]>.-[--->+<]>++.-[--->++++<]>+.+[-->+++<]>.-----.+[--->+++++<]>.-[++>---<]>-.--------.--[->++<]>.[++>-<]>+++.[-->+<]>--.[->++++++<]>-.[--->++<]>.-----.+++[++>---<]>.>--.--[---->+<]>+++++.[--->+<]>--.>+[--->+<]>.>-[----->+<]>--.----[->++++<]>+.-[-->+++<]>-.[->+++<]>+.[-->+<]>--.[->++<]>-.[--->++<]>---.-----[-->+++<]>.[----->+<]>+.[->++<]>.++[++>---<]>++.>----.[->++++++++<]>-.[----->++<]>-.-----[->++<]>.>+[--->+<]>.+++++.>-[--->+<]>-.++++[->++<]>+.-[---->+<]>+++.+[->+++++<]>-.-[-->+<]>------.>++[++>-----<]>.[->++++<]>+.-[++>-<]>--.[--->+<]>+.++[->++<]>+.-[-->+++++<]>.[--->++++<]>.>-[--->+<]>---.>+++.+[->++++<]>+.>----[->++++<]>.[->+++<]>-.[--->+<]>++++++.++[->++<]>.[--->+<]>-.----------.+++[->++++<]>+.--[--->+<]>---.-----.>-----.>+[--------->+<]>.+++[->++<]>.+[->+++++<]>.>++[++>-<]>.>+[------->+<]>-.+[->+++<]>+.-[----->+<]>+.--[---->+<]>-.----[->+++<]>+.----.[++>-<]>.-[++>---<]>+.[----->++<]>-.>+++++++++.[->+++<]>++.+[-->+++<]>+.[-->+++<]>-.-[----->+<]>.[------->+<]>-.++[-->+++<]>.++[->+++<]>.[------->+<]>.-[------->++<]>++.[-->+<]>++++.-[--->++++<]>.++++++.++[----->+<]>.[++++++++++>-<]>-.>+++++++.-[++>---<]>+.++++[->++<]>.>+[----->+<]>-.----------.[-->+<]>-.---[->++<]>-.[->+++++<]>++.+++++++++++.>--.[++++++>-<]>----.-[----->+<]>-.>-----.+[---->+<]>+++++.>+++++++++++.-[--->+<]>+.+++++.+[--->++++<]>-.>-----------.[------->+<]>-.[----->+<]>+.[--->+<]>.-[-->+<]>-.>+[--->+<]>.>--[-->+<]>+.----[-->+++<]>-.-[---->+++<]>-.>----[-->+++<]>.[->++<]>-.[--->++++<]>--.>------------.-[->+++++<]>--.+++++++++++++.[--->++<]>---.>-[--->+<]>-.---[----->+<]>--.+[----->+<]>+.+[++>-<]>++++.[----->+<]>.[->+++<]>.-[-->+++<]>+.>+++++++++++.>----[---->+<]>.-[++>-<]>--.>+++++++.[----->++++++<]>.[------>+<]>+.+++++++++++.[->+++<]>++.++++++++++++.>-[--->+<]>--.>++++++++++.>-------------.[->++<]>.-[------->+++<]>+.[++>-<]>++++.--[->+++<]>+.-----------.-[------>+<]>++.+[++>---<]>.+[--->++<]>+.--[--->++<]>---.-[-->+<]>----.[----->++<]>.-[->++++<]>-.++[->++<]>+.-[--->++<]>-.---[->++<]>-.++++++.+[++>-<]>.-----[->+++<]>.--[-->+++<]>--.[++++++>-<]>+.-[--->++<]>+.+[---->+<]>++.++[---->+<]>.+[->++++++<]>.-[--->++++<]>--.+++++++++++++++.[--->++<]>++.[->+++<]>-.+[++++>---<]>+.----.++[->+++<]>.>--------.[->++++<]>.+[->++++<]>+.>+.+[----->++<]>.--[->++++<]>.---[->++++<]>.--[++>-------<]>.[--->++<]>-.[----->+<]>.+[--->++<]>+.[----->+++<]>-.++[------->+<]>.-[->++++<]>.---[->+++<]>.+[-->+++++<]>.[++>-<]>++++.[----->+++<]>.---[->++<]>.[->++++<]>--.+[----->+<]>+.[->++<]>+.>--[----->+<]>.---[->++<]>-.>-[----->+<]>.-[-->+<]>--.-[--->++++<]>++.[->++++<]>++.--[++>---<]>.[++>-<]>--.++[++>---<]>.--[->++<]>-.-[++++>---<]>.>-[--->+<]>--.----[->++++<]>+.-[++>---<]>.[--->++<]>+++.-----------.[->++++<]>+.-------[->++<]>.--[->++<]>.-[->++++++<]>-.-[----->+<]>+++.[--->++++<]>.[--->++++<]>+.-[++>-<]>-----.-[++>---<]>-.[-->+<]>++++.----[->+++++<]>+.-------.[--->++<]>.[-->+++<]>--.+[->++++++<]>-.-.---[->++<]>-.>----------.>+++++.-[--->+<]>+.>-------.-[---->+<]>-.-[-->+++++<]>+.+[->++++<]>-.[->++++++<]>.++.--------.+[->+++++++<]>.+++[->++<]>.[------>+<]>.[-->+<]>-.[->++<]>+.++.++++.++++[->++++<]>.[-->+++++<]>.-[->++++<]>.>++[++>-<]>+.-[----->+<]>-.+++.+[->+++<]>++.[--->++++<]>.[->++++<]>--.------.+[----->+<]>.-[---->+<]>.[--->+<]>.-[--->+++++<]>+.>+++++++++++.[--->+<]>++.-----.--[----->+<]>-.-[--->+<]>.--[--->+<]>-.[--->+++++<]>+.[-->+++<]>+.----[->++<]>.+[->++++<]>++.>--[-->+++<]>-.[++>-<]>--.--[->+++++<]>.+++++++++++.-[++>-----<]>++.>--[-->+++<]>-.++[------>+<]>+.[--->+<]>.[-->+<]>++.[->+++<]>+.+[->+++<]>++.+[-->+<]>+.++[->+++++<]>.-[->++++++<]>+.[----->++++<]>-.--[--->++<]>.[--->+<]>++.[------>+<]>----.-----[->++++<]>+.[->+++++++<]>+++.[--->++++<]>.[--->+<]>+++.-[--->+<]>+++.-[-->+<]>----.--[->+++<]>+.--------.[->++++++++<]>.-[----->+<]>++.--[--->++<]>.-[----->+++<]>-.++[-->+++++<]>+.>+++.+[--->+<]>+++.+[--->+<]>.[->+++++<]>+.>-[--->+<]>.[--->++<]>---.+[++++>-<]>---.++++[->++<]>.-[--->++++<]>-.++[->++<]>.+[--->++<]>+.-[--->++<]>----.+++++[->++<]>+.++++.[--->+<]>+.++[->+++<]>+.-[->+++++<]>-.-[--->++<]>+.>+[----->+<]>+.+[->+++<]>+.---[->++<]>-.[->++<]>+.-[++>-<]>----.-[++>-<]>--.[-->+++++<]>.+[-->+<]>++.-[->++++<]>+.>+[------->+<]>.[--->+<]>+++++.>+[--->++<]>.>++++++++++++.+[->+++<]>++.-[--->++++<]>-.[----->+<]>-.>+++++++.[----->+<]>++.>+++++++++.+[--->++++<]>+.[--->+<]>.---[-->+++++<]>.[++++>-<]>+++.>-------.+[----->+<]>-.----[->+++<]>.>+[--->+<]>++.>-[----->+<]>+.-[--->++++<]>.+[->++++<]>+.>++++++.>--[++++++>-<]>.--------.>+[--->+<]>+++.---[----->++<]>.>---.-.---[->+++++<]>.[->+++<]>.+[++>-<]>++++.-----[->++<]>.>-----.[--->+<]>+.++[->++<]>.[->++<]>-.+++[--->++++<]>.--[->+++++<]>-.>+++++++++++++.-[->++++++<]>.-[->+++++++<]>.--[->++<]>.[--->++<]>.[++>-<]>---.>---------.+[--->+<]>.[--->++<]>++++.>---.>-[--->+<]>++.[--->+<]>-.-[----->+++<]>+.+[--->++<]>.[------>+<]>+.[->+++<]>.[--->++<]>.[->++<]>.+[->++++<]>-.>--------.[--->++++<]>++.>----------.-[--->++++<]>++.-[--->+++++<]>++.-[------>+<]>.------.--[->++++<]>--.[++++++>-<]>+.[++>-----<]>-.[--->++<]>-.[->+++<]>+.[-->+++<]>+.-----.---[++>---<]>.[->+++<]>+.+.>+++++.>-----[->++++<]>.[------->++<]>+.>--.[--->+<]>.[----->++<]>.[++>---<]>+.+++[->+++<]>.+[--->++<]>+.-[--->+<]>++.++[->++<]>+.>-[--->+<]>--.-[->++<]>-.[--->+<]>--.[--->+<]>.-[->++<]>.[-------->+<]>+.+++[->++++<]>.[--->+<]>+++.[->++++<]>.--.++[++>---<]>.[-->+<]>--.>--[-->+<]>.+[-->+<]>++++.>-.>++[------>+<]>++.-[-->+<]>--.-[--->+<]>+++.---[->++++<]>+.+[------>+<]>+.[----->++<]>.>--[--->+<]>.>++[++>-<]>.++++[->++++<]>+.++[----->++<]>+.>-[--->+<]>.+++++++++++++.>----------.-[----->+<]>--.+[-->+++<]>+.+++++[->++<]>.[-->+<]>-------.+++++.[->++<]>-.----------.-[++++>-<]>--.-[---->+<]>+++.+[++>-<]>+.+[++>---<]>.+[--->+<]>+.>-----.>-[----->+<]>+++.[-->+<]>----.[->++<]>-.+[->++<]>.[--->+<]>--.------[->++<]>.[++>-<]>-.[->++<]>.>++++++.>--[-->+<]>-.>---------.-[--->+<]>-.---[->+++++<]>.[++>-----<]>++.+[-->+++<]>-.-[->++++<]>-.--[--->++<]>.+[--->++++<]>.>++++++++++++++.>-.----.[->+++++++++<]>.+++++.-[----->+<]>.[->+++<]>-.[---->+<]>--.----[->++<]>.++[->++++<]>++.[-->+++++<]>--.----[->+++<]>.[--->+<]>--..[->+++++<]>-.>+[--->++<]>..[--->+<]>++.+[--->+<]>++.-[->++++++<]>.>+++.>----[-->+++<]>-.-[-->+<]>-.+[--->++<]>++.------.---[->+++++<]>.>---------.[----->++<]>+.+[--->++<]>++.>++++[++++>-<]>.++++[->+++<]>+.>-----------.-[---->+<]>----.+++[->+++<]>.--.>++[++>-<]>.+[-->+<]>+.-------.++[->+++<]>++.>+++.[----->+++<]>.++[->++<]>+.++[->++<]>.+[--->++<]>+.+[--->++++<]>+.+[->++++<]>-.---[->+++<]>.>+[--->+<]>+++++.++[->++<]>+.--[--->+<]>--.+[-->+++<]>++.-[--->+<]>---.[->++++<]>++.>++++.-[----->+<]>----.-[----->+<]>.++++++++.[--->+<]>++.--[----->++<]>.[++++>---<]>+.[++>-<]>++.>+[----->+++<]>.+[---->+<]>.[----->+<]>++.+[--->+<]>+.>---.>+[--->+<]>++++++.[--->++<]>++.--[->+++<]>+.-[->++++<]>-.+[++>-<]>.[------>+<]>-.[--->+++++<]>.-[++>---<]>+.+[->+++<]>++.>--[-->+<]>+.>++++++++++++++.+[------->++<]>+.[->++++++<]>+.+[-->+++<]>-.>-----[->+++++<]>.+[->+++<]>+.---[->++++++<]>.[->+++<]>+.++++++++++++.--[--->+<]>--.>+[--->+<]>+++.[++>---<]>--.+[------->++++<]>.>---.[->+++++++++<]>.>+++[->++++++<]>+.+++.>+[----->+<]>.-[++++>-<]>+.[---->+<]>.>--.>++++.+[->+++++++<]>-.++[++++>-<]>+.[--->+<]>+++.[->+++<]>.[->+++++++<]>.>+.+[------>+<]>--.>--[-->+<]>.+[---->+++<]>+.>-----.[->++++<]>--.[++>-----<]>+.>+[--->+<]>.--[--->+<]>---.+++[->++++<]>+.+[--->+<]>+.[->++++<]>--.[--->+<]>--.[--->+<]>+++++.>+++.-[++>-<]>.++[->++++++<]>.-[->++++<]>--.+++++++++.[--->+<]>+++.++[->+++++<]>-.----[->++<]>.----[->++++<]>+.-[++++>---<]>++.[--->++<]>--.[-->+<]>++++.+[--->++<]>.>+++++++++.[->+++++<]>+.-----------.-[++>---<]>-.>++[++>---<]>.+[--->++++<]>.------------.+[--->++++<]>.+++[->+++++<]>+.[++>-<]>+.-[++>-<]>---.-[->++++<]>+.-[--->+<]>-.>-[----->+<]>+++.++[->++<]>+.-[----->+<]>-.>+[----->+<]>.----[->+++<]>-.+[--->+++++<]>+.>+[--->+<]>.+[++++>-<]>-.++[->+++<]>+.>---.>++++[->+++++<]>.>+[--->+<]>--.++[--->++<]>++.[-->+++<]>-.+[++>---<]>++.[--->+<]>++++.--[->+++<]>+.-----[->++<]>-.-[++>---<]>-.--[->++<]>-.+[++>-<]>++++.[------->+++<]>.>------[->+++<]>.-[->+++<]>-.+[--->++++<]>--.+++++.--[->++<]>.>++++++++++.-[----->++<]>++.--[--->++<]>-.[--->+<]>----.-----------------.[----->++<]>.++++.[++>---<]>-.++[->+++<]>++.-[->++++++<]>-.--[->++<]>.[->++<]>.-------.+[-->+<]>++.[----->+++<]>.>-[----->+<]>+.++.+[--->+<]>+++++.+++++++++++.++[->+++<]>.+[++>-<]>++.[--->+<]>++.+[->++<]>+.+++[-->+++<]>.>+++++++++++.>-----.-[-->+++<]>.++++++++++++.---.---.>+[--->+<]>+++.++++.--[--->+<]>.+++++[->++<]>.-[->+++<]>-.--[->+++++<]>.>---------.+[---->+<]>+++.[------->++<]>+.+[-->+++<]>-.++++[->+++<]>.-[++++>-<]>+.>--[-->+<]>-.-[------->+<]>+.+[--->+<]>+.-------.>-----------.-[->+++<]>-.>-[----->+<]>---.+[->++<]>+.++++++[->++<]>+.[->++<]>.[->++++<]>+.[->+++<]>-.>-[------->+<]>.---[->+++++<]>-.+[-->+++<]>+.-[----->+<]>+.>+[--->++<]>.-[----->++<]>++.[--->+++++<]>.>------.>+[--->+<]>.++++[->+++++<]>.-[-->+++<]>+.[++++>---<]>.[++>-<]>--.++[++>---<]>+.-[------>+<]>--.------------.-[++>-<]>---.---------.--[->++<]>-.>------------.-[----->+<]>+.[-->+<]>++++.++++++++++++++.-[->+++++<]>.+[----->+<]>++.[--->++<]>+.>--[-->+++++<]>.-[++>-----<]>-.[--->+<]>+++.[->+++<]>-.++++++++++++++.[--->+<]>-----.+[----->+<]>+.>--[----->+<]>--.---[->++++<]>.-----------------.+[->+++<]>++.++[-->+++<]>+.[->++<]>-.--[->+++++<]>+.>--------.-[----->+<]>+.>+[--->+<]>++.++[->+++++<]>.+[-->+++++<]>+.[->+++<]>-.[----->+<]>-.+[++++>-<]>-.+[--->++++<]>++.[++>---<]>.[--->+<]>+++.---------.-[--->+<]>++++.+++++[->++<]>.>--[-->+<]>+.>+[------->+<]>.[--->+<]>+.-----[->++<]>.[-->+<]>---.------------.[->+++++<]>+.--[->++<]>-.>++.+[----->+<]>--.--[->+++<]>.>+++++.++[----->+++<]>.+[->++<]>.+[--->++++<]>-.+++++++++.>--------.>+.+++[--->+++++<]>.[--->++++<]>-.---[++>---<]>-.>--[-->+<]>.-[----->++<]>.>+++.>--.[----->+<]>---.[----->+++<]>+.-----[->++<]>.[-->+<]>----.----[->+++<]>.---[->++<]>-.>++++++++.[----->++++<]>++.[++>-<]>+++.>----------.>--[--->+<]>.[++>-<]>+++++++.[------>+<]>+.>-[--->+<]>++.>++++++++.+[->++++<]>++.[--->++<]>++.---.+[---->+<]>-.>+++++.+[----->++++<]>+.>--------.---[->++++++<]>.--[-->+++<]>-.---[->++++<]>.>--.[------->+<]>++.[-->+++++<]>++.[++++++>-<]>.--[--->++<]>.[++++++>-<]>---.-[---->+++<]>.-[->++<]>-.--[----->+<]>+.---[->++++<]>-.[->++++++<]>.>--[-->+++<]>-.[++>-<]>+++.>-[----->+<]>+.-----------.+[----->++<]>.>--[-->+<]>+.------[->+++<]>+.+[++>-<]>++.+[->+++<]>.-[->+++++<]>++.>++++.[--------->+<]>.[->++++++++<]>+.>-------[->+++<]>.>+++++++++.+[++>-<]>+++.>-.---[-->+++<]>.[----->+<]>.[++>-<]>++++++.-.-[--->++<]>-.-[++++++>-<]>--.+[----->++<]>.>--.------[--->++++<]>.>++[++>-<]>+.++++[++>---<]>.-[++>-<]>-.--[--->++<]>---.--[--->+<]>--.>++[++>-<]>+.>+[--->+<]>----.[------->+<]>+.+++[----->+++<]>.+[++>-<]>++++.-[->+++<]>-.--[-->+++++<]>.--[------>+<]>-.++++.++++++++++++.++.+[++>---<]>.[--->++<]>.+[--->+<]>+.+.----------.>+++++++++.>--[-->+<]>+.-[----->++<]>--.[----->+<]>--.+[----->++++<]>.[----->+<]>-.++.[->++<]>-.[--->+++++<]>.>------.[->+++++<]>.>---.-[--->++<]>-.+[->++<]>+.------.--[--->+<]>.-[++>-<]>--.+[----->+<]>+.+++++++++.>+[--->++<]>.++[-->+++<]>.[->++<]>.[++++>-<]>-----.++++++++++++.-[-->+<]>--.-[->+++++<]>--.[->+++++<]>--.[--->++<]>--.>-------.+[-->+++<]>-.-[->++++<]>+.--[->++<]>.[--->++<]>++.---------.+[-->+++<]>++.>-----[->++++<]>+.+[-->+++<]>.-[++++>-<]>+.++[++>---<]>.[++>-<]>---.>++++[->+++++<]>.[--->+<]>.--[--->++<]>.+++.++[->+++<]>.---------.----[++>-----<]>.[--->++<]>++.[-->+<]>+.[->++++<]>-.[->+++<]>-.+[->++++<]>.+[--->+<]>+.-----------.-----.>-[----->+<]>-.>--[-->+<]>-.>+[--->+<]>++++.-[->+++++<]>.>+[--->+<]>+.++[->+++++<]>++.[++>-<]>-.-[--->+<]>----.>-[----->+<]>.>-[--->+<]>++++.+[-->+++<]>.+[++++>-<]>+++.-[---->+<]>+.++[->+++++<]>-.+[++++>-<]>.---[->++++<]>+.+[----->++<]>.>+[--->+<]>---.-[->+++++<]>++.>+[--->+<]>+++.[->+++++++<]>+.[->+++++<]>++.-[->+++<]>+.-[-->+<]>-.+[---->+<]>.-[->+++<]>-.---[->++++++<]>.-[--->++<]>-.-[-->+<]>---.[->+++++<]>.[->++++<]>-.+++.++.+[->+++++<]>.+++[->+++<]>+.--.[->++++<]>++.>-----[->+++<]>.-[-->+<]>---.>+[--->+<]>+.++[++>---<]>+.[++>-<]>++++.[->++++<]>.--[--->++<]>--.[-->+<]>+++++++.[++>-<]>++++.[-->+<]>+++.>+++++++.[----->++<]>.>+[------->+<]>.+[-->+<]>+++.>+[----->++<]>+.>+++++++.-[++>-<]>-.-------[->+++<]>.+[->++++<]>+.+++[++++++>-<]>+.++.+[----->+++<]>-.+[->+++<]>+.>+[--->+<]>------.+++++++++++++.--[->+++<]>-.++[->++<]>.-[->+++++<]>+.[--->+++++<]>-.-[++++++>-<]>+++.+++[++>---<]>.>-[--->+<]>++.-[--->+<]>---.[--->+<]>-----.[----->+<]>--.>----------.[->+++++++<]>.[++>---<]>++.++++++++.++[->++<]>.-.[->++++++++<]>.>---------.>+[------->+<]>-.+[--->++<]>.-[--->++<]>.>-[----->+<]>.++[->++<]>.+++++++.----[->+++<]>.>-[--->+<]>-.>++[++>-----<]>.>+[--->+<]>.--[--->+<]>-.+++[->++<]>+.--.>--[-->+<]>-.>+[--->++<]>.[--->+<]>--.[->++++<]>--.[------->++<]>.-[--->+<]>-.-[->++++<]>-.+[++>---<]>-.-[--->+<]>----.++.++++++++.>++[++>-----<]>.-[----->++<]>+.>+++++++++++.>+[----->+<]>-.>-[--->+<]>.[----->++<]>.[------->+<]>+.>+++.-[--->+<]>.[-->+<]>++.>-------.>+++++[->+++++<]>.+[++>---<]>-.-[----->+++<]>.>+++++++.++.+[++>---<]>++.++++++++++++.[--->+<]>++.>-[----->+<]>-.-[->+++<]>+.[++++>-<]>.+[++>---<]>.-[--->+<]>-.+[--->+<]>+.-[----->++<]>.[->+++<]>+.>--[----->+<]>.-[--->++++<]>.[---->+++++<]>++.+[->+++++<]>.[-->+<]>.+[-->+++<]>.++++++++++.+[->++++<]>+.[->+++++<]>-.[---->+++++<]>-.+[---->+++<]>++.[--->++<]>+.+[-->+++<]>++.>------.-[----->++<]>+.++++[->++<]>+.[->+++<]>-.[----->++<]>++.[-->+<]>---.------[->++<]>.--[--->+<]>----.[++>-<]>+.>+[--->+<]>.++++[->+++<]>+.--[++++>---<]>.>-----------.--.[----->++++<]>-.[->++<]>.>++++++++++++.+[--->++<]>+.>---------.[----->+++++++<]>.+[--->++<]>+.>---.--[->+++++<]>.++++++.--------.++++.---[->++<]>.-[->+++<]>+.--[------->+<]>+.+++[++>---<]>.>+[--->+<]>+.++[++>---<]>+.+[----->++<]>.>------.[----->+<]>-.[--->+<]>.-[++++++>-<]>+.[++++>---<]>.--[->+++<]>.----[->+++<]>-.[------->+<]>++.-[++>-----<]>+.[->++++<]>-.>--------------.[--->++<]>--.+[->++<]>.++.[-->+<]>---.------------.-[->+++<]>-.+[->++++<]>++.>++++++++++.[++++++>-<]>.[--->++++<]>--.>++++++++.[++++>-----<]>-.+++[++++++>-<]>.--[--->++<]>-.>-[--->+<]>++.-------------.--[-->+++++<]>.+++++++++++.>+[--->++<]>.[--->+<]>++.>+++++.>-----[--->++++<]>.[->+++++++<]>.[++>-<]>-.[->++++<]>.[->+++++<]>+.[--->+<]>++.--[->+++++<]>-.>-[----->+<]>+.[++++++>-<]>.-[--->++<]>--.>---.[----->++++<]>---.[->++++++<]>+.+++++++++.>++.-[----->+<]>-.+[----->++<]>-.--[--->+<]>--.+++.>--.[--->+<]>-.+++++[->++<]>+.+[-->+<]>.-[++>---<]>-.[++>---<]>-.++++.-[++>-<]>---.-[->++<]>.[++++>-<]>++.>+[--->+<]>.[------->+<]>.-[--->++<]>--.---[->++++++<]>-.++[--->++<]>+.-[++>---<]>.>-[----->+<]>---.-[->+++<]>.>++[++>-<]>.-[-->+<]>---.[--->++<]>.----------.--------.+++++++.>+++++++.+[--->++<]>+.>++.+[------->+<]>-.>----[->++++<]>-.+[-->+<]>+.+[++>-<]>++.>-.-[++++++++++>-<]>.----------------.-[----->+<]>--.[++>-----<]>-.>--[-->+++<]>.--[--->++++<]>--.[------>+<]>-.-[->++++<]>--.+[--->+++++<]>.--[->+++<]>+.++[---->+<]>++.+[->+++<]>+.---[->++<]>.>---------.-[--->++++<]>---.-[------>+<]>-.-----[->++<]>.++[->+++<]>++.>-.---[->++++<]>-.[->++++<]>++.>-[--->+<]>++.>+++++.[--->++<]>.-------[->++<]>.[----->+++<]>--.[++++>---<]>.++[++>---<]>.+[---->+<]>+.>+++++++++.[------->+<]>+.>++++++++++.[->+++++<]>.----[--->++++<]>.[----->++<]>.+++.>+++[->++++++<]>.[->+++<]>-.---[-->+++<]>.+[++++>-<]>--.>---------.[->+++<]>.+[--->+++++<]>.-[->+++++<]>++.>+[--->+<]>++++.>+++.[------->++++<]>.>+[----->+++<]>.>-[--->+<]>.>--[-->+<]>.-------.-[----->++<]>.[--->++<]>-.-----------.++[->+++<]>+.+[----->++<]>-.++++++++.[------->+<]>++.>++.[----->++<]>.>----.----[->+++++<]>.[->+++<]>-.[->++<]>-.-[++++>-<]>++++.[--->+<]>-.+[->++++<]>++.++[->++<]>+.-[->+++<]>-.++++++++++++++++.[--->+<]>++.++++++++++++++.-[--->+++++<]>.>--[--->+<]>.[++>-<]>+++++.--[->+++<]>+.+[->++++<]>++.[++>-<]>---.[++>-----<]>++.>-[----->+<]>++.[->++<]>.[++>-<]>----.+[++++++>-<]>.[----->+<]>-.[->+++++<]>++.++[->+++<]>+.[--->+<]>-.+[--->+<]>+++.>+++[->++++++<]>.-[->+++++++<]>-.-[->+++<]>.[----->+<]>++.>++[++>-<]>.>+++++++++++.-[++>---<]>--.+[----->+<]>.+++++[->++<]>.>+[--->+<]>--.+++++++++++++.++[->+++<]>++.++[->+++<]>++.>-.>++++[++>---<]>++.++[->++<]>.[++++>-<]>----.----[->++<]>.--[--->++++<]>.[----->+<]>+.[->+++<]>+.--[->+++<]>-.[----->+<]>--.-[-->+++<]>--.>+++.>+[--------->+<]>.[--->++<]>+.-[-->+++<]>+.[++>-<]>----.>--[-->+<]>-.--[++++>---<]>.--[--->++++<]>.+++[------->+<]>.+.+++++++++++.>-[----->+<]>-.+++++++.>-------.-----.-[->++<]>.+[->+++++++++<]>.>+[--->+<]>+.>+++++++++++.[--->++++<]>+.++++.[->++++<]>+.-[-->+<]>--.[-->+<]>-.+[->++++++<]>--.+[--->++<]>-.-[--->+<]>.-[----->++<]>+.+[-->+<]>++.>+++++++++++.-[--->+<]>-.>-------------.[--->+<]>.++++++++++++.>++.-[--->+<]>-------.----[->++<]>-.-[++>---<]>+.[----->+<]>-.+[->++++<]>++.>-----[->+++<]>.+[->++++<]>-.-[++>-<]>---.[++>-----<]>+.-[---->+<]>+.+[-->+<]>+.>------[->++++<]>..+++[->+++<]>.+[++>---<]>.-[++>---<]>.-----.-----.+[----->++<]>-.+[--->++<]>++.[++>---<]>+.-----------.[->+++++<]>-.+++[->+++<]>++.>+[----->++<]>--.+++[->+++<]>++.-[-->+++<]>.+[++>-<]>+++.-[------->+<]>-.>+[----->++<]>++.[++>-<]>----.------.-[->++<]>-.---------.[++++++>-<]>.[->++++<]>-.+[++>---<]>+.---[->+++++<]>.++[---->+<]>++.>------------.[-->+<]>++.++++++.-------------.+[++>-----<]>.+[++>-----<]>++.++[++++>-<]>.>+[--->+<]>.>++[++>-<]>.+[--->+<]>+++++.[------->++<]>.>+[----->+<]>.+[++>-<]>++++.>++++[->++++<]>.+[->+++<]>+.++[->+++<]>.-[----->++++<]>+.[--------->+<]>+.---[->+++<]>.-[++>-<]>--.-[->++++<]>--.>------.[----->+++<]>.>++.++++.--[++++>-<]>---.-[->++++++<]>.>-.[----->++<]>-.>+++++++++.+[--------->++<]>.[->+++++<]>--.-----[->++<]>.[-->+++++<]>.[--->+<]>---.[-->+++++<]>.+[----->++<]>.-[--->++++<]>---.+[++>---<]>-.[->+++++++<]>-.>++[++>-----<]>.[->++++++++<]>.[--->+<]>--.+[--->+<]>.[->++++++<]>.++[->+++++<]>.-----.>------------.>+++++++++++++.-[++>---<]>--.[++++>-<]>.>-.>++++[++++>-<]>-.++[->+++<]>+.-[++>---<]>.[--->+++++<]>+.[-->+++++<]>+.-[----->+<]>-.+[++++>-<]>.>----[-->+++<]>-.++++++++++++++++.-[--->++<]>.++.-[->++++++<]>.+[->+++<]>+.-[->++++<]>+.-----.-[->++++<]>-.+++[->+++<]>.>--[--->+<]>.[--->++<]>+.>-------[->+++<]>.+[-->+<]>++.[------->+<]>--.+++.+[++>---<]>-.+++++++.---[->+++<]>.--[->+++<]>-.++[->++<]>.>-.---[---->+<]>+.+[--->++<]>+.+[->++++++<]>.++++.>+[--->+<]>---.>--[-->+<]>-.++[---->+++<]>.>-----.>++[++>---<]>.>-[----->+<]>-.[-->+<]>.-[++>-<]>---.+[->++++++<]>-.+[++>---<]>.>-----------.--[----->+<]>+.>+[--->+<]>+.--[--->++<]>--.----.[-->+<]>.++++++.[--->+<]>-.[->+++++<]>++.[++>-----<]>.+[->+++++<]>.+++++++++.-.+[--->+<]>+.[----->+<]>.>---------.-[-->+<]>-.[++>---<]>+.[->++<]>-.[--->+<]>.>-----.---[->++++<]>-.[--->+<]>.[--->++++<]>+.-[-->+<]>-----.+[-->+<]>++.>-----.[--->+<]>-.-[------->+<]>++.+[->+++++<]>.--[--->++<]>--.[-->+++++<]>.+++[++>---<]>.[->++<]>-.+[--->+<]>++.[-->+<]>-.[--->+++++<]>.[--->++<]>---.>+[----->+<]>.-[----->+++<]>+.+[++>-<]>+++.++++++++++++++.[++>-<]>----.>--[-->+++<]>.>+[----->++<]>+.+[-->+<]>+++.++++++++++++++.[->+++++<]>+++.>+[--->+<]>+++.--[--->+<]>-.>+++[->+++++<]>.+[--->++<]>-.+[-->+++++<]>+.---[------->+<]>.>-[--->+<]>---.>---.[----->++++<]>-.-------[->++<]>.[------->+<]>-.[->+++<]>.[->++++++++++<]>.++++++[->++<]>+.------.-[->++<]>.>----.[--->+<]>+++++++.>+++.++[->+++++<]>.>------.--[--->++<]>.-.+[++>-<]>++.[++++++>-<]>.--[->++++++<]>.>--------.---------.--[--->++<]>-.+++[->++<]>+.[--->++<]>+++.------[->++<]>.[++>-<]>+++.+[->++++<]>+.----------.+[--->+<]>++++.[--->+<]>+.+[->++++<]>-.--[--->+<]>.-[--->+<]>-.+[-->+++++<]>--.----------------.>-----------.--[----->+<]>+.++[--->++<]>+.+[-->+<]>.--[--->++<]>.+[--->+<]>++.-[--->++<]>--.>--[-->+<]>-.[--->+<]>+++++.-[--->++++<]>.--[-->+++++++<]>.-[->++++++<]>+.-[------>+<]>.--[->++<]>-.+[-->+++<]>++.>-.------.>+++++[->+++++<]>+.>+++++++.>-[--->+<]>----.[----->+++<]>.+[---->+<]>.--[->++++++<]>-.>-------.>+[----->++<]>++.[++++>---<]>++.>---.-[--->++++<]>-.+[++++>-<]>++.-[->++++<]>.[++++>-<]>++.>-[--->+<]>--.+[++>-<]>+.--[->++<]>-.+++++++[->++<]>+.+[++>---<]>++.>--------.[->++++++<]>-.>---.>+++++++++++++.+[--->+<]>++.+[->++<]>+.[->++<]>.[->++<]>+.[->++<]>.[->++<]>+.[->++<]>+.[->++<]>+.[->++<]>.[->++<]>+.[->++<]>+.[->++<]>.[->++<]>+.[->++<]>.[->++<]>+.[->++<]>+.[->++<]>+.[->++<]>.[->++<]>+.[->++<]>+.[->++<]>.[->++<]>+.[->++<]>.[->++<]>+.>-.[--->+<]>+++++++++.>-.[----->++<]>.++[---->+++<]>+.>++++.>+[----->+<]>----.+[->++++<]>.
\$\endgroup\$
  • 2
    \$\begingroup\$ The submission is the image itself, not the code \$\endgroup\$ – MilkyWay90 Aug 13 at 21:18
  • \$\begingroup\$ Can you edit the header to remove the necessary brainfuck part, and update your score to the compression ratio? \$\endgroup\$ – Jo King Aug 15 at 1:10
4
\$\begingroup\$

0.9514747859 (4204-byte output)

noise

Note: the image above is not the actual file I used, but it is the image.

Here is a hexdump of the file: https://gist.github.com/pommicket/cf2982e8ecf09a4de89d3a849526c64b

The file is in the netpbm format, and can be generated with this C code:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv) {
    if (argc < 2) {
        fprintf(stderr, "Please pass in seed.\n");
        return EXIT_FAILURE;
    }
    srand(atoi(argv[1]));
    FILE *fp = fopen("image.pgm", "w");
    int width = 2, height = 1993;
    fprintf(fp, "P5 %d %d 255 ", width, height);
    for (int i = 0; i < width * height; i++) {
        fputc(rand() & 0xFF, fp);
    }
    fclose(fp);
    return 0;
}

The random seed must be passed into the program. After trying some seeds, I got one which produced a 4204 byte gzipped file. As Nnnes pointed out, tar will include metadata in the file, so your results might differ from mine.

netpbm isn't supported everywhere, but it works with imagemagick's convert (so just do convert image.pgm image.png to turn it into a png).

Why this image/format?

A file which consists of entirely random bytes is very hard to compress (in fact, any possible compression algorithm will do on average, no better than not compressing for random files). The content of the actual file is just P5 2 1993 followed by 3986 random bytes, which is why gzip has such a hard time compressing it.

\$\endgroup\$
  • \$\begingroup\$ For some reason I can't go more than 4201 on my cluster. Out of curiosity, what was the seed you used? \$\endgroup\$ – Krzysztof Szewczyk Aug 13 at 18:53
  • \$\begingroup\$ @KrzysztofSzewczyk it’s not about the seed, it’s about the image format. Your PNGs’ headers include a lot of deterministic bytes, so they compress easily. \$\endgroup\$ – Grimy Aug 13 at 19:11
  • \$\begingroup\$ @Grimy hm, alright, I'll switch tommorow to the RAW format. I didn't expect around eight bytes having so big impact on the image. \$\endgroup\$ – Krzysztof Szewczyk Aug 13 at 19:13
  • 2
    \$\begingroup\$ @KrzysztofSzewczyk There's potentially much more than 8 bytes of non-random data in a random PNG file. The bare minimum is to include the file signature followed by the IHDR, IDAT and IEND chunks, but most PNG generators will include a couple of optional chunks that are likely to compress pretty well -- as Grimy said -- except maybe the CRC's that can be assumed to be pretty random. \$\endgroup\$ – Arnauld Aug 14 at 11:53
  • \$\begingroup\$ Yeah, I'll consider this. Honestly I went for trial and error here, and it's kinda my mistake. \$\endgroup\$ – Krzysztof Szewczyk Aug 14 at 11:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.