#include<bits/stdc++.h> using namespace std; #define int long long inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0' ||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<= '9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*f;} #define Z(x) (x)*(x) #define pb push_back //#define N //#define M //#define mo int n, m, i, j, k, T; int a, b;
#include<bits/stdc++.h> using namespace std; #define int long long inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0' ||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<= '9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*f;} #define Z(x) (x)*(x) #define pb push_back //#define N //#define M //#define mo int n, m, i, j, k, T; int l, r, e, d, mid;
#include<bits/stdc++.h> using namespace std; #define int long long inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0' ||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<= '9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*f;} #define Z(x) (x)*(x) #define pb push_back #define N 1000010 //#define M //#define mo struct node { int x=0, a=0, b=0; }z[N]; int n, m, i, j, k, T; int top; char s[N];
#include<bits/stdc++.h> using namespace std; #define int long long inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0' ||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<= '9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*f;} #define Z(x) (x)*(x) #define pb push_back #define N 510 #define M 110 //#define mo struct node { int x, y; }a[N]; int n, m, i, j, k, T; int ans, f[N][M];