P, Np, And Np Completeness: The Basics Of Computational Complexity