Alorithms and Data Structure in Python