> 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. 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 -> SS | (S) | [S] | <S> | {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. - Brain-Flak derivatives cannot compete. - 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.