Edge cases:
No preferences: max flow is , output pairs.
More boys than girls (or vice versa): max flow is limited by the smaller set.
One boy likes all girls: he gets paired with one, others remain.
Disconnected preferences: some boys or girls remain unpaired.
Always check if (no preferences). Return immediately. Also handle or . These cases should not crash your program.