A shooting at a primary school in south Texas has killed 19 young children and two adults.
The attacker opened fire at Robb Elementary School in Uvalde, which serves children aged seven to ten, before being killed by police, according to officials.
According to detectives, the 18-year-old suspect possessed a pistol, an AR-15 semi-automatic weapon, and high-capacity magazines.
Before the rampage, the kid is suspected of shooting his grandma.
According to local media, he may have been a high school student in the neighborhood.
Uvalde Consolidated Independent School District Chief of Police Pete Arredondo said the shooting began at 11:32 local time on Tuesday, and that investigators believe the attacker “did act alone during this heinous crime”.
Texas Governor Greg Abbott said the shooter, whom he named as Salvador Ramos, abandoned a vehicle before entering the school to “horrifically, incomprehensibly” open fire.
An Uvalde school district police officer, who worked at the school, saw Ramos emerge from the vehicle carrying a rifle and wearing body armour, according to Erick Estrada from the Texas Department of Public Safety, who was speaking to CNN.
The officer “engaged” the suspect but was unable to stop him, Mr Estrada said. Two more officers from Uvalde Police Department also attempted to stop Ramos but were unable to do so, and called for back-up.
Several of the children who died have been identified.
Family members confirmed the deaths of 10-year-olds Xavier Lopez and Amerie Jo Garza in statements on Tuesday night.
The two adults who died were both teachers – Irma Garcia and Eva Mireles.
According to the school district’s website, Mrs Garcia is a mother-of-four and had been a teacher for 23 years. The same website says that Ms Mireles had been a teacher for 17 years, has a daughter in college and loved running and hiking.
Nearly 500 pupils are enrolled in the predominantly Hispanic school around 85 miles (135km) west of the city of San Antonio.
The Associated Press news agency reports that a US Border Patrol official who was nearby when the shooting began rushed into the school and shot and killed the gunman, who was behind a barricade.
Border Patrol is a federal agency that guards US ports of entry. Uvalde, which is fewer than 80 miles from the border with Mexico, is home to a Border Patrol station.
Two border agents were reportedly shot in an exchange with the gunman. One agent was shot in the head, officials say, adding that both were now in a stable condition in hospital.
According to CBS News, the attacker was wearing body armour as he carried out the attack. Another 18-year-old who is suspected of attacking a grocery store in Buffalo, New York, on 14 May was also wearing body armour and carrying a semi-automatic rifle – both of which are commercially available in the US.
The Uvalde Memorial Hospital posted on Facebook earlier that 13 children had been taken to hospital “via ambulances or buses”.
A 66-year-old woman and a 10-year-old girl were in a critical condition at a hospital in San Antonio, University Health hospital officials said.