Highway 31 is a slightly minor north-south highway through the Selkirk Mountains in British Columbia, Canada. The highway first gained its number in 1973, and it is one of the few numbered highways in the province that is not fully paved. Highway 31 has a total distance of 175 km (109 mi) — 37 km (23 mi) along Kootenay Lake between Balfour (a junction with Highway 3A) and Kaslo (a junction with Highway 31A), 106 km (66 mi) north along Kootenay Lake north of Kaslo, then the Duncan and Lardeau Rivers and the north shore of Trout Lake, and 32 km (20 mi) between the northwest end of Trout Lake and Galena Bay, where it ends at Highway 23.