> This question is part of a series Brain-flak Birthday challenges designed to celebrate Brain-Flak's first Birthday. You can find more information about Brain-Flak's Birthday [here](https://hackmd.io/KwRgnARiAcCGAsBaaEBMAGR8DG8Cmis0AZsVhPLOtsWAOzQAmIQA?view).

Today is Brain-Flak's first Birthday!  So I thought we would throw it a surprise birthday party.  So in your favorite language print 

    Surprise!
    Happy Birthday, Brain-Flak!

*(Trailing whitespace is permitted)*

As always programs should be golfed. However since Brain-Flak programs are made of brackets, it wont count any brackets in your source against you. (The characters `()[]<>{}` don't count towards your byte total), but they must be balanced as to not upset Brain-Flak.

# Rules

Here is a breakdown of the rules

- The brackets in your source must be balanced. That is the parentheses of your program must be spanned by the following grammar:

   <code>S -> SS | (S) | [S] | &lt;S&gt; | {S} | E</code>

  where `E` is the empty string.

  That is to say that a balanced string is either the concatenation of two balanced strings braces around a balanced string or the empty string.

- The score of a program is the number of non-bracket bytes.

- Your goal should be to minimize your score in whatever language you choose.

- Standard rules apply so you may write either a complete program or a function.

- in the event of a tie raw byte count acts as a tie breaker

There are certainly going to be zero byte solutions in certain languages ([Parenthesis Hell](https://esolangs.org/wiki/Parenthesis_Hell),  [Parenthetic](https://esolangs.org/wiki/Parenthetic), [Glypho](https://esolangs.org/wiki/Glypho), [Lenguage](https://esolangs.org/wiki/Lenguage)).  Try to find ways to golf well in languages where this is not a trivial task.