#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <cstdio>

using namespace std;

typedef long double ld;

struct Point {
    ld x, y;
    Point(ld x=0, ld y=0) : x(x), y(y) {}
    bool operator==(const Point &o) const {
        return x == o.x && y == o.y;
    }
    Point operator+(const Point &o) const {
        return Point(x + o.x, y + o.y);
    }
    Point operator/(int n) const {
        return Point(x/n, y/n);
    }
    Point operator+=(const Point &o) {
        x += o.x;
        y += o.y;
        return Point(x, y);
    }
    Point operator/=(int n) {
        x /= n;
        y /= n;
        return Point(x, y);
    }
    string to_s() {
        char buf[1024];
        sprintf(buf, "%7llf %7llf", x, y);
        return string(buf);
    }
};

int main() {
    int n; cin >> n;
    if (n % 2 == 1) {
        cout << "NA" << endl;
        return 0;
    }
    vector<Point> vs(n);
    Point g(0, 0); // 重心
    for (int i = 0; i < n; i++) {
        ld x, y;
        cin >> x >> y;
        vs[i] = Point(x, y);
        g += vs[i];
    }
    g /= n;

    for (int i = 0; i < n/2; i++) {
        if (not(vs[i] + vs[i+n/2] == g + g)) {
            cout << "NA" << endl;
            return 0;
        }
    }
    cout << g.to_s() << endl;
    return 0;
}