#include<bits/stdc++.h>
using namespace std;
int first(int arr[], int low, int high, int x, int n);
int last(int arr[], int low, int high, int x, int n);
int count(int arr[], int x, int n)
{
int i;
int j;
i = first(arr, 0, n - 1, x, n);
if (i == -1)
return i;
j = last(arr, i, n - 1, x, n);
return j - i + 1;
}
int first(int arr[], int low, int high, int x, int n)
{
if (high >= low)
{
int mid = (low + high) / 2;
if ((mid == 0 || x > arr[mid - 1]) && arr[mid] == x)
return mid;
else if (x > arr[mid])
return first(arr, (mid + 1), high, x, n);
else
return first(arr, low, (mid - 1), x, n);
}
return -1;
}
int last(int arr[], int low, int high, int x, int n)
{
if (high >= low)
{
int mid = (low + high) / 2;
if ((mid == n - 1 || x < arr[mid + 1]) && arr[mid] == x)
return mid;
else if (x < arr[mid])
return last(arr, low, (mid - 1), x, n);
else
return last(arr, (mid + 1), high, x, n);
}
return -1;
}
int main()
{
// int n, x;
// cin >> n >> x;
// int arr[n];
// for (int i = 0; i < n; i++)
// {
// cin >> arr[i];
// }
int arr[] = {1, 2, 2, 2, 2, 3, 4, 7, 8, 8};
int n = 10;
int x = 2;
int ans = count(arr, x, n);
cout << ans << "\n";
return 0;
}