#include <bits/stdc++.h>
#pragma GCC optimize("O2")
using namespace std;
const int dx4[] = {-1, 0, 1, 0};
const int dy4[] = {0, 1, 0, -1};
const long long modb = 1000000007;
const long inf = 0x3f3f3f3f;
const double oo = 1e15;
const double eps = 1e-8;
const double pi = acos(-1.0);
template <typename T>
void clr(T* a_, int n_ = 0, size_t s_ = -1) {
  if (s_ == -1) s_ = sizeof(a_);
  memset(a_, n_, sizeof(a_[0]) * s_);
}
template <typename T>
T sqr(T a_) {
  return a_ * a_;
}
template <typename T>
T cub(T a_) {
  return a_ * a_ * a_;
}
inline long long mf(long long n_) {
  return ((n_ < 0) ? n_ + (modb << 2) : n_) % modb;
}
template <typename T>
T max(T a_, T b_, T c_) {
  return max(a_, max(b_, c_));
}
template <typename T>
T min(T a_, T b_, T c_) {
  return min(a_, min(b_, c_));
}
inline int dbcmp(double a_, double b_) {
  return (fabs(a_ - b_) < eps) ? 0 : (a_ < b_ ? -1 : 1);
}
inline double dbdiv(long long a_, long long b_) {
  return static_cast<double>(a_) / b_;
}
inline double angle(double x_, double y_) {
  if (x_ == 0.0)
    return y_ > 0 ? pi / 2 : 3 * pi / 2;
  else {
    double t_ = atan2(y_, x_);
    return (t_ < 0.0 ? t_ + pi : t_) + y_ < 0 ? pi : 0.0;
  }
}
int main() {
  vector<int> a;
  int N;
  cin >> N;
  for (long long i = 1; i <= N; ++i) {
    int w;
    cin >> w;
    a.push_back(w);
  }
  for (int st = 0; st < (1 << N); ++st) {
    int cur = 0;
    for (long long i = 0; i < N; ++i)
      if (st & (1 << i))
        cur = (cur + a[i]) % 360;
      else
        cur = (cur + 360 - a[i]) % 360;
    if (!cur) {
      cout << "YES" << '\n';
      return 0;
    };
  }
  {
    cout << "NO" << '\n';
    return 0;
  };
}
