The Olympic torch has arrived in Rio de Janeiro by boat after a 20,000-kilometer journey through one of the world's largest countries.
After picking up the torch at a local naval academy on August 3, Rio Mayor Eduardo Paes carried the torch on its first few laps through the streets of the city.
Later in the north of Rio, the torch relay was challenged by demonstrators angry at the high cost of hosting the Games.
Police dispersed the crowd with tear gas and rubber bullets.
Three people were reportedly injured by rubber bullets, including a 10-year-old girl.
Brazil is in the grip of a deep recession, and more protests are expected ahead of the Olympic opening ceremony on August 5.
Organizers say more than a million tickets, or 20 percent of the total, remained unsold as of August 3.