#include "sequence.h"
#include <bits/extc++.h>
#define int long long
#define emb emplace_back
#define pii pair <int32_t, int32_t>
#define tiii tuple <int32_t, int32_t, int32_t>
#define all(a) a.begin(), a.end()
using namespace std;
using namespace __gnu_pbds;
#define ordered_multiset tree <int, null_type, less_equal <int>, rb_tree_tag, tree_order_statistics_node_update>
const int N = 3e6 + 5;
const int inf = 1e18;
int n, a[N];
int32_t sequence(int32_t Nn, vector<int32_t> A) {
n = Nn;
map <int, vector <int>> mp;
for (int i = 0; i < n; i++) {
a[i + 1] = A[i];
mp[a[i + 1]].emb(i + 1);
}
for (auto [val, vec] : mp) {
if (vec.size() >= 2) {
int sz = vec.size();
for (int i = 0; i + 1 < sz; i++) {
if (vec[i + 1] - vec[i] <= 3) return 2;
}
}
}
return 1;
}