i learn algs and write it down myself