The Laurentide Ice Sheet was a massive sheet of ice that covered millions of square kilometers, including most of Canada and a large portion of the northern United States, multiple times during the Quaternary glacial epochs— from 2.588 ± 0.005 million years ago to the present. The last advance covered most of northern North America between c. 95,000 and c. 20,000 years before the present day, and among other geomorphological effects, gouged out the five Great Lakes and the hosts of smaller lakes of the Canadian shield. These lakes extend from from the eastern Northwest Territories, through most of northern Canada, and the upper Midwestern United States (Minnesota, Wisconsin, and Michigan) to the Finger Lakes, through Lake Champlain and Lake George areas of New York, across the northern Appalachians into and through all of New England and Nova Scotia. At times, the ice sheet's southern margin included the present-day sites of northeastern coastal towns and cities such as Portsmouth, New Hampshire, Boston, New York City, and Great Lakes coastal cities and towns as far south as Chicago and St. Louis, Missouri—and then followed quite precisely the present course of the Missouri River up to the northern slopes of the Cypress Hills, beyond which it merged with the Cordilleran Ice Sheet. The ice coverage extended approximately as far south as 38 degrees latitude in the mid-continent.