+ محدودیت زمان: ۲ ثانیه
+ محدودیت حافظه: ۲۵۶ مگابایت
----------
در دوران صدارت دکتر شهریور دانشجویان به شدت به عدد 28 اعتقاد داشتند تا جاییکه یک دوره کامل را به اسم این عدد دوره 1028یا گذاشته بودند. آنها **دوره ۱۰۲۸ ایا**، **دوره ۲۸ ایا** را بسیار خفن میپنداشتند(زیرا **دوره ۲۸ ایا** واقعا خفن بودند). اعتقاد **دوره ۱۰۲۸ ایا** به خفونت **دوره ۲۸ ایا** چنان بود که فکر میکردند **دوره ۲۸ ایا** میتوانستند حتی مساله توقف را حل کنند!
مساله توقف ( به انگلیسی : Halting problem ) مطرح می کند که آیا می توان برنامه ای نوشت که یک برنامه از ورودی بگیرد و تعیین کند که آیا برنامه متوقف می شود یا خیر. ثابت شده که در حالت کلی، الگوریتمی برای حل این مساله وجود ندارد.
مسئول **دوره ۱۰۲۸ ایا** برای اینکه اعتماد به نفس **دوره ۱۰۲۸ ایا** تقویت شود، نسخه ساده شدهای از مساله هالت را به آنها داد تا آنها فکر کنند مثل **دوره ۲۸ ایا** خفن هستند.
در این نسخه ساده شده سه نوع دستور موجود است:
```
assign a = b + c
cout a
goto l
```
که در آن $a$ و $b$ و $c$ یک **حرف کوچک انگلیسی** (که نام یک متغیر است) یا یک **عدد یک رقمی** هستند و $l$ شماره خطی از برنامه است. تضمین میشود که بعد از `assign` متغیر `a` همیشه یک حرف کوچک انگلیسی است.
شما باید خط به خط برنامه را دنبال کنید، در صورتی که برنامه پایانناپذیر است، $-1$ را چاپ کنید. در غیر اینصورت خروجی این برنامه را چاپ کنید. در این برنامه `cout` به معنای چاپ کردن یک عدد یا یک متغیر است. `goto` به معنای پرش به یک خط خاص است (خطها از ۱ شمارهگذاری شدهاند). `assign a = b + c` یعنی $b+c$ را در متغیر $a$ قرار بده. هر حرف کوچک انگلیسی نشاندهنده یک متغیر است و محتوای همه متغیرها در ابتدا صفر میباشد.
با توجه به اینکه جواب مسئله ممکن است بزرگ شود شما باید **باقی مانده خروجی بر $10^9+7$** را بگویید.
# ورودی
در ورودی یک برنامه به شما داده میشود.
در خط اول $n$ تعداد خطهای برنامه و در $n$ خط بعد در هر خط یک دستور از برنامه داده میشود.
$$1 \le l \le n \le 100\ 000$$
# خروجی
اگر برنامه دادهشده تمام نمیشود، در تنها سطر خروجی $-1$ چاپ کنید.
در غیر اینصورت خروجیهای برنامه (به ازای هر `cout`) را چاپ کنید.
# مثال
## ورودی نمونه ۱
```
2
assign a = 2 + 2
cout a
```
## خروجی نمونه ۱
```
4
```
## ورودی نمونه ۲
```
4
assign a = 1 + 0
cout a
assign a = a + a
goto 2
```
## خروجی نمونه ۲
```
-1
```
## ورودی نمونه ۳
```
7
cout 0
goto 5
cout 1
goto 7
cout 2
goto 3
cout 3
```
## خروجی نمونه ۳
```
0
2
1
3
```
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.