You need a Schengen visa.
You must apply to the embassy/consulate of the Schegen country that is the main destination of your trip; note that this is not necessarily the same as the country you will go to first! What counts is your purpose for going to each country; if the purpose is the same for all three (say, general tourism), then the one you'll be in the most time will be your main destination. And if even that doesn't pinpoint a main destination, then (and only then!) you fall back to looking at the first Schengen country.
Once you have a Schengen visa, assuming that it is valid during your entire trip, it will also let you enter Bulgaria. Bulgaria is not itself a Schengen member, but it unilaterally allows holders of valid Schengen visas to enter for short visits nevertheless, without needing a separate visa for Bulgaria.
If your stay in Bulgaria extends beyond the time period your Schengen visa is valid in, then you need to apply for a separate Bulgarian visa too.