#include <bits/stdc++.h>
using namespace std;
typedef struct P {
  int x, y;
} P;
double clockangle(P &p1, P &p2) {
  double x1 = p1.x;
  double x2 = p2.x;
  double y1 = p1.y;
  double y2 = p2.y;
  double dot = x1 * x2 + y1 * y2;
  double det = x1 * y2 - y1 * x2;
  return atan2(det, dot) * 180.0 / 3.14159265358979;
}
bool cmp(pair<double, P> &a, pair<double, P> &b) { return a.first < b.first; }
int main() {
  std::ios::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  int n;
  cin >> n;
  vector<pair<double, P>> vdp;
  for (int i = 0; i < n; ++i) {
    int x, y;
    cin >> x >> y;
    vdp.push_back({atan2(y, x), P{x, y}});
  }
  sort(vdp.begin(), vdp.end(), cmp);
  vdp.push_back(vdp[0]);
  vector<double> res;
  for (int i = 0; i < vdp.size() - 1; ++i) {
    double angle = clockangle(vdp[i].second, vdp[i + 1].second);
    if (angle < 0.0) {
      angle += 360.0;
    }
    res.push_back(angle);
  }
  sort(res.begin(), res.end());
  cout << fixed << setprecision(12) << fmod(360.0 - res[res.size() - 1], 360.00)
       << endl;
  return 0;
}
