Police in the Brazilian city of Sao Paulo have arrested 20 people after a protest against price rises on public transport turned violent.
Demonstrators set fire to a bus and briefly blocked Sao Paulo's main road, Avenida Paulista, on Tuesday night.
More than 10,000 people marched through the city's streets for six hours, according to the security forces, which used rubber bullets to disperse them.
They are demanding that a 6.7% price rise on public transport be revoked.
On 2 June, prices for a single ticket were raised from 3 reals ($1.40, £0.90) to 3.20 reals ($1.50, £0.96).
The authorities say that the rise is well below inflation, which since the last price rise in January 2011 has been at 15,5% according to official figures.
Police said the protest had been peaceful until a small group tried to storm the Parque Dom Pedro II bus station.
The demonstration then split, with some protesters heading back to Avenida Paulista, breaking the windows of nine banks and numerous bus shelters on the way, police said.
Two students were knocked down by a car but were not seriously hurt. It was the third such protest in less than a week.
There have also been demonstrations against a public transport price rise in the city of Rio de Janeiro, where more than 30 people were arrested on Monday.
The protests come at a sensitive time for Rio, which is among those hosting the football Confederations Cup, due to kick off on Saturday.
In the first game to be played in Rio, Mexico will face Italy on Sunday.