#include <bits/stdc++.h>
using namespace std;
bool iseven(long long n) {
  if (n % 2 == 0)
    return true;
  else {
    return false;
  }
}
long long power(long long x, unsigned long long y) {
  long long res = 1;
  while (y > 0) {
    if (y & 1) res = res * x;
    y = y >> 1;
    x = x * x;
  }
  return res;
}
void print(vector<int> a, int n) {
  for (int i = 0; i < n; i += 1) cout << a[i] << " ";
}
bool sec(const pair<long long, long long> &a,
         const pair<long long, long long> &b) {
  if (a.first == b.first)
    return (a.second > b.second);
  else {
    return (a.first > b.first);
  }
}
void print1(int y) {
  if (y == 1)
    cout << "YES"
         << "\n";
  else
    cout << "NO"
         << "\n";
}
void fun(vector<int> &v, unordered_map<int, int> m, vector<int> a, int n,
         int re, int mi, int ma) {
  int pos = m[re];
  while (pos != n - 1) {
    v.push_back(re);
    if (re == mi) {
      mi++;
      re = ma;
    } else {
      ma--;
      re = mi;
    }
    pos = m[re];
  }
  v.push_back(re);
}
int fun1(vector<int> a) {
  int s = 0;
  for (int i = 0; i < a.size() - 1; i += 1) {
    s += abs(a[i] - a[i + 1]);
  }
  return s;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int t;
  cin >> t;
  while (t--) {
    long long n, k;
    cin >> n >> k;
    long long ans = 0;
    if (n % k == 0)
      ans = n;
    else {
      ans = (n / k) * k;
      long long r = n % k;
      if ((k / 2) < r)
        ans += (k / 2);
      else {
        ans += r;
      }
    }
    cout << ans << "\n";
  }
  return 0;
}

### Prompt

Please create a solution in Cpp to the following problem:

Santa has n candies and he wants to gift them to k kids. He wants to divide as many candies as possible between all k kids. Santa can't divide one candy into parts but he is allowed to not use some candies at all.

Suppose the kid who recieves the minimum number of candies has a candies and the kid who recieves the maximum number of candies has b candies. Then Santa will be satisfied, if the both conditions are met at the same time:

  * b - a ≤ 1 (it means b = a or b = a + 1); 
  * the number of kids who has a+1 candies (note that a+1 not necessarily equals b) does not exceed ⌊k/2⌋ (less than or equal to ⌊k/2⌋). 



⌊k/2⌋ is k divided by 2 and rounded down to the nearest integer. For example, if k=5 then ⌊k/2⌋=⌊5/2⌋=2.

Your task is to find the maximum number of candies Santa can give to kids so that he will be satisfied.

You have to answer t independent test cases.

Input

The first line of the input contains one integer t (1 ≤ t ≤ 5 ⋅ 10^4) — the number of test cases.

The next t lines describe test cases. The i-th test case contains two integers n and k (1 ≤ n, k ≤ 10^9) — the number of candies and the number of kids.

Output

For each test case print the answer on it — the maximum number of candies Santa can give to kids so that he will be satisfied.

Example

Input


5
5 2
19 4
12 7
6 2
100000 50010


Output


5
18
10
6
75015

Note

In the first test case, Santa can give 3 and 2 candies to kids. There a=2, b=3,a+1=3.

In the second test case, Santa can give 5, 5, 4 and 4 candies. There a=4,b=5,a+1=5. The answer cannot be greater because then the number of kids with 5 candies will be 3.

In the third test case, Santa can distribute candies in the following way: [1, 2, 2, 1, 1, 2, 1]. There a=1,b=2,a+1=2. He cannot distribute two remaining candies in a way to be satisfied.

In the fourth test case, Santa can distribute candies in the following way: [3, 3]. There a=3, b=3, a+1=4. Santa distributed all 6 candies.

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
bool iseven(long long n) {
  if (n % 2 == 0)
    return true;
  else {
    return false;
  }
}
long long power(long long x, unsigned long long y) {
  long long res = 1;
  while (y > 0) {
    if (y & 1) res = res * x;
    y = y >> 1;
    x = x * x;
  }
  return res;
}
void print(vector<int> a, int n) {
  for (int i = 0; i < n; i += 1) cout << a[i] << " ";
}
bool sec(const pair<long long, long long> &a,
         const pair<long long, long long> &b) {
  if (a.first == b.first)
    return (a.second > b.second);
  else {
    return (a.first > b.first);
  }
}
void print1(int y) {
  if (y == 1)
    cout << "YES"
         << "\n";
  else
    cout << "NO"
         << "\n";
}
void fun(vector<int> &v, unordered_map<int, int> m, vector<int> a, int n,
         int re, int mi, int ma) {
  int pos = m[re];
  while (pos != n - 1) {
    v.push_back(re);
    if (re == mi) {
      mi++;
      re = ma;
    } else {
      ma--;
      re = mi;
    }
    pos = m[re];
  }
  v.push_back(re);
}
int fun1(vector<int> a) {
  int s = 0;
  for (int i = 0; i < a.size() - 1; i += 1) {
    s += abs(a[i] - a[i + 1]);
  }
  return s;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int t;
  cin >> t;
  while (t--) {
    long long n, k;
    cin >> n >> k;
    long long ans = 0;
    if (n % k == 0)
      ans = n;
    else {
      ans = (n / k) * k;
      long long r = n % k;
      if ((k / 2) < r)
        ans += (k / 2);
      else {
        ans += r;
      }
    }
    cout << ans << "\n";
  }
  return 0;
}

```