Чекер для работы с html страницей

Задача

Общая постановка задачи

Расстановка тегов. Требуется написать программу, получающую на вход html-страницу, представляющую собой код «простой» html-страницы и проверяющую ее на валидность. Программа должна: - вывести correct, если страница валидна или wrong в ином случае - вывести номер строки, в которой произошла ошибка

html-страница, состоит из тегов и их содержимого, заключенного в эти теги. Теги представляют собой некоторые ключевые слова, заданные в треугольных скобках. Например, <tag> (где tag - имя тега). Область действия данного тега распространяется до соответствующего закрывающего тега </tag> который отличается символом /. Теги могут иметь вложенный характер, но не могут пересекаться <tag1><tag2></tag2></tag1> - верно <tag1><tag2></tag1></tag2> - не верно

Существуют теги, не требующие закрывающего тега.

Валидной является html-страница, в коде которой всякому открывающему тегу соответствует закрывающий (за исключением тегов, которым закрывающий тег не требуется)

Во входной строке могут встречаться любые парные теги, но гарантируется, что в тексте символы < и > не встречаются. Аттрибутов у тегов также нет. Теги, которые не требуют закрывающего тега: <br>, <hr>

Пример

<html> <head> <title>HTML Document</title> </head> <body> <p><b>Этот текст будет полужирным,<br><i>а этот — ещё и курсивным</i></b> </p> </body> </html>

Результат: correct