It looks like the latest admit rate is 19.9%. Some folks argue that all schools under 20% are automatically a reach. Your scores are solidly a match, near the top quartile overall, so I’d call it a high match. If you want to be safe, sure, call it a low reach due to admit rate.
If you want to add another school and it came down to Middlebury vs Amherst, if you’re ok with the CS offerings at both, if you’d be happy at either, then Mid is obviously the better bet. You can afford more risk, IMO, but it’s not a bad idea to average down your risk if Amherst isn’t providing you with anything that you really desire, over Mid. If it is, then sweeten the pot a bit.