罗德岛裁员
题号:NC54300
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

罗德岛经历了史上最大的经济危机!

贸易站迟迟不进货,博士失去了理智,罗德岛现在的龙门币储备为0

凯尔希咬了咬牙,决定对罗德岛进行裁员.

裁员规则是这样的:

 首先有 n 位干员按照编号从小到大顺时针坐成一圈  第一轮,一号干员顺时针方向的下一个干员被裁;  接下来的每一轮,出局干员顺时针方向的未出局的第二位干员被裁  裁员总共进行 n-1 轮,最后剩下的干员被留下

凯尔希已经知道,罗德岛干员的总共数量,又从阿米娅那里得知了剩下的干员的编号。凯尔希越想越不对劲,因为在这种规则下,如果有些人没有参加裁员,也能得到这个结果。

现在凯尔希想知道,在干员人数 的最大值 和 留下的干员的编号已知的情况下,有多少种可能的参与裁员的干员数,以及可能的最大的参与人数是多少

输入描述:

第一行两个整数 n 和 m ,表示参与裁员的最大人数 以及留下的干员的编号

输出描述:

两个整数,表示可能的情况数 以及 最大可能的参与人数,如方案数为零则输出 '0 0'(不含引号)
示例1

输入

复制
9 3

输出

复制
3 9

说明

在最大人数为 9 的限制下,共有三种情况满足最终留下的干员编号为 3 :

1. n=3,出局情况为 2\rightarrow1


2. n=5,出局情况为 2\rightarrow4\rightarrow1\rightarrow5


3. n=9,出局情况为 2\rightarrow4\rightarrow6\rightarrow8\rightarrow1\rightarrow5\rightarrow9\rightarrow7


并且易知这里的最大的满足条件的为 9

备注:

1 <= m < n <= 2,000,000,000