Muallif: __thecrash__

J. Yolg'onchi qorovul

Vaqt limiti: 2000 ms Xotira limiti: 256 mb

\(1\) dan \(N\) gacha bo'lgan sonlar orasida sirli son \(T\) yashiringan. Siz uni topishga harakat qilasiz — lekin sizga javob beradigan qorovul ayyor: u butun o'yin davomida jami bor-yo'g'i bir marta yolg'on gapirishi mumkin — qachon yolg'on gapirishini siz oldindan bilmaysiz. Ustiga-ustak, qorovul \(T\) qiymatini o'yin boshidanoq belgilab qo'ymaydi, faqat barcha javoblari qandaydir \(T\) bilan mos kelishi kerak.

Diqqat: yolg'on istalgan javobda bo'lishi mumkin — hatto "\(=\)" deb aytgan joyida ham yolg'on gapirgan bo'lishi mumkin!

Sizning vazifangiz — qorovulning yagona yolg'onidan aldanib qolmasdan, \(T\) ni aniq topib berish.


Kiruvchi ma'lumotlar

Dastlab sizga bitta \(N\) (\(1 \le N \le 10^{18}\)) soni beriladi.

Shundan so'ng, qarovul sizning so'rovlaringizga \(3\) xil usuldan birida javob beradi: "\(>\)" (\(T > i\)), "\(<\)" (\(T < i\)) yoki "\(=\)" (\(T = i\)). 


Chiquvchi ma'lumotlar

Qarovulga siz so'rovni "\(? \,\, i\)" (\(1 \le i \le N\)) ko'rinishida yuborasiz (jami so'rovlar soni \(190\) tadan oshlamsligi shart). Qorovulning javobidan so'ng sirli \(T\) sonini aniq topganingizda, natijani  "\(! \,\, T\)" ko'rinishida chiqarishingiz kerak, har bir so'rovdan kiyin buferni darhol tozalab tashlang.

Misollar

# Input.txt Output.txt
1
4
>
<
>
=
=
=
? 2
? 2
? 2
? 3
? 3
? 3
! 3

Izoh

ESLATMA: Bu — interaktiv masala. Sizning har bir so'rovingiz hakamlar tizimiga darhol yetib borishi uchun, har safar chiqargan qatoringizdan so'ng bufer tozalanishi (flush qilinishi) SHART:

  • C/C++: fflush(stdout);
  • Python: sys.stdout.flush();

Buni bajarmasangiz, dasturingiz to'g'ri fikrlagan bo'lsa ham, javob hakamlarga yetib bormay, Time Limit xatosi bilan yakunlanadi.

Yechim yuborish