1-up your average quine A 1-up quine is a program which is very similar to a quine. The one major difference is that instead of printing itself once, when n copies of the program are concatenated, the result prints the original program n+1 times.

Example

If your program is Abc123:

Abc123  -&gt;  Abc123Abc123
Abc123Abc123  -&gt;  Abc123Abc123Abc123
Abc123Abc123Abc123  -&gt; Abc123Abc123Abc123Abc123


Challenge

Your challenge is to create the shortest valid 1-up quine in any language. The usual quine rules apply, so you may not:


Submit the empty program.
Directly or indirectly read1 the source code.
Use quining built-ins.


This is code-golf, so shortest code in bytes wins.

1This does not include using a hard-coded string or code block as part of your program.
GolfScript, 12 bytes

{`'.~'+:n}.~


Try it online!

Explanation

This combines ideas from the standard GolfScript quine:

{'.~'}.~


And my recently discovered quine:

":n`":n`


The main idea is again to use n which is printed implicitly at the end of the program in order to get the additional copy of the quine. Since assigning the variable doesn't change anything when it's done again in subsequent copies, this will only add one copy. Here's a breakdown of the code:

{        # Standard quine framework. This pushes the block, duplicates it and runs the
         # second copy, such that it can process the first copy to create a quine.
  `      # Convert the block to its string representation.
  '.~'+  # Append the string '.~' to make a complete quine. This is simply left on the
         # stack to be printed at the end.
  :n     # Store the string in n such that one more copy is printed at the end.
}.~