> 
> 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:

`S -> SS | (S) | [S] | <S> | {S} | E`

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.