# Objective
Given a string consisting of printable ASCII characters (`!`0x21 ― `~`0x7E), treat it as an element in the **free idempotent monoid** (as defined below) over the printable ASCII characters, and output the same element represented in the fewest characters as possible.

# Free idempotent monoid
Recall that the **free monoid** over a set is essentially the collection of lists over the set, endowed with concatenation.

The **free idempotent monoid** is the quotient object of the free monoid that identifies the lists up to idempotency. In lay terms, if the list has two or more contiguous sub-lists that compare equal, the sub-lists can be replaced by one sub-list, while retaining overall equivalence of the list.

# Proof of uniqueness
We want to show that, for two strings \$x\$ and \$y\$ that belong to the same equivalence class, if \$x\$ and \$y\$ both have the fewest characters in the class, \$x\$ and \$y\$ actually are the same string.

It's obvious that \$x\$ and \$y\$ consist of the same set of characters. If \$x\$ and \$y\$ both have length zero, we are done. Otherwise, let \$\alpha\$ be the first character in \$x\$, and let \$\beta\$ be the first character in \$y\$. Since every member of the class \$x\$ belongs has \$\alpha\$ as the first character, and likewise for \$y\$ and \$\beta\$, it follows that \$\alpha = \beta\$.

If \$x\$ and \$y\$ both have length one, we are done. Otherwise, let \$\alpha'\$ be the second character in \$x\$, and let \$\beta'\$ be the second character in \$y\$. It's obvious that \$\alpha' \neq \alpha\$ and \$\beta' \neq \beta\$. Now, every member of the the class \$x\$ belongs has \$\alpha'\$ as the first character when the longest prefix consisting of \$\alpha\$ is stripped off, and likewise for \$y\$ and \$\beta'\$, it follows that \$\alpha' = \beta'\$.

If \$x\$ and \$y\$ both have length two, we are done. Otherwise, let \$\alpha''\$ be the third character in \$x\$, and let \$\beta''\$ be the third character in \$y\$. It's obvious that the strings \$\alpha \alpha' \alpha''\$ and \$\beta \beta' \beta''\$ are irreducible. Now, every member of the the class \$x\$ belongs has \$\alpha''\$ as the first character when the longest prefix being equivalent to the string \$\alpha\alpha'\$ is stripped off, and likewise for \$y\$ and \$\beta''\$, it follows that \$\alpha'' = \beta''\$.

The proof is recursive until exhausting all characters in \$x\$ and \$y\$.

# Examples
Here, the strings are double-quoted.
```
Input -> Output

"" -> ""
"x" -> "x"
"xx" -> "x"
"xy" -> "xy"
"!!?" -> "!?"
"+/+/" -> "+/"
"1+1+1" -> "1+1"
"1+2+1" -> "1+2+1"
"~~~" -> "~"
"TheThem" -> "Them"
"thethem" -> "them"
"cOUgh" -> "cOUgh"
"XIXAXA" -> "XIXA"
"IXIXAXA" -> "IXA"
"Xx" -> "Xx"
"198034034" -> "198034"
"...!...!" -> ".!"
"...!...?" -> ".!.?"
"Ook!Ook?" -> "Ook!Ook?"
"<o><oo>" -> "<o>"
```

# Worked example
For suppose the inputted string is `QUAQUAUAL`. The substring `QUA` contiguously appears twice, enabling the input to be reduced to `QUAUAL`. Then again, it has the substring `UA` contiguously appearing twice, enabling the input to be reduced to `QUAL`. Then, we identify there is no substring contiguously appearing multiple times, resulting in outputting `QUAL`.