Ответ:

Обозначим того, на кого указывает каждый друг, как его ответ. По условию в исходной ситуации ответ Стрекозы верен, а ответы Огонька и Ушастика неверны. Значит, подарок подарила Стрекоза.

Проверим условие о замене указаний на второго друга. Если подарок подарила Стрекоза, то после замены Огонёк и Ушастик укажут на Стрекозу и скажут правду. Это противоречит условию, что единственным правдивым станет Ушастик. Следовательно, указания в задаче не определяют согласованного решения.

Действительно, обозначим Стрекозу, Огонька и Ушастика буквами С, О и У. Если подарок у Огонька, то исходные ответы С→О, О→С, У→С дают правду только Стрекозе. После замены ответов получатся С→У, О→У, У→О: правду скажет только Ушастик. Это одновременно удовлетворяет обоим условиям.

Ответ: подарок подарил Огонёк.