گراف سفید و سیاه


  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

علی برای افزایش روحیه تیم ترب تصمیم گرفته آن‌ها را به اسکیپ روم ببرد... آن‌ها باید سوال زیر را حل کنند تا وارد مرحله بعد شوند... به آن‌ها کمک کنید تا این گردش برایشان جذاب شود

یک گراف ساده مانند GG با nn راس با شماره‌های ۱ تا nn و mm یال دو طرفه داریم. بین هر دو راس حداکثر یک یال وجود دارد. هر یال دو راس مختلف را به هم وصل می‌کند. توجه کنید لزوماً این گراف همبند نیست!

هر راس از این گراف در ابتدا با یکی از دو رنگ سیاه و سفید رنگ آمیزی شده است.

در هر عملیات می‌توانیم یک زیر مجموعه از رئوس مانند SS، انتخاب کنیم و رنگ هر راس در مجموعه SS و همه رئوسی که به حداقل یک راس از SS یال دارند را عوض کنیم. (رنگ سفید را به سیاه و رنگ سیاه را به سفید)

می‌خواهیم با حداکثر n+1n + 1 عملیات کل رئوس گراف را سفید کنیم. اگر چنین کاری ممکن است یک روش برای انجام این کار ارائه دهید در غیر اینصورت بگویید این کار ممکن نیست.

ورودی🔗

در خط اول ورودی دو عدد صحیح nn و mm با فاصله از هم آمده است. 0n15000 \le n \le 15000mn(n1)2 0 \le m \le \frac{n(n - 1)}{2}

در سطر بعدی یک رشته از 00 و 11 به طول nn آمده است که اگر عدد iiام آن 00 باشد یعنی راس شماره ii سفید و اگر 11 باشد یعنی رنگ راس شماره ii سیاه است.

در mm سطر بعدی هر کدوم دو عدد uu و vv آمده است. که نشان دهنده یال‌های گراف است. 1uvn 1 \le u \neq v \le n

خروجی🔗

در صورت امکان پذیر بودن در سطر اول kk که تعداد مراحلی که نیاز دارید تا رنگ همه رئوس را سفید کنید چاپ کنید. 0kn+10 \le k \le n + 1 در kk سطر بعدی در هر سطر یک رشته از 00 و 11 چاپ کنید که عدد iiام آن 11 است اگر راس شماره ii در مرحله iiام در مجموعه SS باشد و در غیر اینصورت 00 خواهد بود.

در صورت امکان پذیر نبودن در تنها سطر خروجی -1 را چاپ کنید.

مثال🔗

ورودی نمونه ۱🔗

4 3
0110
1 2
2 3
3 4
Plain text

خروجی نمونه ۱🔗

3
0100
0010
1001
Plain text

ورودی نمونه ۲🔗

3 3
110
1 2
2 3
3 1
Plain text

خروجی نمونه ۲🔗

-1
Plain text