#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long n;
  cin >> n;
  priority_queue<pair<long long, pair<long long, long long>>,
                 vector<pair<long long, pair<long long, long long>>>,
                 greater<pair<long long, pair<long long, long long>>>>
      p1, p2;
  vector<pair<long long, pair<long long, long long>>> ans;
  long long sum = 0;
  pair<long long, long long> s[n + 1];
  long long t[n + 1];
  for (long long i = 1; i <= n; i++) {
    cin >> s[i].first;
    s[i].second = i;
  }
  for (long long i = 1; i <= n; i++) cin >> t[i];
  sort(s + 1, s + 1 + n);
  sort(t + 1, t + 1 + n);
  for (long long i = 1; i <= n; i++) {
    pair<long long, long long> a;
    long long b;
    a = s[i];
    b = t[i];
    sum += (a.first - b);
    if (a.first > b) {
      p1.push(make_pair(a.first, make_pair(b, a.second)));
    } else if (b > a.first) {
      p2.push(make_pair(a.first, make_pair(b, a.second)));
    }
  }
  if (sum != 0) {
    cout << "NO";
  } else {
    while (!p1.empty()) {
      pair<long long, pair<long long, long long>> temp1 = p1.top();
      pair<long long, pair<long long, long long>> temp2 = p2.top();
      p1.pop();
      p2.pop();
      if (temp1.first < temp2.first) {
        cout << "NO";
        return 0;
      }
      long long d = min(temp1.first - temp1.second.first,
                        temp2.second.first - temp2.first);
      if (d > (temp1.first - temp2.first) / 2) {
        cout << "NO";
        return 0;
      }
      temp1.first -= d;
      temp2.first += d;
      ans.push_back(
          make_pair(temp2.second.second, make_pair(temp1.second.second, d)));
      if (temp1.first != temp1.second.first) {
        p1.push(temp1);
      }
      if (temp2.first != temp2.second.first) {
        p2.push(temp2);
      }
    }
    cout << "YES" << endl;
    cout << ans.size() << endl;
    for (long long i = 0; i < ans.size(); i++) {
      cout << ans[i].first << " " << ans[i].second.first << " "
           << ans[i].second.second << endl;
    }
  }
}
