Riot police in Brazil have fired tear gas to disperse thousands of protesters in Sao Paulo and Rio de Janeiro who marched against the cost of hosting the football World Cup.
Some demonstrators hurled stones while other burned tyres and blocked roads.
They say they are angry that billions of dollars are being spent on next month’s football tournament, rather than social projects and housing.
Protests also took place in many other cities, including the capital Brasilia.
Teachers and civil servants, among others, were also on strike across Brazil.
In Rio, aerial images showed hundreds of people marching in rush-hour traffic on a main thoroughfare. The city will host the final match of the World Cup on 13 July.
Protesters there and in Sao Paulo, Brazil’s biggest city, clashed with police before beginning to disperse.
The number of people on the streets was much lower than during similar protests last year.
Some of those taking part, however, promised the demonstrations would get bigger and more frequent as the World Cup gets closer.
Last June, more than a million people took to the street over poor public services, corruption and the high cost of hosting the World Cup.
The tournament is due to kick off on 12 June.
The BBC’s Gary Duffy in Sao Paulo says that the scale of the protests will be watched closely by the government as an indication of the security challenges they may face during the tournament.