线段树不会
#include<bits/stdc++.h>
using namespace std;
int d,n,a[500003],ans,sum,k;
bool b[500003];
int main()
{
cin>>d>>n;
for(int i=1;i<=n;i++)cin>>a[i];
while(n-ans)
{
int ans1=ans;
for(int i=1;i<=n;i++)
{
if(a[i]<=ans&&b[i]==false)
{
b[i]=true;
ans++;
}
}
if(ans1==ans)
{
cout<<"-1";
return 0;
}
k++;
}
cout<<k;
}