热闹的聚会与尴尬的聚会

热闹的聚会与尴尬的聚会

测试数据来自 system/2054

描述

小Q的生日快到了,他决定周末邀请一些朋友到他的新房子一起聚会!

他的联系薄上有nn位好友,他们两两之间或者互相认识,或者互相不认识。小Q希望在周六办一个热闹的聚会,再在周日办一个尴尬的聚会。

  • 一场热闹度为pp的聚会请来了任意多位好友,对于每一位到场的好友来说都有至少pp位他认识的好友也参加了聚会,且至少对于一位到场的好友来说现场恰好有pp位他认识的好友;
  • 一场尴尬度为qq的聚会请来了恰好qq位好友,且他们两两互不认识。

两场聚会可能有重复的参与者,联系薄上也有可能有某些好友同时缺席了两场聚会。小Q喜欢周六聚会的热闹度pp与周日聚会的尴尬度qq之间满足:np+1q\lfloor \frac{n}{p+1} \rfloor\le qnq+1p\lfloor \frac{n}{q+1} \rfloor\le p

请帮助小Q找出一个可行的邀请方案。

格式

输入格式

输入含有多组测试数据,并在第一行给定一个整数TT,表示总共有多少组测试数据。之后依次给出每一组数据。

每一组测试数据第一行给定两个整数nnmm,依次表示联系薄中好友的总数,以及有多少对互相认识的好友。

之后mm行每行给定两个正整数uuvv,满足1uvn1\le u\neq v\le n,表示第uu个好友与第vv个好友互相认识。

输出格式

对于每一组数据输出两行,依次描述周六热闹的聚会的参加人员,与周日尴尬的聚会的参加人员列表:

第一行先输出一个正整数表示总共邀请来了多少位好友参加周六的聚会,再之后输出若干个不同的整数,按照任意顺序描述被邀请的是哪些好友。

第二行先输出一个正整数表示总共邀请来了多少位好友参加周日的聚会,再之后以任意顺序输出若干个不同的整数,同样描述了周日被邀请的好友。

如果有多组方案,你可以输出其中任何一组。

样例1

样例输入1

2
6 15
1 2
1 3
1 4
1 5
1 6
2 3
2 4
2 5
2 6
3 4
3 5
3 6
4 5
4 6
5 6
8 11
1 2
2 3
1 4
3 7
4 5
5 2
2 6
6 7
5 6
5 8
6 8

样例输出1

6 1 2 3 4 5 6
1 4
8 1 2 3 4 5 6 7 8
4 8 4 7 2

限制

数据规模

所有数据满足1T321\le T\le 321m1051\le m\le 10^5

子任务11:(1010分)1n5001\le n\le 500

子任务22:(1010分)1n7001\le n\le 700

子任务33:(1010分)1n9001\le n\le 900

子任务44:(1010分)1n11001\le n\le 1100

子任务55:(1010分)1n20001\le n\le 2000

子任务66:(1010分)1n30001\le n\le 3000

子任务77:(1010分)1n45001\le n\le 4500

子任务88:(1010分)1n60001\le n\le 6000

子任务99:(1010分)1n80001\le n\le 8000

子任务1010:(1010分)1n100001\le n\le 10000

注意:本题读入量很大,请注意自己代码在读入上的所需时间。

时限

2s(原题时限为2s,模拟赛所用测试数据略有缩小,真实测试时限也相应降低)

内存限制

默认

信息

ID
1103
难度
(无)
分类
(无)
标签
(无)
递交数
0
已通过
0
通过率
?
上传者