PORTLAND, Maine — A 47-year-old Pennsylvania man has braved Maine’s ocean waters to win the 30th annual Peaks-to-Portland swim.

James Yeomans of Bethlehem, Pa., won Saturday’s 2.4-mile swim from Peaks Island in Portland Harbor to the Portland mainland’s East End Beach in 43 minutes and 28 seconds.

Twenty-year-old Kristen Desrosiers of Gorham was the top female finisher in 46:59.1. She also led the women last year.

More than 300 people signed up for the swim, which raises money for the Cumberland County YMCA’s financial assistance program.