If you do the Danube cruise Passau to Budapest I would suggest you spend some time in Salzburg before hand very good train service form Salzburg to Passau &great Christmas market. Also there is a very good Mozart dinner in St Peter Cellars. If you go the other way starting Budapest to Passau do Salzburg afterwards. Europe has very good rail system so v easy to connect to Munich, Vienna or Zurich for flights home. Budapest is said to have one of the best Christmas markets.