小红有

张银行卡,其中的某些银行卡之间可以互相转账(只能单向转)。但是有些银行卡则不能转账。
由于转账是单向的,对于可以转账的银行卡,小红可以设置转账的方向。如果

银行卡和

银行卡可以互相转账,那么小红可以设置成

银行卡向

银行卡转账。当设置结束后,

银行卡就无法向

银行卡转账了。也就是说,设置完结束后,对于

、

这一对银行卡,

只能作为转账方,

只能作为收账方。
为了用钱方便,小红希望设置转账的方向后,所有银行卡的钱有一种方式可以转入1号银行卡。定义每张银行卡的代价为该银行卡转入1号银行卡的最少转账次数。现希望所有银行卡的代价之和尽可能小,小红想知道,有多少种不同的转账设置方案?答案请对

取模。
输入描述:
第一行输入两个正整数
和
,代表银行卡数量以及可以互相转账的银行卡对数。
接下来的
行,每行输入两个正整数
和
,代表
号银行卡和
号银行卡之前可以设置转账方向。


且

保证任意两个银行卡之间最多一种直接转账方式。
保证至少存在一种方案使得所有卡都可以转入1号银行卡。
输出描述:
输出两个正整数
和
,分别代表最小的代价之和、以及能达到这个最小和的方案数。
答案请对
取模(代价之和、方案数都需要取模再输出)。
示例1
说明
最小的代价之和是4,有以下方案:
方案1:转账方向设置为,2号->1号,3号->1号,4号->2号,4->3号。1号银行卡的代价是0,2号银行卡的代价是1,3号银行卡的代价是1,4号银行卡的代价是2。
方案2:转账方向设置为,2号->1号,3号->1号,4号->2号,3->4号。1号银行卡的代价是0,2号银行卡的代价是1,3号银行卡的代价是1,4号银行卡的代价是2。
方案3:转账方向设置为,2号->1号,3号->1号,2号->4号,4->3号。1号银行卡的代价是0,2号银行卡的代价是1,3号银行卡的代价是1,4号银行卡的代价是2。
其它方案的代价之和都大于4。