Run Bellman-Ford for iterations, tracking parent pointers.
On the -th iteration, find any node where distance improves. If none, no negative cycle exists.
Walk back steps from using parents to get inside the cycle.
From that node, follow parents and collect nodes until you see a repeat. That sequence is the cycle.
Output the cycle in correct order by reversing the collected sequence.
The double-walk approach (first steps to enter cycle, then loop to extract it) guarantees correct cycle extraction.