#include <bits/stdc++.h>   using namespace std;   const double eps = 1e-12;   const int INF = 1 << 30;   const long long LINF = 1ll << 61;   const int BUFFER_SZ = 1 << 20;   const int MOD = 1000 * 1000 * 1000 + 7;   char BUFFER[BUFFER_SZ];   int gi() {     int x;     scanf( %d , &x);     return x;   }   double gd() {     double x;     scanf( %lf , &x);     return x;   }   long long gll() {     long long x;     scanf( %lld , &x);     return x;   }   vector<int> gvi(int n) {     vector<int> a;     while (n-- > 0) a.push_back(gi());     return a;   }   string gs() {     scanf( %s , BUFFER);     return string(BUFFER);   }   template <class T>   void print(vector<T> &x, string format) {     format +=  %c ;     for (int i = 0; i < x.size(); ++i)       printf(format.c_str(), x[i], i + 1 == x.size() ?   n  :    );   }   void solve() {     int n = gi();     vector<int> a = gvi(n);     for (int i = 0; i < a.size(); ++i) {       for (int j = i + 1; j < a.size(); ++j) {         for (int k = j + 1; k < a.size(); ++k) {           if (a[i] == a[j] + a[k]) {             printf( %d %d %d n , i + 1, j + 1, k + 1);             return;           }           if (a[j] == a[i] + a[k]) {             printf( %d %d %d n , j + 1, i + 1, k + 1);             return;           }           if (a[k] == a[i] + a[j]) {             printf( %d %d %d n , k + 1, i + 1, j + 1);             return;           }         }       }     }     printf( -1 n );   }   int main() {     solve();     return 0;   }   