#include <bits/stdc++.h>
using namespace std;
vector<int> ar[500005];
long long n, m, k, u, s;
long long vis[500005] = {0};
int dis[500005];
void dfs(int node) {
  vis[node] = 1;
  for (int child : ar[node]) {
    if (!vis[child]) dfs(child);
  }
}
void bfs(int n) {
  queue<int> q;
  q.push(n);
  vis[n] = 1;
  dis[n] = 0;
  while (!q.empty()) {
    int curr = q.front();
    q.pop();
    for (int c : ar[curr]) {
      if (vis[c] == 0) {
        q.push(c);
        dis[c] = dis[curr] + 1;
        vis[c] = 1;
      }
    }
  }
}
const int M = 110;
int a[M], b[M], c[M];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int k;
  cin >> k;
  vector<pair<int, pair<int, int>>> a;
  for (int i = 0; i < k; ++i) {
    int n;
    cin >> n;
    vector<int> x(n);
    for (int j = 0; j < n; ++j) cin >> x[j];
    int sum = accumulate(x.begin(), x.end(), 0);
    for (int j = 0; j < n; ++j)
      a.push_back(make_pair(sum - x[j], make_pair(i, j)));
  }
  stable_sort(a.begin(), a.end());
  for (int i = 0; i < int(a.size()) - 1; ++i) {
    if (a[i].first == a[i + 1].first &&
        (a[i].second.first != a[i + 1].second.first)) {
      cout << "YES" << endl;
      cout << a[i + 1].second.first + 1 << " " << a[i + 1].second.second + 1
           << endl;
      cout << a[i].second.first + 1 << " " << a[i].second.second + 1 << endl;
      return 0;
    }
  }
  cout << "NO\n";
  return 0;
}
