Police and young anti-government protesters clashed in the Peruvian capital, Lima, over the weekend.
A rights group said at least 18 protesters had been injured in protests held on Saturday and Sunday, dubbed 'Gen Z march' by the organisers. A police officer suffered burns, officials said.
Groups of young people, mainly under 30 years of age, were joined by bus and taxi drivers and marched towards Congress to express their anger over corruption scandals and growing insecurity.
The protesters, some of whom threw stones and other missiles, were dispersed by police firing tear gas and rubber bullets, AFP news agency reported.
The protests first erupted on Saturday 20 September, triggered by a pension reform passed earlier this month under which young people will be required to pay into a private pension fund.
The approval rating of the president, Dina Boluarte, has been in the single figures for months and many Peruvians say they want her to leave office.
We are marching against corruption, for life, and against the crime that is killing us every day, 28-year-old Adriana Flores told AFP.
The Gen Z protesters were joined by transport workers who say that the government is not doing enough to combat extortion.
Taxi and bus drivers say gangs, including the Venezuela-based Tren de Aragua, threaten them into paying 'protection money'.
Some held placards reading 'We demand a life without fear'.
But human rights group CNDDHH said police had overreacted in their response.
Marching towards Congress, the protesters chanted 'united for the Peru we deserve'.
Once they had reached the security barriers, they also sang the national anthem.
Many Peruvians are critical of Congress, accusing the legislative of not representing the interests of the people.
President Boluarte, who was sworn in as president after her predecessor was impeached for attempting to dissolve Congress in 2022, doubled her salary in July - a move which many called 'outrageous' in the face of her record low approval ratings.