John Wang and his wife were in Kyiv in late February when the Russian military launched its full-scale attack on Ukraine.
Just a few weeks earlier he had started a job in the Ukrainian capital after graduating with a master's degree from a local university.
But instead of starting a new career, Wang was spending his days in a cold underground shelter as bombs rained down on the city.
Do you have questions about the biggest topics and trends from around the world? Get the answers with SCMP Knowledge, our new platform of curated content with explainers, FAQs, analyses and infographics brought to you by our award-winning team.
The couple were among the last Chinese to make their way out of Kyiv, joining local refugees on February 28 to walk more than an hour to catch a train to Budapest.
To ensure they could squeeze into the crowded train, the pair had just their passports and the clothes they were wearing, leaving computers and other belongings in the flat they rented in Kyiv.
"I realised we needed to prepare for the worst," Wang said.
"We saw frightened and crying faces everywhere. All of them were Ukrainian children, helpless women and elderly people because adult male citizens are not allowed to leave the country.
"I finally uttered a sigh of relief when seeing the train entering Budapest."
The couple were among an estimated 6,000 Chinese - mostly businesspeople and students - in Ukraine when the invasion began.
Almost two weeks before the attack, other countries including the United States, Britain, Canada and Japan advised their nationals to leave when Western intelligence showed Russian troops were massing on Ukraine's borders.
But China waited until after war broke out on February 24 before alerting its citizens to leave Kyiv and join Ukrainian refugees to flee west to neighbouring countries that provided temporary free visas for foreigners.
The Chinese embassy issued a notice on February 25, saying it planned to evacuate nationals on chartered flights out of Kyiv only to say later that the efforts had to be delayed because of safety considerations amid "the fierce battles between warring sides".
In addition, civilian flights could only leave from outside Ukraine so the Chinese embassy had to arrange coaches to evacuate its citizens to the western borders, for transit through countries such as Poland, Moldova, Romania, Slovakia and Hungary.
Beijing's slow response to the war and its late evacuation efforts raised speculation that China was surprised by the invasion, despite its close ties with Moscow.
Beijing has since walked a diplomatic tightrope, refusing to condemn Moscow, which has been targeted with a barrage of international sanctions.
China has mounted large-scale evacuations before. In 2015, the Chinese navy deployed its warships to evacuate 225 foreign nationals and almost 600 Chinese citizens from Yemen's southern port of Aden, amid fierce fighting there. The Chinese government bore the cost of getting them out of the conflict zone.
But this time Beijing held off, chartering civilian aircraft instead.
For Wang and his wife, the cost of the flight home from Budapest was a shock.
"We knew some airlines had doubled the air ticket prices during the pandemic, but we didn't expect chartered flights arranged by the government could also be so expensive," Wang said.
"We have spent more than 50,000 yuan [US$7,900] so far, including 18,000 yuan for an air ticket each, 6,000 yuan for quarantine costs, as well as other miscellaneous expenses."
They had no choice but to pay the asking price to get home as soon as possible.
Wang said the high price could have been avoided if Chinese authorities had responded as quickly as other countries.
Huang Yanbo, a 19-year-old Chinese student at Ukraine's National Aviation University, also had to pay 18,000 yuan for his one-way flight home.
Huang was among the first batch to be sent to Bucharest on March 1, after spending nine hours at a border checkpoint in Moldova in sub-zero conditions. Three days later, he boarded a flight back to China.
But he still has not been able to return to his family.
Almost all the passengers on Huang's flight - more than 200 people - were confirmed positive with Covid-19.
"I was confirmed as infected with Covid-19 after taking a PCR [polymerase chain reaction] test. I had to go into a one-month isolation," Huang said.
"My parents got a glimpse of me soon after I landed at Hangzhou airport on March 4. We can only reunite when I am freed on April 5."
None of the passengers on the flight were severely ill. Many, including Huang, were defined as asymptomatic.
"But all of us still needed to have compulsory treatment in hospital, and I am the first to leave because my test turned negative on the second day," Huang said.
He was sent to a hotel in his hometown Changde, in central Hunan province, for a further two-week isolation period before being sent home for a week of observation.
Macau-based military observer Antony Wong Tong said Beijing's ambiguous position on Russia's invasion made it reluctant to deploy the People's Liberation Army for evacuation this time.
"Besides the need to take care of the 'no limits' partnership with Russia, China also doesn't want to offend Ukraine, which has had a good relationship with Beijing," Wong said.
"The appearance of the PLA in such a sensitive area and the timing might become an embarrassing issue."
However, India was not so reluctant. Like China, India has not condemned the Russian invasion but New Delhi sent four C-17 military cargo planes to fly nationals out of Ukraine soon after the war erupted, carrying 18,000 of an estimated 20,000 Indian nationals home without them having to pay for their evacuation.
Last week, more than a month after the war broke out, the Chinese foreign ministry announced Beijing had completed its evacuation of more than 5,200 Chinese nationals from Ukraine "without deaths or major casualties".
Asked about the belated evacuation and expensive air tickets, the foreign ministry said the airlines had tried to set the lowest price.
But it did not say why the Chinese military was not asked to help.
"Whether it's in Yemen or Ukraine, we have implemented plans to evacuate Chinese citizens according to the development trends," the ministry said.
"On the basis of ensuring safety, we have taken all feasible measures to assist the evacuation of Chinese nationals."
Wang said he did not agree with the Chinese government's reluctance to use the word "invasion" to describe the war.
"Bombing and dropping paratroopers to attack a country's capital city is definitely an invasion, not a so-called special military operation," he said.
Wang also said that before the couple crossed into Hungary, Ukrainian border officials ordered him to delete all the photos and video clips he took during his harrowing journey out.
But they are visions that will stay with him.
"Those are images I will never forget."
Huang, the student, just hopes peace can return to Ukraine as soon as possible and he can go back to Kyiv to continue his studies.
"I've started the online lessons arranged by my university in Kyiv from April 1 in a hotel room," he said.
"I miss the dusk of Kyiv. I landed in the nightfall of the city two years ago, and fled from war in the twilight too."
This article originally appeared in the South China Morning Post (SCMP), the most authoritative voice reporting on China and Asia for more than a century. For more SCMP stories, please explore the SCMP app or visit the SCMP's Facebook and Twitter pages. Copyright © 2022 South China Morning Post Publishers Ltd. All rights reserved.
Copyright (c) 2022. South China Morning Post Publishers Ltd. All rights reserved.