long long bm[100]; long long n,temp,now; int k; void init() { bm[0] = 1; for (int i = 1 ; i <= 61 ; i ++) bm[i] = bm[i-1]*2; } long long path[100]; char f[100];
int main() { init(); int T,t=1; scanf("%d",&T); while (T--) { temp = 0; scanf("%lld%d",&n,&k); now = bm[k-1]; printf("Case #%d:\n",t++); for (int i = 1 ; i <= k ; i ++) { path[i] = now; if (temp<n) temp += now,f[i] = '+'; else temp -= now,f[i] = '-'; now /= 2; } if (temp==n) { for (int i = k ; i >= 1 ; --i) printf("%lld %c\n",path[i],f[i]); continue; } path[1] = bm[k-1]+1; for (int i = k ; i >= 1 ; --i) printf("%lld %c\n",path[i],f[i]); continue;