KazaQ wears socks every day.
Before the first day, he has nn pairs of socks in his closet, labeled from 11 to nn.
Every morning, he would put on a pair of socks with the smallest label in the closet.
Every evening, he would take off socks and put them into a basket. After that, if there are (n−1)(n−1) pairs of old socks in the basket, lazy KazaQ will have to wash them. These socks can be dried out on the next day and then will be put back to the closet in the evening.
KazaQ would like to know which pair of socks he would wear on the kk-th day.
Input
The input contains multiple (about 20002000) test cases.
Each test case in only one line contains two integers nn, kk (2≤n≤1092≤n≤109, 1≤k≤10181≤k≤1018).
Output
For each test case, output "Case #x: y" in one line (without quotes), where xxindicates the case number starting from 11, and yy denotes the answer to the corresponding case.
Example
Input3 7 3 6 4 9
Output
Case #1: 3 Case #2: 1 Case #3: 2
#include <iostream> #include <algorithm> #include <cstdio> #include <string> #include <cstring> #include <cstdlib> #include <map> #include <vector> #include <set> #include <queue> #include <stack> #include <cmath> typedef long long lli; using namespace std; const int mxn = 1e9; int main() { lli n,k,cnt=1; while(cin>>n>>k) { cout<<"Case #"<<cnt++<<": "; if(k<=n) cout<<k<<endl; else { lli ans = (k-n)%(n-1); if(ans<n-1 && ans) { cout<<ans<<endl; } else { lli col = (k-n)/(n-1); if(col&1) cout<<n-1<<endl; else cout<<n<<endl; } } } return 0; }