Не работает потому что:
1. Оператор break вызывает выход из цикла, а цикла в месте, где употреблен break, нет. По смыслу программы её требовалось прервать и в языке Паскаль для этого используется Exit.
2. После меток 6: и 7: следует begin, а парного к ним end нет.
3. Это не ошибка, но переменные dn и p в программе не используются и их можно не указывать.