28 of 32

Jeff Chiu/Associated Press

The best: Drafted Reuben Foster

Not only did the 49ers land one of the most skilled defensive players in the draft way down in the No. 31 spot, but they also did so with house money.

San Francisco still got the player it wanted in Solomon Thomas at the top of the draft, but only after collecting a pair of middle-round picks in a trade with the Bears. They then used one of those new picks as trade leverage in order to move back into Round 1 to select Foster, who might have been a top-10 pick if not for concerns unrelated to his talent level.

Genius.

The worst: Signed Pierre Garcon

Garcon might be the best receiver on the team in 2017, and he's certainly better than all of the wideouts they had last year.

But San Francisco is clearly rebuilding, so I'm not sure it's a great idea to give a five-year, $47.5 million contract to a guy who'll be 31 before he plays his first game in that uniform.