小明正在组织一次足球比赛。他想出了以下比赛形式:
在前几个阶段(可能是零个阶段),当球队数量为偶数时,他们抽签两两配对,每对踢一场比赛。在每个阶段,每对输家都会被淘汰(没有平局)。当参赛队数为偶数时,就进行这样的阶段。
最终剩下的队伍将是奇数。如果剩下一支队伍,则宣布该队获胜,比赛结束。否则,剩下的每支队伍都将与其他剩下的队伍进行一次循环赛(如果有 x 支队伍,则将有 x(x−1)/2 场比赛),比赛结束。
例如,如果最初有 20 支队伍,他们将先进行 10 场比赛。因此, 10 支球队将被淘汰,剩下的 10 支球队将进行 5 场比赛。然后,剩下的 5 支球队将在循环赛中进行10场比赛。总共将进行 10+5+10=25场比赛。
小明已经预订了 n 场比赛的体育场。请帮助他确定应该邀请多少支球队,以便比赛精确地进行 n 场比赛。您应该按升序打印所有可能的参赛队数量,这些数量将正好产生 n 场比赛,如果没有这样的数量,则打印 −1 。
第一行包含一个整数 n ( 1 ≤ n ≤ 10^18 ) ,即应进行的游戏数量。
按升序打印所有可能的受邀球队数量,每行一个。如果正好n场比赛无法进行,则输出一个数字: −1。
输入样例 1
3
输出样例 1
3
4
输入/输出例子2
输入:
25
输出:
20
36%数据, n<108
100%数据,n ≤ 10^18