1 | 48 | Lower Brule,
SD - Team Time (1st 5) 1:35:07.0 | Spread (1st 5) 1:10.0 |
| 4, 8, 10, 12, 14, (18), (24) |
| Jerome Grassrope, Cory Castaway, Tyronne Ziegler, Brian LaRoche, Elliot LaRoche, (Lane Grey), (Phil Langdeau) |
| 18:15.0, 19:06.0, 19:07.0, 19:14.0, 19:25.0, (20:01.0), (20:46.0) |
2 | 56 | Ipswich,
SD - Team Time (1st 5) 1:35:20.3 | Spread (1st 5) 2:11.4 |
| 2, 6, 13, 15, 20 |
| Taylor Thorson, Xavier Kadlec, Dylan Wald, Turner Thorson, Evan Onken |
| 17:57.9, 18:28.2, 19:16.9, 19:28.0, 20:09.3 |
3 | 74 | Faulkton Area,
SD - Team Time (1st 5) 1:36:45.2 | Spread (1st 5) 2:58.1 |
| 1, 7, 21, 22, 23, (31), (38) |
| Hunter Niederbaumer, Alex Sorensen, Philip Holsing, Mason Kaiser, Kayden Hammond, (Austin Kaiser), (Max Quinn) |
| 17:18.4, 18:46.0, 20:11.6, 20:12.7, 20:16.5, (22:21.1), (24:20.3) |
4 | 75 | Potter County,
SD - Team Time (1st 5) 1:38:13.8 | Spread (1st 5) 3:12.8 |
| 3, 11, 16, 19, 26, (27), (35) |
| Nicholas Schlachter, Ethan Pitlick, Brayden Schlachter, Lincoln Stuwe, Sean Seurer, (Tanner Eide), (Seth Sharp) |
| 18:09.6, 19:08.0, 19:30.0, 20:03.8, 21:22.4, (21:34.0), (23:27.3) |
5 | 83 | Sanborn Central/Woonsocket,
SD - Team Time (1st 5) 1:39:44.7 | Spread (1st 5) 3:15.0 |
| 5, 9, 16, 25, 28, (32), (33) |
| Jeffery Boschee, Braxton Gentles, Noah Terklidsen, Andrew Lindgren, Tanner Christian, (Carter Christian), (Michael Georges) |
| 18:24.0, 19:06.8, 19:30.0, 21:04.9, 21:39.0, (22:27.0), (22:37.0) |
6 | 185 | Lyman,
SD - Team Time (1st 5) 2:06:55.9 | Spread (1st 5) 6:33.1 |
| 30, 34, 39, 40, 42 |
| Xavier Russel, Mason Ryan, Aiden Grassrope, Ash Grassrope, Aksel Ehlers |
| 22:07.4, 23:19.0, 25:26.0, 27:23.0, 28:40.5 |
7 | 186 | Wolsey-Wessington,
SD - Team Time (1st 5) 2:06:56.1 | Spread (1st 5) 8:16.6 |
| 29, 36, 37, 41, 43 |
| Kaleb Cleveland, Carson Walters, Grant Timm, Ricardo Sabalier, Breydyn Skipper |
| 21:57.0, 23:29.4, 23:40.0, 27:36.1, 30:13.6 |