Hundreds of thousands of people have marched in Brazil in a wave of anger against the way the country is being run.
It began as a protest over rising public transport costs but is fast spreading into a far wider revolt – over corruption, public services, and spending on the football World Cup.
They poured into the streets of Rio de Janeiro and several other cities, many responding to calls via social media. Traffic was halted and public buildings besieged.
Although the atmosphere was mostly festive, there were some outbreaks of violence.
Buildings were damaged and in Rio there were clashes between protesters and police.
A modest rise in bus fares in Sao Paolo has sparked a mass protest against the authorities. There were chants of “the people have awakened” and “Brazil is changing”.
The demands are diverse. Many people say they are tired of various grievances: corruption, nepotism, taxes, prices, poor public services.
“It is a cry from society against the corruption that is messing up the country. I recognise that some of protesters’ ideas are wrong. I don’t support 100 percent of it, but I think that in some way society has got tired and is going to say something,” said one young man taking part in the demonstrations.
The protests come as Brazil hosts the Confederations Cup, seen as a dry run for next year’s World Cup.
Many resent billions being spent on new stadiums, arguing public services, health and education are neglected.
The government hopes the sporting events including the 2016 Olympics will boost Brazil’s world standing.
The protests are a clear challenge to its priorities.