NFA complement

The normal way to take the complement of a regular language L, assuming you have a DFA recognising L is the following:

Take all accept states and change them into non-accepting states, and vice versa.

But you cannot do the same for NFAs:

M which recognises at least {a, b}.
Complement of M which also recognises at least {a}.

So for correctness you cannot just make non-accepting states accepting and vice versa; you probably need to convert it into an equivalent DFA first and run the complement algorithm on that.