एल्गोरिदम और डेटा संरचनाएँ

Remove a Single Element 2

दिए गए n पूर्णांकों की एक सूची में, आपका कार्य है कि आप उन पूर्णांकों में से किसी एक को इस तरह हटाएँ कि बची हुई अनुक्रमिका (sequence) का गुणनफल, m से गुणश्येष (modulo) लेने के बाद, p के बराबर हो। अधिक औपचारिक रूप से, यदि हटाए गए तत्व का इंडेक्स r है, तो:

(a1⋅a2⋅...⋅ar−1⋅ar+1⋅...⋅an)mod  m=p(a_1 \cdot a_2 \cdot ... \cdot a_{r-1} \cdot a_{r+1} \cdot ... \cdot a_n) \mod m = p

कार्यक्रम को उस हटाए गए पूर्णांक का इंडेक्स ढूँढना चाहिए, और यदि ऐसा कोई तत्व मौजूद ही नहीं है, तो Impossible प्रिंट करना चाहिए।

इनपुट

इनपुट की पहली पंक्ति में 3 पूर्णांक n (1 ≤ n ≤ 10510^5), m (1 ≤ m ≤ 10910^9), और p (0 ≤ s < m) होते हैं।

दूसरी पंक्ति में n स्पेस-सेपरेटेड पूर्णांक a1,a2,...,ana_1, a_2, ..., a_n (00 ≤ aia_i ≤ 10910^9) दिए होते हैं।

आउटपुट

यदि ऐसा कोई तत्व मौजूद नहीं है, तो प्रोग्राम Impossible प्रिंट करे। अन्यथा, जिस तत्व को हटाने से यह शर्त पूरी होती है, उसका सबसे छोटा इंडेक्स (1 से आरंभ) प्रिंट करे।

Examples

इनपुट

आउटपुट

3 8 5
5 0 9

2

3 8 5
5 10 7

Impossible

Explanation

  1. 5 * 9 = 45 ⇒ 45 mod 8 = 5, अतः हम अनुक्रम से वह तत्व (मान 0) हटा सकते हैं जो दूसरी पोज़िशन पर है।

  2. किसी भी तत्व को हटाने पर प्राप्त अनुक्रम का गुणनफल (mod 8) पाँच नहीं बनता, इसलिए यह असंभव है।

Constraints

Time limit: 1.6 seconds

Memory limit: 512 MB

Output limit: 1 MB