> 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

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.

So we don't ruin the surprise, Brain-Flak and its derivatives are not allowed to compete in this challenge.

# 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 -> (S)S | [S]S | &lt;S&gt;S | {S}S | E</code>

  where `E` is 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.

- Brain-Flak derivatives cannot compete.

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.