#include <bits/stdc++.h>
using namespace std;
const int mx = 1e6 + 5;
int main() {
  int n;
  string s;
  cin >> n >> s;
  stack<pair<char, int>> st;
  int c, d, mm = -1;
  vector<int> v;
  int p = 6, q = 7;
  for (int p = 0; p < s.size(); p++) {
    for (int q = p; q < s.size(); q++) {
      swap(s[p], s[q]);
      while (st.size() > 0) st.pop();
      for (int i = 0; i < s.size(); i++) {
        if (st.size() == 0 || s[i] == '(') {
          st.push({s[i], i});
        } else {
          if (st.top().first == '(')
            st.pop();
          else
            st.push({s[i], i});
        }
      }
      v.clear();
      while (st.size() > 0 && st.top().first == '(') {
        v.push_back(st.top().second);
        st.pop();
      }
      if (st.size() == v.size()) {
        int p2 = 0, m = 0;
        if (st.size() > 0) {
          p2 = st.top().second;
          m = p2 + 1;
        }
        while (st.size() > 0) st.pop();
        v.clear();
        v.push_back(m);
        for (int i = m; i < s.size(); i++) {
          if (st.size() == 0 || s[i] == '(') {
            st.push({s[i], i});
          } else {
            if (st.top().first == '(') {
              st.pop();
              if (st.size() == 0) {
                v.push_back(i + 1);
              }
            } else {
              st.push({s[i], i});
            }
          }
        }
        if (v.size() > 0 && v.back() == s.size()) v.pop_back();
      } else
        v.clear();
      int l = v.size();
      if (l > mm) {
        mm = v.size();
        c = p + 1, d = q + 1;
      }
      swap(s[p], s[q]);
    }
  }
  cout << mm << "\n";
  cout << c << " " << d << "\n";
  return 0;
}
