The bodies of the children all lie here, dumped into a narrow trench hastily dug into the frozen earth of Mariupol to the constant drumbeat of shelling.
There is 18-month-old Kirill, whose shrapnel wound to the head proved too much for his little toddler’s body. There is 16-year-old Iliya, whose legs were blown up in an explosion during a football game at a school field. There is the girl no older than six who wore the pyjamas with cartoon unicorns, among the first of Mariupol’s children to die from a Russian shell.
They are stacked together with dozens of others in this mass grave on the outskirts of the city. A man covered in a bright blue tarp, weighed down by stones at the crumbling kerb. A woman wrapped in a red and gold bedsheet, her legs neatly bound at the ankles with a scrap of white fabric. Workers toss the bodies in as fast as they can, because the less time they spend in the open, the better their own chances of survival.
“The only thing (I want) is for this to be finished,” said worker Volodymyr Bykovskyi, pulling crinkling black body bags from a truck. “Damn them all, those people who started this.”
More bodies will come, from streets where they are everywhere and from the hospital basement where adults and children are laid out awaiting someone to pick them up. The youngest still has an umbilical stump attached.
Each air strike and shell that relentlessly pounds Mariupol – about one a minute at times – drives home the curse of a geography that has put the city squarely in the path of Russia’s domination of Ukraine. This southern seaport of 430,000 has become a symbol of Russian President Vladimir Putin’s drive to crush democratic Ukraine – but also of a fierce resistance on the ground.
In the nearly three weeks since Russia’s war began, two Associated Press (AP) journalists have been the only international media present in Mariupol, chronicling its fall into chaos and despair. The city is now encircled by Russian soldiers, who are slowly squeezing the life out of it, one blast at a time.
Several appeals for humanitarian corridors to evacuate civilians went unheeded, until Ukrainian officials said on Wednesday that about 30,000 people had fled in convoys of cars. Air strikes and shells have hit the maternity hospital, the fire department, homes, a church, a field outside a school. For the estimated hundreds of thousands who remain, there is quite simply nowhere to go.
The surrounding roads are mined and the port blocked. Food is running out, and the Russians have stopped humanitarian attempts to bring it in. Electricity is mostly gone and water is sparse, with residents melting snow to drink. Some parents have even left their newborns at the hospital, perhaps hoping to give them a chance at life in the one place with decent electricity and water.
People burn scraps of furniture in makeshift grills to warm their hands in the freezing cold and cook what little food there still is. The grills themselves are built with the one thing in plentiful supply: bricks and shards of metal scattered in the streets from destroyed buildings.
Death is everywhere. Local officials have tallied more than 2,500 deaths in the siege, but many bodies cannot be counted because of the endless shelling. They have told families to leave their dead outside in the streets because it is too dangerous to hold funerals.
Many of the deaths documented by the AP were of children and mothers, despite Russia’s claims that civilians have not been attacked. Doctors say they are treating 10 civilians for every injured Ukrainian soldier.
“They have a clear order to hold Mariupol hostage, to mock it, to constantly bomb and shell it,” Ukrainian President Volodymyr Zelensky said on March 10.
Just weeks ago, Mariupol’s future seemed much brighter.
If geography drives a city’s destiny, Mariupol was on the path to success, with its thriving iron and steel plants, a deep-water port and high global demand for both. Even the dark weeks of 2014, when the city nearly fell to Russia-backed separatists in vicious street battles, were fading into memory.
And so the first few days of the invasion had a perverse familiarity for many residents. About 100,000 people left at that time while they still could, according to Serhiy Orlov, the deputy mayor. But most stayed put, figuring they could wait out whatever came next or eventually make their way west like so many others.
“I felt more fear in 2014, I don’t feel the same panic now,” Anna Efimova said as she shopped for supplies at a market on February 24. “There is no panic. There’s nowhere to run, where can we run?”
That same day, a Ukrainian military radar and airfield were among the first targets of Russian artillery. Shelling and air strikes could and did come at any moment, and people spent most of their time in shelters. Life was hardly normal, but it was liveable.
By February 27, that started to change, as an ambulance raced into a city hospital carrying a small motionless girl, not yet six. Her brown hair was pulled back off her pale face with a rubber band, and her pyjama trousers were bloodied by Russian shelling.
Her wounded father came with her, his head bandaged. Her mother stood outside the ambulance, weeping.
As the doctors and nurses huddled around her, one gave her an injection. Another shocked her with a defibrillator. A doctor in blue scrubs, pumping oxygen into her, looked straight into the camera of an AP journalist allowed inside and cursed.
“Show this to Putin,” he stormed with expletive-laced fury. “The eyes of this child and crying doctors.”
They could not save her. Doctors covered the tiny body with her pink striped jacket and gently closed her eyes. She now rests in the mass grave.
The same geography that for so long worked in Mariupol’s favour had turned against it. The city stands squarely between regions controlled by the Russia-backed separatists – about 10 kilometres (six miles) to the east at the closest point – and the Crimean Peninsula annexed by Russia in 2014. The capture of Mariupol would give the Russians a clear land corridor all the way through, controlling the Sea of Azov.
As February ended, the siege began. Ignoring the danger, or restless, or perhaps just feeling invincible as teenagers do, a group of boys met up a few days later, on March 2, to play football on a pitch outside a school.
A bomb exploded. The blast tore through Iliya’s legs.
The odds were against him, and increasingly against the city. The electricity went out yet again, as did most mobile networks. Without communications, medics had to guess which hospitals could still handle the wounded and which roads could still be navigated to reach them.
Iliya could not be saved. His father, Serhii, dropped down, hugged his dead boy’s head and wailed out his grief.
On March 4, it was yet another child in the emergency room – Kirill, the toddler struck in the head by shrapnel. His mother and stepfather bundled him in a blanket. They hoped for the best, and then endured the worst.
“Why? Why? Why?” his sobbing mother, Marina Yatsko, asked in the hospital hallway, as medical workers looked on helplessly. She tenderly unwrapped the blanket around her lifeless child to kiss him and inhale his scent one last time, her dark hair falling over him.
That was the day the darkness settled in for good – a blackout in both power and knowledge. Ukrainian television and radio were cut, and car stereos became the only link to the outside world. They played Russian news, describing a world that could not be further from the reality in Mariupol.
As it sank in that there was truly no escape, the mood of the city changed. It did not take long for grocery store shelves to empty. Mariupol’s residents cowered by night in underground shelters and emerged by day to grab what they could before scurrying underground again.
On March 6, in the way of desperate people everywhere, they turned on each other. On one street lined with darkened stores, people smashed windows, pried open metal shutters, grabbed what they could.
A man who had broken into a store found himself face to face with the furious shopkeeper, caught red-handed with a child’s rubber ball.
“You bastard, you stole that ball now. Put the ball back. Why did you even come here?” she demanded. Shame written on his face, he tossed the ball into a corner and fled.
Nearby, a soldier emerged from another looted store, on the verge of tears.
“People, please be united. … This is your home. Why are you smashing windows, why are you stealing from your shops?” he pleaded, his voice breaking.
Yet another attempt to negotiate an evacuation failed. A crowd formed at one of the roads leading away from the city, but a police officer blocked their path.
“Everything is mined, the ways out of town are being shelled,” he told them. “Trust me, I have family at home, and I am also worried about them. Unfortunately, the maximum security for all of us is to be inside the city, underground and in the shelters.”
And that is where Goma Janna could be found that night, weeping beside an oil lamp that threw light but not enough heat to take the chill off the basement room. She wore a scarf and a cheery turquoise snowflake sweater as she roughly rubbed the tears from her face, one side at a time. Behind her, beyond the small halo of light, a small group of women and children crouched in the darkness, trembling at the explosions above.
“I want my home, I want my job. I’m so sad about people and about the city, the children,” she sobbed.
This agony fits in with Mr Putin’s goals. The siege is a military tactic popularised in medieval times and designed to crush a population through starvation and violence, allowing an attacking force to spare its own soldiers the cost of entering a hostile city. Instead, civilians are the ones left to die, slowly and painfully.
Mr Putin has refined the tactic during his years in power, first in the Chechen city of Grozny in 2000 and then in the Syrian city of Aleppo in 2016. He reduced both to ruins.
“It epitomises Russian warfare, what we see now in terms of the siege,” said Mathieu Boulegue, a researcher for Chatham House’s Russia programme.
By March 9, the sound of Russian fighter jets in Mariupol was enough to send people screaming for cover – anything to avoid the air strikes they knew would follow, even if they did not know where.
The jets rumbled across the sky, this time decimating the maternity hospital. They left a crater two storeys deep in the courtyard.
Rescuers rushed a pregnant woman through the rubble and light snow as she stroked her bloodied belly, face blanched and head lolling listlessly to the side. Her baby was dying inside her, and she knew it, medics said.
“Kill me now!” she screamed, as they struggled to save her life at another hospital even closer to the front line.
The baby was born dead. Half-an-hour later, the mother died too. The doctors had no time to learn either of their names.
Another pregnant woman, Mariana Vishegirskaya, was waiting to give birth at the maternity hospital when the strike hit. Her brow and cheek bloodied, she clutched her belongings in a plastic bag and navigated the debris-strewn stairs in polka-dot pyjamas. Outside the ruined hospital, she stared motionless with wide blue eyes at the crackling flames.
Ms Vishegirskaya delivered her child the next day to the sound of shellfire. Baby Veronika drew her first breath on March 10.
The two women – one dead and one a mother – have since become the symbol of their blackened, burning home town. Facing worldwide condemnation, Russian officials claimed that the maternity hospital had been taken over by far-right Ukrainian forces to use as a base and emptied of patients and nurses.
In two tweets, the Russian embassy in London posted side-by-side images of AP photos with the word “Fake” over them in red text. They claimed that the maternity hospital had long been out of operation, and that Ms Vishegirskaya was an actress playing a role. Twitter has since removed the tweets, saying they violated its rules.
The AP reporters in Mariupol who documented the attack in video and photos saw nothing to indicate the hospital was used as anything other than a hospital. There is also nothing to suggest Ms Vishegirskaya, a Ukrainian beauty blogger from Mariupol, was anything but a patient. Veronika’s birth attests to the pregnancy that her mother carefully documented on Instagram, including one post in which she is wearing the polka-dot pyjamas.
Two days after Veronika was born, four Russian tanks emblazoned with the letter Z took up position near the hospital where she and her mother were recovering. An AP journalist was among a group of medical workers who came under sniper fire, with one hit in the hip.
The windows rattled, and the hallways were lined with people with nowhere else to go. Anastasia Erashova wept and trembled as she held a sleeping child. Shelling had just killed her other child as well as her brother’s child, and Ms Erashova’s scalp was encrusted with blood.
“I don’t know where to run to,” she cried out, her anguish growing with every sob. “Who will bring back our children? Who?”
By early this week, Russian forces had seized control of the building entirely, trapping medics and patients inside and using it as a base, according to a doctor there and local officials.
Mr Orlov, the deputy mayor, predicted worse is soon to come. Most of the city remains trapped.
“Our defenders will defend to the last bullet,” he said. “But people are dying without water and food, and I think in the next several days we will count hundreds and thousands of deaths.”