#include <bits/stdc++.h>
#include <math.h>
using namespace std;
//マクロ
#define all(v) v.begin(), v.end()
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define REP(i, n) for (int i = 1; i <= (int)(n); i++)
#define BIT(i, n) for (int i = 0; i < (1 << n); i++)

typedef long long ll;
//const ll INF = 10000000010;

int main() {
  int N;
  int ans = 0;
  cin >> N;
  vector<int> a(N), b(N), c(N);
  rep(i, N) {
    cin >> a.at(i);
  }
   rep(i, N) {
    cin >> b.at(i);
  }
   rep(i, N) {
    c.at(i) = a.at(i) * b.at(i);
     ans += c.at(i);
  }
  if(ans == 0) cout << "Yes" << endl;
  else cout << "No" << endl;
}

#include<bits/stdc++.h>
using namespace std;

int main() {
    int N;
    cin >> N;

    std::vector<int> A(N);
    std::vector<int> B(N);
    
    for (int i = 0; i < N; ++i){
        cin >> A[i];
    }

    for (int i = 0; i < N; ++i){
        cin >> B[i];
    }

    int result = std::inner_product(
        A.begin(), A.end(), // ひとつ目のベクトル
        B.begin(),          // ふたつ目のベクトル(v以上の次元数を持つこと)
        0);                 // 内積の初期値(この値に対して加算が行われる)


    string ans = "No";
    if (result == 0) {
        ans = "Yes";
    }
    cout << ans << endl;
    return 0;
}