Wolfram Language (Mathematica), 6262 60 bytes
#/.Table[#⋂##&@@#~Select~MemberQ@ii||i(i#⋂##&@@#~Select~MemberQ@ii||i->Set@$,{i,Max@#}]&)/@Join@@#&
The private-use character is⋂
are \[Function]
\[Intersection]
\[VectorLessEqual]
.
Table[(i ,{i,Max@#}] )/@Join@@# for positiveall i up to thein maxinput
#/. i->Set@$ remove i if
#⋂##&@@ intersection of
#~Select~MemberQ@i lists containing i
i|| not all <=i≤i