Finished Problem 30