
consolidation(towns)
schools = { }
for i = 2towns.size() - 1 to 0 do
s = subset(i, towns)
if covers(s, towns)
s.size() < schools.size()
schools = s
return schools
consolidation(towns)
schools = covered = { }
for i = 1 to towns.size()
schools U= { towns[i] }
covered U= { towns[i].neighbors }
if covered = towns
break
return schools