Problem: 

Input

The first line contains a single integer n (1 ≤ n ≤ 1000) — the number of points on a plane.

Each of the next n lines contains two real coordinates xi and yi of the <image> point, specified with exactly 2 fractional digits. All coordinates are between  - 1000 and 1000, inclusive.

Output

Output a single real number θ — the answer to the problem statement. The absolute or relative error of your answer should be at most 10 - 2.

Examples

Input

8
-2.14 2.06
-1.14 2.04
-2.16 1.46
-2.14 0.70
-1.42 0.40
-0.94 -0.48
-1.42 -1.28
-2.16 -1.62


Output

5.410


Input

5
2.26 1.44
2.28 0.64
2.30 -0.30
1.58 0.66
3.24 0.66


Output

5.620


Input

8
6.98 2.06
6.40 1.12
5.98 0.24
5.54 -0.60
7.16 0.30
7.82 1.24
8.34 0.24
8.74 -0.76


Output

5.480


Input

5
10.44 2.06
10.90 0.80
11.48 -0.48
12.06 0.76
12.54 2.06


Output

6.040


Input

8
16.94 2.42
15.72 2.38
14.82 1.58
14.88 0.50
15.76 -0.16
16.86 -0.20
17.00 0.88
16.40 0.92


Output

6.040


Input

7
20.62 3.00
21.06 2.28
21.56 1.36
21.66 0.56
21.64 -0.52
22.14 2.32
22.62 3.04


Output

6.720

Solution (in CPP):

Solution:
#include <bits/stdc++.h>
using namespace std;
struct Node {
  int val;
  int m;
  Node* prev;
};
int n, m, k;
int a, b, c;
int x, x1, x2;
int size1, size2;
long long s;
char ch;
Node *head1, *head2;
void push(int x) {
  Node* q = new Node;
  q->val = x;
  q->prev = head1;
  if (head1 != NULL) {
    q->m = min(x, head1->m);
  }
  head1 = q;
  size1++;
}
void replace() {
  if (size2 == 0) {
    while (size1 > 0) {
      Node* q = new Node;
      q = head2->prev;
      head2 = head1;
      head1 = head1->prev;
      head2->prev = q;
      size1--;
      size2++;
    }
  }
}
void del() { head2 = head2->prev; }
int getmin() {
  if (head1 == NULL) {
    return head2->m;
  } else {
    return min(head1->m, head2->m);
  }
}
int main() {
  int n;
  double x = 0, a;
  cin >> n;
  for (int i = 0; i < n; ++i) {
    cin >> a >> a;
    x += a;
  }
  x = x / n + 5;
  cout.precision(3);
  cout << fixed << x;
  return 0;
}