The Montreal Canadiens have most of their roster spots filled, but they don't exactly have an abundance of cap space heading into free agency. As of today, if the salary cap goes up to the previously projected $71M maximum, the Canadiens have just under $7.3M in cap space. Yesterday, Justin Blades broke down how their salary is dolled out going forward.

The Canadiens currently have six restricted free agents that have a shot at the NHL next year, though not at the same time, and the possibility of bringing back Torrey Mitchell in a fourth line role. The most important of those restricted players are Alex Galchenyuk and Nathan Beaulieu, and even if you estimate conservatively, that cap space disappears fast.

The salary cap hasn't really increased since P.K. Subban signed his bridge deal in 2013, at which time he had already established himself as a number one defenseman in the NHL. Assuming that logically, Subban's cap hit of $2.875M is the cap for Galchenyuk, he will likely get that number simply because Nail Yakupov for $2.5M per season on a bridge deal in Edmonton.

Beaulieu established himself as a top-six defenseman late in the season, but he wasn't playing big minutes. It's possible that he gets a bridge deal similar to the one the Canadiens gave Raphael Diaz back in 2013, about $1.25M per season.

Those two contracts alone cut down the Habs' cap space to just $3.162M, with two forward slots still to be filled. Say the Canadiens retain Torrey Mitchell at a relatively cheap $1.5M, which is a $400K decrease from his last cap hit, and $1M less than last year's salary. Add to that, the Canadiens qualify Brian Flynn with a 10% raise to $715K, they're down to just $947K in cap space. It's remarkably tight.

As Olivier Bouchard has noted in L'Actualité, Marc Bergevin prefers to have a couple million in cap space to play around with during the season. The obvious solution is to trade one of the Canadiens' sizeable contracts, but which one? Here are the possibilities.

Tom Gilbert: One year remaining, $2.8M cap hit

Probably the easiest player to trade among those the Canadiens would be willing to part with, the 32-year-old had a rough first half of the season, but showed great versatility in the second half, and had an excellent playoffs, finishing tied for third on the team in scoring.

Gilbert has an easily digestible, expiring contract, and a history of being a solid contributor. The Canadiens would be unlikely to get a lot back for him, but they also would be least likely to need to take salary back. The Canadiens also have a replacement for Gilbert within the organization, with the emerging Greg Pateryn making a push for the third pairing, and with Subban and Jeff Petry on the right side on the top two pairings, the third pairing is significantly more insulated than years past.

Alexei Emelin: Three years remaining, $4.1M cap hit

Of all the players the Canadiens could move on from, Emelin is likely the one that they would benefit from moving the most. Jarred Tinordi is ready to take over third pairing NHL minutes, and Emelin has struggled mightily.

The problem though, is that Emelin has a full no-trade clause for another year, meaning the Canadiens would need to convince him to waive that clause in order to trade him. This would significantly limit the trade possibilities, possibly to none at all, meaning trading Emelin at this point just isn't very realistic.

P.A. Parenteau: One year remaining, $4M cap hit

After an extremely rough season, it's very unlikely that Parenteau could fetch anything of value. His expiring contract may be attractive to some teams, however even if the Canadiens were able to move Parenteau and not take much salary back, they're so desperate for talent up front that it doesn't seem like a good idea.

At 32-years-old, Parenteau may be declining a bit, but he remains one of the most talented players on the Canadiens, and far more likely to score a top-six pace next season than anyone he could be traded for, with his value on the market likely diminished.

Tomas Plekanec: One year remaining, $5M cap hit

Of all the players that are possibly on the trade block, Plekanec is the most valuable. Coming off of a 60 point season, Plekanec may be at his highest value in years, and his reasonable salary on an expiring contract would make him very attractive to a lot of teams.

Plekanec isn't getting any younger either, he'll turn 33 after the first month of the season. At the same time, he was far and away the best centre on the Canadiens last season, and every season going back to when Saku Koivu left. Plekanec may be edging into a slow decline, but his downward trend has been less pronounced than other, younger players. The Canadiens could get a good player back in a Plekanec trade, but the question is "Could they get a player as valuable to the team as Plekanec?" I don't think they can.

David Desharnais: Two years remaining, $3.5M cap hit

The first reaction to any Desharnais trade proposal is always that he has no value because he's small, blah blah. Anyone who believes that a player who has scored an average of 53 points per 82 games the last four seasons, and is signed to a short, reasonable contract has no value, isn't someone worth listening to.

Does Desharnais' lack of versatility hurt his value? Of course it does, but not enough that teams wouldn't be interested. Desharnais makes sense to trade mostly because he stands in the ways of Galchenyuk's future as a center, but also because his cap hit should make him digestible to most teams, and he has the talent to me a middle-six player on a good team.

Brandon Prust: One year remaining, $2.5M cap hit

Weirdly, the media-friendly Prust didn't show up for the season-ending media availability for locker clean out day. It's possible that after the controversy over referee Brad Watson, Prust just didn't want to talk to the media. Dale Weise has stolen a lot of Prust's minutes over the last season, and though Prust had his first fully healthy season, and played very well, he couldn't get goals to go in for him.

Loved by hockey people around the league, Prust's cap hit is big for a player of his calibre, but it's entirely possible that with an expiring contract, he could be a very attractive trade asset.

It's possible that none of these guys are traded and we're all shocked by something completely different, and possible that multiple players are moved. What would you do?