Write an \$n\$-bytes program \$AB\$ such that:

* it outputs an integer \$x,\ 0\lt x\lt n\$;
* both its \$x\$-byte prefix \$A\$ and \$(n-x)\$-byte suffix \$B\$, when run as programs, output \$AB\$.

\$A, B\$ and \$AB\$ should:

* run in the same language
* not take any input
* use the same output method

This is [code-golf](/questions/tagged/code-golf "show questions tagged 'code-golf'"), so the shortest code in bytes wins (i.e., your score is \$ n \$).

Program example (in a dummy 'lizard language')
----------------------------------------------

With \$x = 2\$ bytes, the whole program is `lizard` the first-part program is `li`, and the second-part program is `zard`, then the following behaviour would be expected:

```
 source | output |
--------+--------+
lizard  | 2      |
li      | lizard |
zard    | lizard |

```