#include<stdio.h>
#include<algorithm>
using namespace std;
int m[2600000];
int n[2600000];
long long sum[2600000];
int main(){
	int a,b;
	int m0,md,n0,nd;
	scanf("%d%d%d%d%d%d",&a,&b,&m0,&md,&n0,&nd);
	for(int i=0;i<a;i++){
		m[i]=m0;
		m0=(m0*58+md)%(b+1);
	}
	for(int i=0;i<b;i++){
		n[i]=n0;
		n0=(n0*58+nd)%(a+1);
	}
	std::sort(m,m+a);
	std::sort(n,n+b);
	sum[0]=n[0];
//	for(int i=0;i<a;i++)printf("%d ",m[i]);printf("\n");
//	for(int i=0;i<b;i++)printf("%d ",n[i]);printf("\n");
	
	for(int i=1;i<b;i++)sum[i]=sum[i-1]+n[i];
	long long ret=9999999999999999LL;
	long long now=0;
	for(int i=0;i<=a;i++){
		int at=upper_bound(n,n+b,a-i)-1-n;
		ret=min(ret,now+sum[at]+(long long)(a-i)*(b-at-1));
		now+=m[i];
	}
	printf("%lld\n",ret);
}
### Prompt

Please formulate a cpp solution to the following problem:

Example

Input

2 3 1 3 1 0


Output

2

### Response

```cpp
#include<stdio.h>
#include<algorithm>
using namespace std;
int m[2600000];
int n[2600000];
long long sum[2600000];
int main(){
	int a,b;
	int m0,md,n0,nd;
	scanf("%d%d%d%d%d%d",&a,&b,&m0,&md,&n0,&nd);
	for(int i=0;i<a;i++){
		m[i]=m0;
		m0=(m0*58+md)%(b+1);
	}
	for(int i=0;i<b;i++){
		n[i]=n0;
		n0=(n0*58+nd)%(a+1);
	}
	std::sort(m,m+a);
	std::sort(n,n+b);
	sum[0]=n[0];
//	for(int i=0;i<a;i++)printf("%d ",m[i]);printf("\n");
//	for(int i=0;i<b;i++)printf("%d ",n[i]);printf("\n");
	
	for(int i=1;i<b;i++)sum[i]=sum[i-1]+n[i];
	long long ret=9999999999999999LL;
	long long now=0;
	for(int i=0;i<=a;i++){
		int at=upper_bound(n,n+b,a-i)-1-n;
		ret=min(ret,now+sum[at]+(long long)(a-i)*(b-at-1));
		now+=m[i];
	}
	printf("%lld\n",ret);
}
```