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

भूलभुलैया को भरें

आपको एक ग्रिड भूलभुलैया (maze) दी गई है, जिसकी ऊँचाई h और चौड़ाई w है। यह ग्रिड फ़्लोर सेल (डॉट . से चिह्नित) और दीवार सेल (हैश # से चिह्नित) से बना है। आपको इसमें से k फ़्लोर सेल को दीवार के रूप में चिह्नित करना है। हालाँकि, ऐसा करते समय यह सुनिश्चित करें कि बाकी फ़्लोर सेल अब भी एक जुड़े हुए क्षेत्र (connected area) के रूप में मौजूद रहें और भूलभुलैया का कोई हिस्सा अनजाने में अलग न हो जाए।

यह गारंटी दी जाती है कि आरंभिक भूलभुलैया में सभी फ़्लोर सेल एक दूसरे से जुड़े हुए हैं।

इनपुट

इनपुट की पहली पंक्ति में तीन पूर्णांक h, w (1 ≤ h, w ≤ 500) और k (0 ≤ k < n) होते हैं, जहाँ n आरंभिक ग्रिड में मौजूद फ़्लोर सेल की कुल संख्या है।

आउटपुट

कार्यक्रम को कोई भी वैध भूलभुलैया प्रिंट करनी चाहिए जिसमें आरंभिक ग्रिड के k फ़्लोर सेल दीवार के रूप में चिह्नित किए गए हों, और जिसमें कोई भी हिस्सा असंबद्ध न हो।

नए बनाए गए दीवार सेल को X चिह्न से दिखाया जाना चाहिए।

उदाहरण

Input

5 4 5
#...
#.#.
.#..
...#
.#.#
Output


#XXX
#X#X
.#..
...#
.#.#

Input

3 4 2
#..#
..#.
#...
Output


#XX#
..#.
#...

Constraints

Time limit: 1.6 seconds

Memory limit: 512 MB

Output limit: 1 MB