Ukrainian President Volodymyr Zelenskyy on Saturday said Ukraine would win back all the cities it had lost to Russia, including the eastern city of Severodonetsk, and said the war was becoming tough to handle emotionally.
In a late-night video address, he also said Ukraine had been hit by 45 Russian missiles and rockets over the previous 24 hours, which he described as a cynical but doomed attempt to break his people's spirits.
"All our cities — Severodonetsk, Donetsk, Luhansk — we'll get them all back," he said.
It was the only time in the address that he mentioned Severodonetsk, which fell to the Russian army earlier in the day after weeks of fighting.
"At this stage of the war it's spiritually difficult, emotionally difficult ... we don't have a sense of how long it will last, how many more blows, losses and efforts will be needed before we see victory is on the horizon," Mr Zelenskyy said.
The missiles attacks confirmed that sanctions against Russia were not enough to help Ukraine, which needed more weapons, he said.
"The air defence systems — the modern systems that our partners have — should not be on training grounds or in storage, but in Ukraine, where they are needed now, needed more than anywhere else in the world," he said.
The fall of Severodonetsk, once home to more than 100,000 people, was Russia's biggest victory since capturing the port of Mariupol last month.
It transforms the battlefield in the east after weeks in which Moscow's huge advantage in firepower had yielded slow gains.
Russia is expected to press on and seize more ground, while Ukraine will hope that Moscow's military efforts leave its forces vulnerable to counterattack.