Finished the SICP big homework1