#include<bits/stdc++.h>
#define f1(i, n) for(int i=1;i<=n;++i)
#define f0(i, n) for(int i=0;i<n;++i)
#define ull unsigned long long
#define ll long long
#define rev(a) reverse(a.begin(),a.end())
#define all(x) x.begin(),x.end()
#define so(A, n) sort(A+1, A+n+1)
using namespace std;
const int maxn = 1e6 + 1;
const int N = 3e5 + 5;
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int n;
cin >> n;
int A[n + 5];
f1(i, n) {
cin >> A[i];
}
vector<int> v = {A[1]};
set<int> s;
s.insert(A[1]);
int groups = 1, maxLength = 1, maxDiff = 1;
for (int i = 2; i <= n; ++i) {
// if (v.empty()) {v.push_back(A[i]); s.insert(A[i]); groups++; continue;}
if (abs(A[i] - v[v.size() - 1]) == 1) {
v.push_back(A[i]);
s.insert(A[i]);
// cout << i << " " << v.size() << endl;
maxLength = max(maxLength, (int)v.size());
maxDiff = max(maxDiff, (int)s.size());
}
else {
v.clear();
s.clear();
v.push_back(A[i]); s.insert(A[i]); groups++;
}
}
maxLength = max(maxLength, (int)v.size());
maxDiff = max(maxDiff, (int)s.size());
cout << groups << " " << maxLength << " " << maxDiff;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBmMShpLCBuKSBmb3IoaW50IGk9MTtpPD1uOysraSkKI2RlZmluZSBmMChpLCBuKSBmb3IoaW50IGk9MDtpPG47KytpKQojZGVmaW5lIHVsbCB1bnNpZ25lZCBsb25nIGxvbmcKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSByZXYoYSkgcmV2ZXJzZShhLmJlZ2luKCksYS5lbmQoKSkKI2RlZmluZSBhbGwoeCkgeC5iZWdpbigpLHguZW5kKCkKI2RlZmluZSBzbyhBLCBuKSBzb3J0KEErMSwgQStuKzEpCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBtYXhuID0gMWU2ICsgMTsKY29uc3QgaW50IE4gPSAzZTUgKyA1OwppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwogICAgaW50IG47CiAgICBjaW4gPj4gbjsKICAgIGludCBBW24gKyA1XTsKICAgIGYxKGksIG4pIHsKICAgICAgICBjaW4gPj4gQVtpXTsKICAgIH0KICAgIHZlY3RvcjxpbnQ+IHYgPSB7QVsxXX07CiAgICBzZXQ8aW50PiBzOwogICAgcy5pbnNlcnQoQVsxXSk7CiAgICBpbnQgZ3JvdXBzID0gMSwgbWF4TGVuZ3RoID0gMSwgbWF4RGlmZiA9IDE7CiAgICBmb3IgKGludCBpID0gMjsgaSA8PSBuOyArK2kpIHsKICAgICAgICAvLyBpZiAodi5lbXB0eSgpKSB7di5wdXNoX2JhY2soQVtpXSk7IHMuaW5zZXJ0KEFbaV0pOyBncm91cHMrKzsgY29udGludWU7fQogICAgICAgIGlmIChhYnMoQVtpXSAtIHZbdi5zaXplKCkgLSAxXSkgPT0gMSkgewogICAgICAgICAgICB2LnB1c2hfYmFjayhBW2ldKTsKICAgICAgICAgICAgcy5pbnNlcnQoQVtpXSk7CiAgICAgICAgICAgIC8vIGNvdXQgPDwgaSA8PCAiICIgPDwgdi5zaXplKCkgPDwgZW5kbDsKICAgICAgICAgICAgbWF4TGVuZ3RoID0gbWF4KG1heExlbmd0aCwgKGludCl2LnNpemUoKSk7CiAgICAgICAgICAgIG1heERpZmYgPSBtYXgobWF4RGlmZiwgKGludClzLnNpemUoKSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICB2LmNsZWFyKCk7CiAgICAgICAgICAgIHMuY2xlYXIoKTsKICAgICAgICAgICAgdi5wdXNoX2JhY2soQVtpXSk7IHMuaW5zZXJ0KEFbaV0pOyBncm91cHMrKzsKICAgICAgICB9CiAgICB9CiAgICBtYXhMZW5ndGggPSBtYXgobWF4TGVuZ3RoLCAoaW50KXYuc2l6ZSgpKTsKICAgIG1heERpZmYgPSBtYXgobWF4RGlmZiwgKGludClzLnNpemUoKSk7CiAgICBjb3V0IDw8IGdyb3VwcyA8PCAiICIgPDwgbWF4TGVuZ3RoIDw8ICIgIiA8PCBtYXhEaWZmOwoKfQoK