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, September 20, 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.
Many Peruvians are critical of Congress, accusing the legislative of not representing the interests of the people. These people [members of Congress] raise their own salaries, they kill us like flies and don't care about anything. We need a total change, we're sick of this situation, one young woman told local news site RPP.
Reports indicate police may have overreacted, with human rights groups condemning the use of excessive tear gas against demonstrators.
Many of the protesters chanted and sang the national anthem as they marched towards Congress, demanding justice and an end to the government's current policies.