#include <bits/stdc++.h>
int main(void) {
  long long x0;
  long long y0;
  unsigned n_points;
  long long unsigned index;
  std::vector<long long> Ax;
  std::vector<long long> Ay;
  scanf(
      "%u"
      "%I64u",
      &n_points, &index);
  index %= n_points << 1;
  Ax.resize(n_points);
  Ay.resize(n_points);
  scanf(
      "%I64d"
      "%I64d",
      &x0, &y0);
  for (unsigned i = 0; i < n_points; ++i) {
    scanf(
        "%I64d"
        "%I64d",
        &Ax[i], &Ay[i]);
  }
  for (unsigned t = 0; t < index; ++t) {
    x0 = (Ax[t % n_points] << 1) - x0;
    y0 = (Ay[t % n_points] << 1) - y0;
  }
  printf(
      "%I64d"
      " "
      "%I64d"
      "\n",
      x0, y0);
  return 0;
}

### Prompt

Please formulate a cpp solution to the following problem:

You are given the following points with integer coordinates on the plane: M0, A0, A1, ..., An - 1, where n is odd number. Now we define the following infinite sequence of points Mi: Mi is symmetric to Mi - 1 according <image> (for every natural number i). Here point B is symmetric to A according M, if M is the center of the line segment AB. Given index j find the point Mj.

Input

On the first line you will be given an integer n (1 ≤ n ≤ 105), which will be odd, and j (1 ≤ j ≤ 1018), where j is the index of the desired point. The next line contains two space separated integers, the coordinates of M0. After that n lines follow, where the i-th line contain the space separated integer coordinates of the point Ai - 1. The absolute values of all input coordinates will not be greater then 1000.

Output

On a single line output the coordinates of Mj, space separated.

Examples

Input

3 4
0 0
1 1
2 3
-5 3


Output

14 0


Input

3 1
5 5
1000 1000
-1000 1000
3 100


Output

1995 1995

### Response

```cpp
#include <bits/stdc++.h>
int main(void) {
  long long x0;
  long long y0;
  unsigned n_points;
  long long unsigned index;
  std::vector<long long> Ax;
  std::vector<long long> Ay;
  scanf(
      "%u"
      "%I64u",
      &n_points, &index);
  index %= n_points << 1;
  Ax.resize(n_points);
  Ay.resize(n_points);
  scanf(
      "%I64d"
      "%I64d",
      &x0, &y0);
  for (unsigned i = 0; i < n_points; ++i) {
    scanf(
        "%I64d"
        "%I64d",
        &Ax[i], &Ay[i]);
  }
  for (unsigned t = 0; t < index; ++t) {
    x0 = (Ax[t % n_points] << 1) - x0;
    y0 = (Ay[t % n_points] << 1) - y0;
  }
  printf(
      "%I64d"
      " "
      "%I64d"
      "\n",
      x0, y0);
  return 0;
}

```