  Perhaps the most interesting of the above classes is NP: nondeterministic polynomial time. The definition comes not from a real machine, but rather a mathematical abstraction. A nondeterministic Turing machine, \(N\), makes a choice (guess) of one of two possible actions at each step. If, on input \(w\), some sequence of these choices leads to acceptance, then we say that \(\mathbf{N}\) accepts \(w\), and we say the nondeterministic time taken by \(\mathbf{N}\) on input \(w\), is just the number of steps taken in the sequence that leads to acceptance. A nondeterministic machine is not charged for all the other possible choices it might have made, just the single sequence of correct choices.