21 dead as cargo ship hits party boat north of Cairo