У цій задачі ми розглядаємо просту мову програмування, яка підтримує лише оголошення одновимірних масивів цілих чисел та оператори присвоєння. Ваше завдання — знайти помилку в даній програмі.
Синтаксис цієї мови описується за допомогою BNF наступним чином:

де позначає символ нового рядка (LF).
Символи, що використовуються в програмі, включають алфавітні літери, десяткові цифри, =, [, ] та символи нового рядка. Жодні інші символи не з'являються в програмі.
Оголошення визначає масив і вказує його довжину. Допустимі індекси масиву довжини — це цілі числа від до n-1, включно. Зверніть увагу, що імена масивів чутливі до регістру, тобто масив a і масив A — це різні масиви. Початкове значення кожного елемента в оголошеному масиві не визначено.
Наприклад, масив a довжини і масив b довжини оголошуються відповідно наступним чином:
a[10]
b[5]
Вираз обчислюється до невід'ємного цілого числа. Конструкція <number> інтерпретується як десяткове ціле число. Конструкція <array_name>[<expression>] обчислюється до значення елемента масиву <array_name> з індексом <expression>. Присвоєння присвоює значення, позначене правою частиною, елементу масиву, вказаному лівою частиною.
Приклади присвоєнь такі:
a[0]=3
a[1]=0
a[2]=a[a[1]]
a[a[0]]=a[1]
Програма виконується з першого рядка, рядок за рядком. Ви можете припустити, що масив оголошується один раз і тільки один раз перед тим, як будь-який з його елементів буде використано.
Дано програму, вам потрібно знайти наступні помилки:
Індекс масиву є недійсним.
Елемент масиву, якому не було присвоєно значення раніше, використовується в присвоєнні як індекс масиву або як значення, яке потрібно присвоїти.
Ви можете припустити, що інші помилки, такі як синтаксичні помилки, не з'являються. Ви також можете припустити, що цілі числа, представлені <number>, знаходяться в діапазоні від до 2^{31}-1 (= ), включно.
Вхід складається з кількох наборів даних, за якими слідує рядок, що містить лише один . (крапка). Кожен набір даних складається з програми, за якою також слідує рядок, що містить лише один . (крапка). Програма не перевищує рядків. Будь-який рядок не перевищує символів, виключаючи символ нового рядка.
Для кожної програми на вході ви повинні вказати номер рядка присвоєння, в якому з'являється перша помилка. Номери рядків починаються з для кожної програми. Якщо в програмі немає помилки, ви повинні вказати нуль. Вихід не повинен містити зайвих символів, таких як пробіли.
Приклад 1