#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define N 3000000
int a[N],b[N],c[N],d[N],n,m,e[4];

int main() {
  cin>>n>>m>>e[0]>>e[1]>>e[2]>>e[3];
  a[0]=e[0];
  for(ll i=1;i<n;i++)a[i]=(a[i-1]*58+e[1])%(m+1);
  b[0]=e[2];
  for(ll i=1;i<m;i++)b[i]=(b[i-1]*58+e[3])%(n+1);
  for(ll i=0;i<m;i++)c[b[i]]++;
  for(ll i=n-1;i>=0;i--)c[i]+=c[i+1];
  for(ll i=0;i<n;i++)d[a[i]]++;
  ll x=0,ans=0,i=1;
  for(ll j=m;j>=0;j--) {
    while(d[j]--) {
      ll k=min(j,x+c[i]);
      ans+=k;
      x+=c[i]-k;
      i++;
    }
  }
  cout<<ans<<endl;
  return 0;
}

### Prompt

Create a solution in cpp for the following problem:

Example

Input

2 3 1 3 1 0


Output

2

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define N 3000000
int a[N],b[N],c[N],d[N],n,m,e[4];

int main() {
  cin>>n>>m>>e[0]>>e[1]>>e[2]>>e[3];
  a[0]=e[0];
  for(ll i=1;i<n;i++)a[i]=(a[i-1]*58+e[1])%(m+1);
  b[0]=e[2];
  for(ll i=1;i<m;i++)b[i]=(b[i-1]*58+e[3])%(n+1);
  for(ll i=0;i<m;i++)c[b[i]]++;
  for(ll i=n-1;i>=0;i--)c[i]+=c[i+1];
  for(ll i=0;i<n;i++)d[a[i]]++;
  ll x=0,ans=0,i=1;
  for(ll j=m;j>=0;j--) {
    while(d[j]--) {
      ll k=min(j,x+c[i]);
      ans+=k;
      x+=c[i]-k;
      i++;
    }
  }
  cout<<ans<<endl;
  return 0;
}

```