#include <bits/stdc++.h>
using namespace std;
double x[100003], y[100003];
double deg[100003];
bool SORT(double a, double b) { return a < b; }
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n; ++i) {
    cin >> x[i] >> y[i];
    if (x[i] == 0) {
      if (y[i] >= 0)
        deg[i] = 90;
      else
        deg[i] = 270;
    } else if (y[i] == 0) {
      if (x[i] >= 0)
        deg[i] = 0;
      else
        deg[i] = 180;
    } else {
      if (x[i] >= 0 && y[i] >= 0) {
        double v = (y[i] * y[i]) / (x[i] * x[i] + y[i] * y[i]);
        deg[i] = (asin(sqrt(v)) * 180.0) / 3.141592653589;
      } else if (x[i] < 0 && y[i] >= 0) {
        double v = (x[i] * x[i]) / (x[i] * x[i] + y[i] * y[i]);
        deg[i] = 90.0 + (asin(sqrt(v)) * 180.0) / 3.141592653589;
      } else if (x[i] < 0 && y[i] < 0) {
        double v = (y[i] * y[i]) / (x[i] * x[i] + y[i] * y[i]);
        deg[i] = 180 + (asin(sqrt(v)) * 180.0) / 3.141592653589;
      } else {
        double v = (x[i] * x[i]) / (x[i] * x[i] + y[i] * y[i]);
        deg[i] = 270.0 + (asin(sqrt(v)) * 180.0) / 3.141592653589;
      }
    }
  }
  sort(deg, deg + n, SORT);
  double ans = 360;
  for (int i = 0; i < n; ++i) {
    if (i == n - 1) {
      ans = min(ans, 360 - (deg[0] + fabs(360.0 - deg[i])));
    } else {
      ans = min(ans, 360.0 - fabs(deg[i + 1] - deg[i]));
    }
  }
  cout << fixed << setprecision(10) << ans << endl;
}
