Searching does wonders. Quick search and you would have found this. Works pretty close to how NP does it.