#include <bits/stdc++.h>
using namespace std;
const int N = 100010;
const int M = 30011;
const int K = 200010;
const int LIT = 2500;
const long long INF = 1LL << 60;
const double EPS = 1e-8;
const int dir[5][2] = {{1, 0}, {0, -1}, {0, 1}, {-1, 0}};
const int dirid[5] = {2, 1, 3, 4};
const char dird[5] = {'D', 'L', 'R', 'U'};
const long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
const int ABS(int x) {
  while (x < 0) x = -x;
  return x;
}
long long n, m;
vector<pair<long long, long long> > v;
pair<long long, long long> p;
void init() {
  v = vector<pair<long long, long long> >(n);
  int x, y;
  cin >> p.first >> p.second;
  for (int i = 0; i < n; i++) {
    scanf("%d %d", &x, &y);
    v[i] = make_pair(x, y);
  }
  m %= (n * 2);
}
void solve() {
  for (int i = 1, j = 0; i <= m; i++, j = (j + 1) % n) {
    p.first = 2 * v[j].first - p.first;
    p.second = 2 * v[j].second - p.second;
  }
  cout << p.first << " " << p.second << endl;
}
int main() {
  while (cin >> n >> m) {
    init();
    solve();
  }
}

### Prompt

Create a solution in cpp for 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>
using namespace std;
const int N = 100010;
const int M = 30011;
const int K = 200010;
const int LIT = 2500;
const long long INF = 1LL << 60;
const double EPS = 1e-8;
const int dir[5][2] = {{1, 0}, {0, -1}, {0, 1}, {-1, 0}};
const int dirid[5] = {2, 1, 3, 4};
const char dird[5] = {'D', 'L', 'R', 'U'};
const long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
const int ABS(int x) {
  while (x < 0) x = -x;
  return x;
}
long long n, m;
vector<pair<long long, long long> > v;
pair<long long, long long> p;
void init() {
  v = vector<pair<long long, long long> >(n);
  int x, y;
  cin >> p.first >> p.second;
  for (int i = 0; i < n; i++) {
    scanf("%d %d", &x, &y);
    v[i] = make_pair(x, y);
  }
  m %= (n * 2);
}
void solve() {
  for (int i = 1, j = 0; i <= m; i++, j = (j + 1) % n) {
    p.first = 2 * v[j].first - p.first;
    p.second = 2 * v[j].second - p.second;
  }
  cout << p.first << " " << p.second << endl;
}
int main() {
  while (cin >> n >> m) {
    init();
    solve();
  }
}

```