QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#219034#6557. LCSLCSLCSucup-team087AC ✓746ms39044kbC++2012.5kb2023-10-18 22:36:122023-10-18 22:36:13

Judging History

你现在查看的是最新测评结果

  • [2023-10-18 22:36:13]
  • 评测
  • 测评结果:AC
  • 用时:746ms
  • 内存:39044kb
  • [2023-10-18 22:36:12]
  • 提交

answer

#ifndef LOCAL
#pragma GCC optimize ("Ofast")
#pragma GCC optimize ("unroll-loops")
#endif

#include <bits/stdc++.h>
using namespace std;

using ll=long long;
#define int ll

#define rng(i,a,b) for(int i=int(a);i<int(b);i++)
#define rep(i,b) rng(i,0,b)
#define gnr(i,a,b) for(int i=int(b)-1;i>=int(a);i--)
#define per(i,b) gnr(i,0,b)
#define pb push_back
#define eb emplace_back
#define a first
#define b second
#define bg begin()
#define ed end()
#define all(x) x.bg,x.ed
#define si(x) int(x.size())
#ifdef LOCAL
#define dmp(x) cerr<<__LINE__<<" "<<#x<<" "<<x<<endl
#else
#define dmp(x) void(0)
#endif

template<class t,class u> bool chmax(t&a,u b){if(a<b){a=b;return true;}else return false;}
template<class t,class u> bool chmin(t&a,u b){if(b<a){a=b;return true;}else return false;}

template<class t> using vc=vector<t>;
template<class t> using vvc=vc<vc<t>>;

using pi=pair<int,int>;
using vi=vc<int>;

template<class t,class u>
ostream& operator<<(ostream& os,const pair<t,u>& p){
	return os<<"{"<<p.a<<","<<p.b<<"}";
}

template<class t> ostream& operator<<(ostream& os,const vc<t>& v){
	os<<"{";
	for(auto e:v)os<<e<<",";
	return os<<"}";
}

#define mp make_pair
#define mt make_tuple
#define one(x) memset(x,-1,sizeof(x))
#define zero(x) memset(x,0,sizeof(x))
#ifdef LOCAL
void dmpr(ostream&os){os<<endl;}
template<class T,class... Args>
void dmpr(ostream&os,const T&t,const Args&... args){
	os<<t<<" ";
	dmpr(os,args...);
}
#define dmp2(...) dmpr(cerr,__LINE__,##__VA_ARGS__)
#else
#define dmp2(...) void(0)
#endif

using uint=unsigned;
using ull=unsigned long long;

template<class t,size_t n>
ostream& operator<<(ostream&os,const array<t,n>&a){
	return os<<vc<t>(all(a));
}

template<int i,class T>
void print_tuple(ostream&,const T&){
}

template<int i,class T,class H,class ...Args>
void print_tuple(ostream&os,const T&t){
	if(i)os<<",";
	os<<get<i>(t);
	print_tuple<i+1,T,Args...>(os,t);
}

template<class ...Args>
ostream& operator<<(ostream&os,const tuple<Args...>&t){
	os<<"{";
	print_tuple<0,tuple<Args...>,Args...>(os,t);
	return os<<"}";
}

ll read(){
	ll i;
	cin>>i;
	return i;
}

vi readvi(int n,int off=0){
	vi v(n);
	rep(i,n)v[i]=read()+off;
	return v;
}

pi readpi(int off=0){
	int a,b;cin>>a>>b;
	return pi(a+off,b+off);
}

template<class t>
void print_single(t x,int suc=1){
	cout<<x;
	if(suc==1)
		cout<<"\n";
	if(suc==2)
		cout<<" ";
}

template<class t,class u>
void print_single(const pair<t,u>&p,int suc=1){
	print_single(p.a,2);
	print_single(p.b,suc);
}

template<class T>
void print_single(const vector<T>&v,int suc=1){
	rep(i,v.size())
		print_single(v[i],i==int(v.size())-1?suc:2);
}

template<class T>
void print_offset(const vector<T>&v,ll off,int suc=1){
	rep(i,v.size())
		print_single(v[i]+off,i==int(v.size())-1?suc:2);
}

template<class T,size_t N>
void print_single(const array<T,N>&v,int suc=1){
	rep(i,N)
		print_single(v[i],i==int(N)-1?suc:2);
}

template<class T>
void print(const T&t){
	print_single(t);
}

template<class T,class ...Args>
void print(const T&t,const Args&...args){
	print_single(t,2);
	print(args...);
}

string readString(){
	string s;
	cin>>s;
	return s;
}

template<class T>
T sq(const T& t){
	return t*t;
}

void YES(bool ex=true){
	cout<<"YES\n";
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}
void NO(bool ex=true){
	cout<<"NO\n";
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}
void Yes(bool ex=true){
	cout<<"Yes\n";
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}
void No(bool ex=true){
	cout<<"No\n";
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}
//#define CAPITAL
/*
void yes(bool ex=true){
	#ifdef CAPITAL
	cout<<"YES"<<"\n";
	#else
	cout<<"Yes"<<"\n";
	#endif
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}
void no(bool ex=true){
	#ifdef CAPITAL
	cout<<"NO"<<"\n";
	#else
	cout<<"No"<<"\n";
	#endif
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}*/
void possible(bool ex=true){
	#ifdef CAPITAL
	cout<<"POSSIBLE"<<"\n";
	#else
	cout<<"Possible"<<"\n";
	#endif
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}
void impossible(bool ex=true){
	#ifdef CAPITAL
	cout<<"IMPOSSIBLE"<<"\n";
	#else
	cout<<"Impossible"<<"\n";
	#endif
	if(ex)exit(0);
	#ifdef LOCAL
	cout.flush();
	#endif
}

constexpr ll ten(int n){
	return n==0?1:ten(n-1)*10;
}

const ll infLL=LLONG_MAX/3;

#ifdef int
const int inf=infLL;
#else
const int inf=INT_MAX/2-100;
#endif

int topbit(signed t){
	return t==0?-1:31-__builtin_clz(t);
}
int topbit(ll t){
	return t==0?-1:63-__builtin_clzll(t);
}
int topbit(ull t){
	return t==0?-1:63-__builtin_clzll(t);
}
int botbit(signed a){
	return a==0?32:__builtin_ctz(a);
}
int botbit(ll a){
	return a==0?64:__builtin_ctzll(a);
}
int botbit(ull a){
	return a==0?64:__builtin_ctzll(a);
}
int popcount(signed t){
	return __builtin_popcount(t);
}
int popcount(ll t){
	return __builtin_popcountll(t);
}
int popcount(ull t){
	return __builtin_popcountll(t);
}
int bitparity(ll t){
	return __builtin_parityll(t);
}
bool ispow2(int i){
	return i&&(i&-i)==i;
}
ll mask(int i){
	return (ll(1)<<i)-1;
}
ull umask(int i){
	return (ull(1)<<i)-1;
}
ll minp2(ll n){
	if(n<=1)return 1;
	else return ll(1)<<(topbit(n-1)+1);
}

bool inc(int a,int b,int c){
	return a<=b&&b<=c;
}

template<class t> void mkuni(vc<t>&v){
	sort(all(v));
	v.erase(unique(all(v)),v.ed);
}

ll rand_int(ll l, ll r) { //[l, r]
	//#ifdef LOCAL
	static mt19937_64 gen;
	/*#else
	static mt19937_64 gen(chrono::steady_clock::now().time_since_epoch().count());
	#endif*/
	return uniform_int_distribution<ll>(l, r)(gen);
}

ll rand_int(ll k){ //[0,k)
	return rand_int(0,k-1);
}

template<class t>
void myshuffle(vc<t>&a){
	rep(i,si(a))swap(a[i],a[rand_int(0,i)]);
}

template<class t>
int lwb(const vc<t>&v,const t&a){
	return lower_bound(all(v),a)-v.bg;
}
template<class t>
bool bis(const vc<t>&v,const t&a){
	return binary_search(all(v),a);
}

vvc<int> readGraph(int n,int m){
	vvc<int> g(n);
	rep(i,m){
		int a,b;
		cin>>a>>b;
		//sc.read(a,b);
		a--;b--;
		g[a].pb(b);
		g[b].pb(a);
	}
	return g;
}

vvc<int> readTree(int n){
	return readGraph(n,n-1);
}

template<class t>
vc<t> presum(const vc<t>&a){
	vc<t> s(si(a)+1);
	rep(i,si(a))s[i+1]=s[i]+a[i];
	return s;
}
vc<ll> presum(const vi&a){
	vc<ll> s(si(a)+1);
	rep(i,si(a))s[i+1]=s[i]+a[i];
	return s;
}
//BIT で数列を管理するときに使う (CF850C)
template<class t>
vc<t> predif(vc<t> a){
	gnr(i,1,si(a))a[i]-=a[i-1];
	return a;
}
template<class t>
vvc<ll> imos(const vvc<t>&a){
	int n=si(a),m=si(a[0]);
	vvc<ll> b(n+1,vc<ll>(m+1));
	rep(i,n)rep(j,m)
		b[i+1][j+1]=b[i+1][j]+b[i][j+1]-b[i][j]+a[i][j];
	return b;
}

//verify してないや
void transvvc(int&n,int&m){
	swap(n,m);
}
template<class t,class... Args>
void transvvc(int&n,int&m,vvc<t>&a,Args&...args){
	assert(si(a)==n);
	vvc<t> b(m,vi(n));
	rep(i,n){
		assert(si(a[i])==m);
		rep(j,m)b[j][i]=a[i][j];
	}
	a.swap(b);
	transvvc(n,m,args...);
}
//CF854E
void rotvvc(int&n,int&m){
	swap(n,m);
}
template<class t,class... Args>
void rotvvc(int&n,int&m,vvc<t>&a,Args&...args){
	assert(si(a)==n);
	vvc<t> b(m,vi(n));
	rep(i,n){
		assert(si(a[i])==m);
		rep(j,m)b[m-1-j][i]=a[i][j];
	}
	a.swap(b);
	rotvvc(n,m,args...);
}

//ソートして i 番目が idx[i]
//CF850C
template<class t>
vi sortidx(const vc<t>&a){
	int n=si(a);
	vi idx(n);iota(all(idx),0);
	sort(all(idx),[&](int i,int j){return a[i]<a[j];});
	return idx;
}
//vs[i]=a[idx[i]]
//例えば sortidx で得た idx を使えば単にソート列になって返ってくる
//CF850C
template<class t>
vc<t> a_idx(const vc<t>&a,const vi&idx){
	int n=si(a);
	assert(si(idx)==n);
	vc<t> vs(n);
	rep(i,n)vs[i]=a[idx[i]];
	return vs;
}
//CF850C
vi invperm(const vi&p){
	int n=si(p);
	vi q(n);
	rep(i,n)q[p[i]]=i;
	return q;
}

template<class t,class s=t>
s SUM(const vc<t>&a){
	return accumulate(all(a),s(0));
}

template<class t>
t MAX(const vc<t>&a){
	return *max_element(all(a));
}

template<class t>
pair<t,int> MAXi(const vc<t>&a){
	auto itr=max_element(all(a));
	return mp(*itr,itr-a.bg);
}

template<class t>
t MIN(const vc<t>&a){
	return *min_element(all(a));
}

template<class t>
pair<t,int> MINi(const vc<t>&a){
	auto itr=min_element(all(a));
	return mp(*itr,itr-a.bg);
}

vi vid(int n){
	vi res(n);iota(all(res),0);
	return res;
}

template<class S>
void soin(S&s){
	sort(all(s));
}

template<class S>
S soout(S s){
	soin(s);
	return s;
}

template<class S>
void rein(S&s){
	reverse(all(s));
}

template<class S>
S reout(S s){
	rein(s);
	return s;
}

template<class t,class u>
pair<t,u>&operator+=(pair<t,u>&a,pair<t,u> b){
	a.a+=b.a;a.b+=b.b;return a;}
template<class t,class u>
pair<t,u>&operator-=(pair<t,u>&a,pair<t,u> b){
	a.a-=b.a;a.b-=b.b;return a;}
template<class t,class u>
pair<t,u> operator+(pair<t,u> a,pair<t,u> b){return mp(a.a+b.a,a.b+b.b);}
template<class t,class u>
pair<t,u> operator-(pair<t,u> a,pair<t,u> b){return mp(a.a-b.a,a.b-b.b);}

template<class t>
t gpp(vc<t>&vs){
	assert(si(vs));
	t res=move(vs.back());
	vs.pop_back();
	return res;
}

template<class t>
void pb(vc<t>&a,const vc<t>&b){
	a.insert(a.ed,all(b));
}

template<class t>
vc<t> cat(vc<t> a,const vc<t>&b){
	pb(a,b);
	return a;
}

template<class t,class u>
vc<t>& operator+=(vc<t>&a,u x){
	for(auto&v:a)v+=x;
	return a;
}

template<class t,class u>
vc<t> operator+(vc<t> a,u x){
	return a+=x;
}

template<class t,class u>
vc<t>& operator-=(vc<t>&a,u x){
	for(auto&v:a)v-=x;
	return a;
}

template<class t,class u>
vc<t>& operator-(vc<t> a,u x){
	return a-=x;
}

//https://judge.yosupo.jp/problem/prefix_substring_lcs
//C(k,l,r)=LCS(a[0,k),b[l,r))

//k,r>0 を固定する.
//C(k,l,r)-C(k,l,r-1)=0 l<h[k][r]
//C(k,l,r)-C(k,l,r-1)=1 h[k][r]<=l
//を満たす h[k][r] がとれる.(h[k][r]=r かもしれない)

//k>0,r を固定する.
//C(k,l,r)-C(k-1,l,r)=1 l<v[k][r]
//C(k,l,r)-C(k-1,l,r)=0 v[k][r]<=l
//をみたす v[k][r] がとれる.(v[k][r]=r かもしれない)

//(h,v) を DP で求め,返す.
//O(|A||B|)
template<class S>
pair<vvc<int>,vvc<int>> prefix_substring_lcs(const S&a,const S&b){
	int n=si(a),m=si(b);
	vvc<int> h(n+1,vi(m+1,-1));
	vvc<int> v(n+1,vi(m+1,-1));
	
	rng(r,1,m+1)h[0][r]=r;
	rng(k,1,n+1)v[k][0]=0;
	
	rng(k,1,n+1)rng(r,1,m+1){
		if(a[k-1]==b[r-1]){
			v[k][r]=h[k-1][r];
			h[k][r]=v[k][r-1];
		}else{
			tie(v[k][r],h[k][r])=minmax(v[k][r-1],h[k-1][r]);
		}
	}
	
	return mp(h,v);
}

//res[i][j]=LCS(a,b[i,j))
template<class S>
vvc<int> lcs_list(const S&a,const S&b){
	int n=si(a),m=si(b);
	auto [h,v]=prefix_substring_lcs(a,b);
	vi val(m+1);
	vvc<int> res(m+1,vi(m+1,-inf));
	rep(j,m+1){
		if(j>0){
			val[h[n][j]]++;
			val[j]--;
		}
		int x=0;
		rep(i,j+1){
			x+=val[i];
			res[i][j]=x;
		}
	}
	return res;
}

bool dbg=false;

void slv(){
	int n,m;cin>>n>>m;
	string a,b;cin>>a>>b;
	if(n>m){
		swap(n,m);
		swap(a,b);
	}
	auto getlr=[&](int k){
		assert(inc(0,k,m));
		int v=__int128(n*si(a))*k/m;
		int l=v-si(a)-10;
		int r=v+si(a)*2+10;
		chmax(l,0);
		chmin(r,n*si(a)+1);
		return pi(l,r);
	};
	struct N{
		int k,l,r;
		vvc<int> buf;
		int val(int i,int j)const{
			return buf[i][j-l];
		}
	};
	auto prep=[&](int k,int ini){
		N x;
		x.k=k;
		tie(x.l,x.r)=getlr(k);
		x.buf.resize(si(a),vi(x.r-x.l,ini));
		return x;
	};
	auto mg=[&](const N&x,const N&y){
		N z=prep(x.k+y.k,-inf);
		
		static vvc<int> pos;
		pos.resize(si(a));
		rep(i,si(a))pos[i].assign(z.r-z.l,-1);
		
		rep(i,si(a))gnr(j,z.l,z.r){
			int lw=x.l,up=x.r;
			if(i>0)chmax(lw,pos[i-1][j-z.l]);
			if(j+1<z.r)chmin(up,pos[i][j+1-z.l]+1);
			rng(p,lw,up){
				int u=p/si(a),v=p%si(a),q=j-u*si(a);
				if(y.l<=q&&q<y.r){
					if(chmax(z.buf[i][j-z.l],x.val(i,p)+y.val(v,q)))
						pos[i][j-z.l]=p;
				}
			}
		}
		
		return z;
	};
	
	N w=prep(1,-inf);
	{
		string c(w.r,'?');
		rep(i,si(c))c[i]=a[i%si(a)];
		auto ls=lcs_list(b,c);
		
		rep(i,si(a))rng(j,w.l,w.r){
			w.buf[i][j-w.l]=ls[i][j];
		}
	}
	
	N ans=prep(0,0);
	
	int t=m;
	while(t){
		if(t&1)ans=mg(ans,w);
		if(t>>=1)w=mg(w,w);
	}
	
	print(ans.val(0,n*si(a)));
}

signed main(){
	cin.tie(0);
	ios::sync_with_stdio(0);
	cout<<fixed<<setprecision(20);
	
	if(dbg){
		while(1)slv();
	}else{
		//int t;cin>>t;rep(_,t)
		slv();
	}
}

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 3512kb

input:

10 10
AB
BA

output:

19

result:

ok 1 number(s): "19"

Test #2:

score: 0
Accepted
time: 1ms
memory: 3508kb

input:

100000000 100000000
A
AB

output:

100000000

result:

ok 1 number(s): "100000000"

Test #3:

score: 0
Accepted
time: 7ms
memory: 3764kb

input:

1000000000000000 1000000000000000
BDCABACCCABBBDBDDCDADACBACBACDDCDCBADDDCDDCBBABDBA
DACBBDDBBCADCCACACAACBCBCCCBBABDACAACADAADCDBCCCBB

output:

30999999999999997

result:

ok 1 number(s): "30999999999999997"

Test #4:

score: 0
Accepted
time: 7ms
memory: 3704kb

input:

1000000000000000 1000000000000000
BDDCACBCBCBBAACBBBBACCBADDDCDACCBACCDDDBBDBDBBBCBA
CCCCBAADCDCDABADDBCCDACAABADAABCBDCCAADDABADDBCBBC

output:

30000000000000000

result:

ok 1 number(s): "30000000000000000"

Test #5:

score: 0
Accepted
time: 8ms
memory: 3792kb

input:

1000000000000000 1000000000000000
BADDABDACDAAABBCDBBDDDCDAACCAACBBCBBACCACDCBCDDAAD
CCADACCCDBBCAABCCDBDBAABDAACDBBABBDDCBCBACBBAABCBB

output:

32999999999999993

result:

ok 1 number(s): "32999999999999993"

Test #6:

score: 0
Accepted
time: 4ms
memory: 3752kb

input:

1000000000000000 1000000000000000
ABAABDCBBABACBDDDADBBBCBBDBACBACDCCBADCDBDBBAAABBA
BCCCBAACBBDCBCADADBACCBBCBCCACDBCDCBBCCACCADBCDBCB

output:

31999999999999998

result:

ok 1 number(s): "31999999999999998"

Test #7:

score: 0
Accepted
time: 7ms
memory: 3752kb

input:

1000000000000000 1000000000000000
BCDAABCABDCDDBDADABBDABBBDACCCAADABCCCDBDAADBCACDA
DBACCCDCCBDACADAADACCBCDADDCABCCBDBCBDBADACCDABBDB

output:

35999999999999991

result:

ok 1 number(s): "35999999999999991"

Test #8:

score: 0
Accepted
time: 8ms
memory: 3752kb

input:

1000000000000000 1000000000000000
AACACCDDDDBACAADADCBABCCBDBACDDABABABDBCAABABADADA
ACDBAACBCBBDBBACBABABBDBBBDAADBCACCABBADDDDDDADCDC

output:

33999999999999996

result:

ok 1 number(s): "33999999999999996"

Test #9:

score: 0
Accepted
time: 8ms
memory: 3712kb

input:

1000000000000000 1000000000000000
CADADCCCDDADBDCDCDBAACDBDACACBDDDCCDAADABDBACCBCDB
BABABACCBDAAADCDBDDDABDBADDADBBDBBACAABCCACCBDCAAD

output:

32999999999999996

result:

ok 1 number(s): "32999999999999996"

Test #10:

score: 0
Accepted
time: 7ms
memory: 3704kb

input:

1000000000000000 1000000000000000
ADDCBCBBAADDBCADCCDBDBBAADACDBCAAACCBBABCADBBAABCC
AAACCDDDCBBDBCCCCCBBAAACBCDCDAAABBBAAACCCDBADADBCB

output:

32999999999999999

result:

ok 1 number(s): "32999999999999999"

Test #11:

score: 0
Accepted
time: 8ms
memory: 3712kb

input:

1000000000000000 1000000000000000
BACBCACDDBCDADDDBBAABBCBCCBCBCABDBDBBBCADABDDDCDAA
CCBCACADDBDDCCBABAABBABCDDAACADBCDBDBDABABCCBBCAAB

output:

32999999999999999

result:

ok 1 number(s): "32999999999999999"

Test #12:

score: 0
Accepted
time: 6ms
memory: 3776kb

input:

1000000000000000 777777777777777
CCBBCBAABCCCBABCBCAAAACABBACCCCACAABCBBACACAACABCB
CCBAABCABBBCCAABBCBBCACABCAAACACABACBCCBAACBCBCAAC

output:

31666666666666648

result:

ok 1 number(s): "31666666666666648"

Test #13:

score: 0
Accepted
time: 6ms
memory: 3688kb

input:

1000000000000000 777777777777777
ACBAAAACCACCCBAACAAABACACCABCBCBABBBACBABCAACCBCCA
CBCBACACACBCACCABACCBCCBAAAAABBACBACACBCCBABCAACBB

output:

31777777777777755

result:

ok 1 number(s): "31777777777777755"

Test #14:

score: 0
Accepted
time: 6ms
memory: 3688kb

input:

1000000000000000 777777777777777
CCCACCBCBACBACBCABAABABCCAAAACCCCCBBAABBCCBCCCABBA
CACAACBCCCBAAACACABCCABCCCCCABCAAAABBBCBBBAABCCACC

output:

29888888888888870

result:

ok 1 number(s): "29888888888888870"

Test #15:

score: 0
Accepted
time: 6ms
memory: 3744kb

input:

1000000000000000 777777777777777
CABACBCBBCBABACABBBBBBABBCABCBCBCAABCBCCCBABACCCCA
BBABBBACBBACBCCCAAACACCABABCCCBCACCBCBCAACACBCCBAC

output:

31222222222222201

result:

ok 1 number(s): "31222222222222201"

Test #16:

score: 0
Accepted
time: 6ms
memory: 3812kb

input:

1000000000000000 777777777777777
BCCBCCACCBCBCABBBCCABAACACCBCCCBCCACCBBCBCCCBBCCBA
CBCBCBBCBABCBACBBABABCBCACBAAABBABACABBCBCCBACCBBC

output:

31777777777777754

result:

ok 1 number(s): "31777777777777754"

Test #17:

score: 0
Accepted
time: 6ms
memory: 3740kb

input:

1000000000000000 777777777777777
BABACACCABCAACBAABCCACCACBCCAABBCBAABABAACAAAAAACC
CBCBBABBBBBCBCACBABABACBBABCBABBCACBCACCBCAAABACAA

output:

29555555555555538

result:

ok 1 number(s): "29555555555555538"

Test #18:

score: 0
Accepted
time: 6ms
memory: 3740kb

input:

1000000000000000 777777777777777
ACCACABABBACBBAACCBBACBBCCACCACCABCCBABABBBACBACBA
ABCBBCAACAABABBABBAACABCAABCCABACBBBBCABCCCACBACBA

output:

32666666666666648

result:

ok 1 number(s): "32666666666666648"

Test #19:

score: 0
Accepted
time: 6ms
memory: 3740kb

input:

1000000000000000 777777777777777
ABBBBAABCAACCBACBBAACACABCABACBAABCAABBCCCCCCACBCC
CCAABCBABAABCBBAAACCCCCABAAAABCAABBCCCCACCBACABABB

output:

32222222222222200

result:

ok 1 number(s): "32222222222222200"

Test #20:

score: 0
Accepted
time: 6ms
memory: 3692kb

input:

1000000000000000 777777777777777
ABBAACCCACBBABBABCCCABABCACABABACCCBACACABCBCCCBAB
CCCCABCBAABBAAABACCCCABBABABAACABBCACBACACBBCBAABA

output:

32888888888888869

result:

ok 1 number(s): "32888888888888869"

Test #21:

score: 0
Accepted
time: 6ms
memory: 3868kb

input:

973726016575412 359840763615420
CCBBCBAABCCCBABCBCAAAACABBACCCCACAABCBBACACAACABCB
CCBAABCABBBCCAABBCBBCACABCAAACACABACBCCBAACBCBCAAC

output:

17886241906500152

result:

ok 1 number(s): "17886241906500152"

Test #22:

score: 0
Accepted
time: 6ms
memory: 3856kb

input:

158612425862653 819897228289078
CBABBBACBABCAACCBCCACBCBACACACBCACCABACCBCCBAAAAAB
BACBACACBCCBABCAACBBCCCACCBCBACBACBCABAABABCCAAAAC

output:

7930621293132650

result:

ok 1 number(s): "7930621293132650"

Test #23:

score: 0
Accepted
time: 6ms
memory: 3692kb

input:

342887581257444 503649293440596
BAAACACABCCABCCCCCABCAAAABBBCBBBAABCCACCCABACBCBBC
BABACABBBBBBABBCABCBCBCAABCBCCCBABACCCCABBABBBACBB

output:

13930205890208364

result:

ok 1 number(s): "13930205890208364"

Test #24:

score: 0
Accepted
time: 3ms
memory: 3800kb

input:

611173004830129 302236715540260
ACACBCCBACBCCBCCACCBCBCABBBCCABAACACCBCCCBCCACCBBC
BCCCBBCCBACBCBCBBCBABCBACBBABABCBCACBAAABBABACABBC

output:

14534160640930915

result:

ok 1 number(s): "14534160640930915"

Test #25:

score: 0
Accepted
time: 6ms
memory: 3752kb

input:

748236303528072 636528103155221
ABBBBCCAABCBBCACCBBCAAAABABABBABBBACAAABAABACCBCAA
CCAABCBBACCACBABBCCCACCBCABCACABBAACCCACBBABBABCCC

output:

22870745711378875

result:

ok 1 number(s): "22870745711378875"

Test #26:

score: 0
Accepted
time: 6ms
memory: 3804kb

input:

313370955837837 945058801322270
CCCCABCBAABBAAABACCCCABBABABAACABBCACBACACBBCBAABA
ABBBBAABCAACCBACBBAACACABCABACBAABCAABBCCCCCCACBCC

output:

15668547791891850

result:

ok 1 number(s): "15668547791891850"

Test #27:

score: 0
Accepted
time: 3ms
memory: 3828kb

input:

639219823402319 847398008805143
CAABBCCCCACCBACABABBACCACABABBACBBAACCBBACBBCCACCA
CCABCCBABABBBACBACBAABCBBCAACAABABBABBAACABCAABCCA

output:

26580313328719184

result:

ok 1 number(s): "26580313328719184"

Test #28:

score: 0
Accepted
time: 3ms
memory: 3744kb

input:

644195574734088 149903035076783
ABBACCCBBBCCACBACCCBCCAABCAABCBBBCCBACCBABCAACACAA
BABABACABBCBBACCACBBBCBABCCACCABCACABAACBBACBACCAA

output:

7495151753839150

result:

ok 1 number(s): "7495151753839150"

Test #29:

score: 0
Accepted
time: 6ms
memory: 3760kb

input:

546793478816387 321638328601260
ACCBCBAABAAACABBAABABBBBBCABAAAAAABACBBAABBAABBCAC
ABBCBBCAABBCBAAAAACBABCAACAAACAACBCCCBCBABABBCBCAC

output:

13701859359967636

result:

ok 1 number(s): "13701859359967636"

Test #30:

score: 0
Accepted
time: 7ms
memory: 3768kb

input:

973726016575412 359840763615420
PHQGHUMEAYLNLFDXFIRCVSCXGGBWKFNQDUXWFNFOZVSRTKJPRE
PGGXRPNRVYSTMWCYSYYCQPEVIKEFFMZNIMKKASVWSRENZKYCXF

output:

8932674756917526

result:

ok 1 number(s): "8932674756917526"

Test #31:

score: 0
Accepted
time: 6ms
memory: 3792kb

input:

158612425862653 819897228289078
YGPOEYLFPBNPLJVRVIPYAMYEHWQNQRQPMXUJJLOOVAOWUXWHMS
NCBXCOKSFZKVATXDKNLYJYHFIXJSWNKKUFNUXXZRZBMNMGQOOK

output:

4494818122105909

result:

ok 1 number(s): "4494818122105909"

Test #32:

score: 0
Accepted
time: 3ms
memory: 3744kb

input:

342887581257444 503649293440596
VSCMPSAJLFVGUBFAAOVLZYLNTRKDCPWSRTESJWHDIZCOBZCNFW
LQIJTVDWVXHRCBLDVGYLWGBUSBMBORXTLHCSMPXOHGMGNKEUFD

output:

6793659154475459

result:

ok 1 number(s): "6793659154475459"

Test #33:

score: 0
Accepted
time: 7ms
memory: 3824kb

input:

611173004830129 302236715540260
GEKJDQZJENPEVQGXIEPJSRDZJAZUJLLCHHBFQMKIMWZOBIWYBX
DUUNFSKSRSRTEKMQDCYZJEEUHMSRQCOZIJIPFIONEEDDPSZRNA

output:

7280479467964673

result:

ok 1 number(s): "7280479467964673"

Test #34:

score: 0
Accepted
time: 6ms
memory: 3756kb

input:

748236303528072 636528103155221
MHECTHLEGRPUNKDMBPPWEQTGJOPARMOWZDQYOXYTJBBHAWDYDC
PRJBXPHOOHPKWQYUHRQZHNBNFUVQNQQLRZJPXIOGVLIEXDZUZO

output:

9994754348819718

result:

ok 1 number(s): "9994754348819718"

Test #35:

score: 0
Accepted
time: 6ms
memory: 3840kb

input:

644195574734088 149903035076783
MDCASZSGOVSODKJGHCWMBMXRMHUYFYQGAJQKCKLZNAYXQKQOYZ
WMYUBZAZCPKHKTKYDZIVCUYPURFMBISGEKYRGZVXDHPOAMVAFY

output:

4586257921157402

result:

ok 1 number(s): "4586257921157402"

Test #36:

score: 0
Accepted
time: 6ms
memory: 3752kb

input:

546793478816387 321638328601260
PNARAEWKEGJCCVHHRJVBJTSQDJOOTGPKNFPFYCGFIEOWQRWWWP
ZSQMETOGEPSPXNVJIUPALYYNMKMNUVKLHSECDWRACGFMZKGIPD

output:

5725195529879408

result:

ok 1 number(s): "5725195529879408"

Test #37:

score: 0
Accepted
time: 6ms
memory: 3740kb

input:

636154209737260 637882913598407
BBAABAAAAABBBBBBBABABAABAABAABBABABABBBABBA
BBABBBABAABBBBBBAABAAAAAAAAABABAAABBABBAAAAAABAAB

output:

22917109885291680

result:

ok 1 number(s): "22917109885291680"

Test #38:

score: 0
Accepted
time: 5ms
memory: 3736kb

input:

681989722828907 925533374380880
BABBBABAAABAAABBBBBBBBBBBABAAAAABAABABABABA
BBBAABAAAABABAABABBAAAABBABABBBABBABABBABBAABAAAB

output:

28107502331466223

result:

ok 1 number(s): "28107502331466223"

Test #39:

score: 0
Accepted
time: 3ms
memory: 3748kb

input:

862146291503649 616335532825361
ABBAABAAABAAAABBBAAABAABBBBAABBAAABBBABBBBA
BABAABBAABABBABAABBABBABAABBBBABBBBABBBBAABAABAAB

output:

26862100868859748

result:

ok 1 number(s): "26862100868859748"

Test #40:

score: 0
Accepted
time: 5ms
memory: 3752kb

input:

567384926577457 831484920706070
ABBAAABBABAAAABBABABBAAAAAABBABBABBABAABAAB
BABBBBABABBBABBBBAAAAAABABAAABBBAABBAAABABBAAAABA

output:

23370142230523426

result:

ok 1 number(s): "23370142230523426"

Test #41:

score: 0
Accepted
time: 6ms
memory: 3824kb

input:

858324115951064 324442792373157
BABAAABABBBBAAAAAABBBBBAAAABABABABAABBBAABB
ABABABBBAAABABABABAAABBAAABABBBBBAABABABBBBBBBAAB

output:

15897696826284693

result:

ok 1 number(s): "15897696826284693"

Test #42:

score: 0
Accepted
time: 5ms
memory: 3684kb

input:

190429314820559 745680774313630
BBAABBBABAABABAABABBBBAABBAAABABABBAAABAABB
BAABABBABBABAAABBABABBBBAABBABBBBBABABBBBBAABABAA

output:

8188460537284037

result:

ok 1 number(s): "8188460537284037"

Test #43:

score: 0
Accepted
time: 6ms
memory: 3844kb

input:

562535661446268 454253268266394
BAABAABABBBAAABABBBABABAAABBAAABABBBBBABBBA
BBABBBBBBAAAABAAAAABBAAABABBABABBAABBBAABAABBBBBA

output:

18756454003094308

result:

ok 1 number(s): "18756454003094308"

Test #44:

score: 0
Accepted
time: 6ms
memory: 3852kb

input:

908387269381033 92824504405115
ABBBABBBBAAAAABBAAAABABABAAABBBAAAAAABBABAB
BABBAABAAABBBABABBBBBAABBABAABABAABBBBBBBAABABBBB

output:

4548400715850635

result:

ok 1 number(s): "4548400715850635"

Test #45:

score: 0
Accepted
time: 5ms
memory: 3684kb

input:

780208928205527 986623826275782
AAAABBABBBBBABABAABBAAABBABABBAAAAABBAAABAB
ABBABABBABBAAAABBBAAAABAAABAAABAABABABAAABABBABAA

output:

31918503150582829

result:

ok 1 number(s): "31918503150582829"

Test #46:

score: 0
Accepted
time: 5ms
memory: 3716kb

input:

104075905120989 790814079538232
BBBBBBAAAAABAABABABAAAAAABABBBABBAAAABBABAB
BBBAABAAAAABAABABBAAAABAAAABABAABBBBBBAAABBABBAAA

output:

4475263920202527

result:

ok 1 number(s): "4475263920202527"

Test #47:

score: 0
Accepted
time: 7ms
memory: 3792kb

input:

263159702617625 132816467796419
BBBBABAAAAABABBBAAAABABBABAAABBBAABBAAABABA
AABABAAAABAABAABABBABBBAAAABABABBBBAABBABBAABBAAB

output:

6485747825247612

result:

ok 1 number(s): "6485747825247612"

Test #48:

score: 0
Accepted
time: 5ms
memory: 3732kb

input:

529126170152290 536315340317903
BAABBBBBAAAABBBABBABBBAABAABAAABBBBBBABBAAA
BBAAABAAABBABBBABBAABABBBBAABAABAABABBABABAAAABBB

output:

20193064507774373

result:

ok 1 number(s): "20193064507774373"

Test #49:

score: 0
Accepted
time: 5ms
memory: 3724kb

input:

13939365540506 266330081381698
BBABAAAABAABAABABABABBAAAAABAABBABAABBBBAAB
BBAABABABABABBBBABAAABAABAABBBBBABBBBBABBBAABBBAB

output:

599392718241758

result:

ok 1 number(s): "599392718241758"

Test #50:

score: 0
Accepted
time: 7ms
memory: 3788kb

input:

958962576385930 476630908015103
BBBABAAABABABAAABAAAAAABAAABBABAABBABABABAB
BAABABABAAAAABAAABBBBBABBBBBBABBBBABBAAAABBAABABB

output:

23354914492740047

result:

ok 1 number(s): "23354914492740047"

Test #51:

score: 0
Accepted
time: 5ms
memory: 3776kb

input:

413850921335290 810687651295615
BBAABAABBBAAABBBABBBBBBBABBBAABBBBBAAAABBAB
BBABBABABBABBBAAAABAABAABBABABAAAABBBBBBABBABBBAB

output:

17795589617417470

result:

ok 1 number(s): "17795589617417470"

Test #52:

score: 0
Accepted
time: 2ms
memory: 3708kb

input:

23168772879592 668058895732220
AABBBBABABABBAABABAABABAAAABBABAABAAABBBBBA
BAABBBAABABABAABAAABABBABABBBBAABABBBAABAAAABABAB

output:

996257233822456

result:

ok 1 number(s): "996257233822456"

Test #53:

score: 0
Accepted
time: 2ms
memory: 3708kb

input:

233730148789897 710283556149383
BBBAABBAAAABBABAABBABBABBBAABABBAABBBBABABA
BBBBABBBABBBAABBBBBBBABAAABABAABAAAABBABBABAAAAAB

output:

10050396397965571

result:

ok 1 number(s): "10050396397965571"

Test #54:

score: 0
Accepted
time: 1ms
memory: 3592kb

input:

1000000000000000 1000000000000000
A
B

output:

0

result:

ok 1 number(s): "0"

Test #55:

score: 0
Accepted
time: 1ms
memory: 3480kb

input:

1 1
Z
Z

output:

1

result:

ok 1 number(s): "1"

Test #56:

score: 0
Accepted
time: 0ms
memory: 3472kb

input:

1 1
Z
X

output:

0

result:

ok 1 number(s): "0"

Test #57:

score: 0
Accepted
time: 1ms
memory: 3624kb

input:

1 1
ABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJABCDEFGHIJ
QWERTYUIOPQWERTYUIOPQWERTYUIOPQWERTYUIOPQWERTYUIOP

output:

10

result:

ok 1 number(s): "10"

Test #58:

score: 0
Accepted
time: 1ms
memory: 3624kb

input:

1 1
WUENWFRVUKUMWDWDTLNRJVVTDNQOQHBYYRLMTJGXCCFFOYLSYU
IIYVWJQBXKFYLNASJZKWNDPRHFXQLYNXBLISAHVVUTGPPDDBES

output:

13

result:

ok 1 number(s): "13"

Test #59:

score: 0
Accepted
time: 0ms
memory: 3520kb

input:

1 1
ETENXUYB
OADWEXSILYMACRDWTFJW

output:

3

result:

ok 1 number(s): "3"

Test #60:

score: 0
Accepted
time: 2ms
memory: 3568kb

input:

1 1000000000000000
ZBIPVAVAHJNPFOUWQBAENFAIFIKBNLHACXNGXJACJIUCREXTNF
PLCOKTLSGXYCWEYUESHJPWOXQHYKGTJCLDPRXVPKBGGWXCRNFG

output:

39

result:

ok 1 number(s): "39"

Test #61:

score: 0
Accepted
time: 1ms
memory: 3492kb

input:

1 1000000000000000
DPKSKTQCQAZW
UKEMYAACWM

output:

5

result:

ok 1 number(s): "5"

Test #62:

score: 0
Accepted
time: 7ms
memory: 3824kb

input:

1000000000000000 1000000000000000
YGHXKMKWKQJDDRDCYJQEBIWLUKRZYANNFLCKXREDLESEGCLLGM
IVFCHPGIJVJ

output:

5999999999999998

result:

ok 1 number(s): "5999999999999998"

Test #63:

score: 0
Accepted
time: 7ms
memory: 3756kb

input:

1000000000000000 1000000000000000
PVRLQSSFHCGHZFFBAYSAZSOLCTUXQXNOAVRMQXBKLOIWXHMNXS
SBFAMJRALFKFDIOBYQDUATNSFECSOREZPUCKBIZXXLAFWKWXEQ

output:

16999999999999999

result:

ok 1 number(s): "16999999999999999"

Test #64:

score: 0
Accepted
time: 1ms
memory: 3532kb

input:

709861939765211 1000000000000000
BRJOSOC
JITUQQPUCJBXFNOEMZRMMW

output:

3129585819295632

result:

ok 1 number(s): "3129585819295632"

Test #65:

score: 0
Accepted
time: 6ms
memory: 3808kb

input:

710452281077929 1000000000000000
XXZKPXGCOBRQFIQBFQQDBTFIFYIUIOTHQXVBBYJUYQAFIIYCWE
OMWHJWLNTNFVVNRHTOEVDYQYLVMWJJSTFSJUUHGFVLTQKNYPRA

output:

9973165967545502

result:

ok 1 number(s): "9973165967545502"

Test #66:

score: 0
Accepted
time: 2ms
memory: 3620kb

input:

1000000000000000 683432196932049
YJIODJWMKNJWCGFFPRCOQOIBHYLXLHRT
LTCKSUBLTJVQNPHLDRPXJFYCP

output:

7417160984660242

result:

ok 1 number(s): "7417160984660242"

Test #67:

score: 0
Accepted
time: 6ms
memory: 3680kb

input:

1000000000000000 613892017596863
FHICJRFEZUMZGNGEUDGMNZFZQCCQDNNSPGCGZLGANMEDECZMLS
ZBIFBVNTCXJKZXKYIIGWRECTSWIYORTSHARHQRSATPQWYEPPCR

output:

9525028158371766

result:

ok 1 number(s): "9525028158371766"

Test #68:

score: 0
Accepted
time: 3ms
memory: 3584kb

input:

284965599323079 890548365990318
IQLBRWKRCZPUUOAXEDBSCXEXHJLQYZ
ARIZ

output:

1460479564636476

result:

ok 1 number(s): "1460479564636476"

Test #69:

score: 0
Accepted
time: 6ms
memory: 3796kb

input:

517331754115797 889576652477014
RTGJFGHOGKGSZGHRVXYGGPZEWKYOJEOSGKZBFHBFHBCVBWZHOJ
RDTSOBLHLZGJDNYCIYFKOMZYEDSBWRKKBVLADSPTLCKUIOMHTY

output:

9621200803543040

result:

ok 1 number(s): "9621200803543040"

Test #70:

score: 0
Accepted
time: 1ms
memory: 3568kb

input:

1000000000000000 1000000000000000
FA
VHSTVJHLYSCEHKZLEFSKUUTZXBWKBDEZOOONFBZFFMPU

output:

1000000000000000

result:

ok 1 number(s): "1000000000000000"

Test #71:

score: 0
Accepted
time: 8ms
memory: 3692kb

input:

1000000000000000 1000000000000000
AAQFZLADEGQJAVHYPJTHLGJMIEKHQGVODPNDNOWODNRZKAYQCF
VUUBBBLRQKSRPNMVWENXLYUSBGIBAFXLAOOSJJGKPNKAJIYJBN

output:

14999999999999998

result:

ok 1 number(s): "14999999999999998"

Test #72:

score: 0
Accepted
time: 6ms
memory: 13100kb

input:

1 1
SRFMKMIIWQASZHMXDZSCBSLOJOFIDYQHUDHZGLOBZEUFSHBLSDFFSXRUJKZCUDJZLWCJVQJGQZDRWABTFUIFSTEKGQZFVVTDWUPLNWIWJPNFLMDGLIIVHEUZWXIURGNLFZTVKWRHCRWNQMNNYEIDVDGPJGAAYSXKOMBCNSXTTUHLXHVNUDXXZMDNMHQKKSFYWPPRHFWXWCAZNXLLZVTNKTNKAXMXEMJPEIEPQCVTIQZPLMNHXTSJEILHDVGPXYPPGROZUYYUEJRUMVJSMILKLLMXCZBFNSXWFVWVBFPM...

output:

154

result:

ok 1 number(s): "154"

Test #73:

score: 0
Accepted
time: 3ms
memory: 5980kb

input:

1 1
XGFEIWMOZABDVGHURAVSMEENWXZUALZWHGLGTHMRYUMPBPKPAKKGUNBUWTBESXGKRTNULOMQNTZVRINHOANCPNZLQVKEFXHIHCTFBRCYOGETVZFRBXSRRERSSWJMNPZUFXMDLLPTRZSTAKUQEUVZNNWRWFQIMXQTDNHWCGSNIVALFICCSJGNWOLGGYIFDYZZIAUWPDRNTRELNNYNBEHUFZLEIKAQKEUEIHTHJTQTHKVSFFEHVLXKTUVRCUUACBFCIDSPCYGFRHHIQOOGONVNFNVJTPOPNVXAEYRWZ
QY...

output:

66

result:

ok 1 number(s): "66"

Test #74:

score: 0
Accepted
time: 118ms
memory: 13172kb

input:

1 1000000000000000
WTEIORVIPRJDVAINQMXMGHNIDCCMIBTOWZLZATVHOBZLFGQWQKJJOLBPBTMXXOYWNRVHJVDGWJGSNVXPLFBJQQSETXKDCCQQIVDCXGFNOVBMQFCEQCWZJUOJKCRGJYPPYFRMROVWFFSQJPXVAZBVJSRQVJSCNOVNVVBCFLIHCOFOOHYYYXWGKBIZXDTQQSCWGIGZLGSCXLGJYBJNHQQEIPONFEPROPOIUFGMZLVRZPQDJGVSXTQAFIVVHKXTJROHAEHCLEQIBKMRSVBRNIYOEVBNA...

output:

500

result:

ok 1 number(s): "500"

Test #75:

score: 0
Accepted
time: 79ms
memory: 9640kb

input:

1 1000000000000000
CLQFBZVZWTYSHTMEUOVNFTBSCZDADHDUALRKJERXLVBAXWPUWATBMYOMADTBVSZJFYJRQXOREPUQXSIOLXCXFWLLYCHSRYVZTPOWFZQFUYERYTTUDMNEFLAFKQNPITXLOPPSOZNXICCACGMIQHGYZQPRMBOJVGPUWGRJKBQQZVBWKCZKBYMZGKNMNZFDNPSHMDQAOMXXEVCPXITEZAIWKJOYTLDJCZWZPQTEASIIECDDHFEAVLJAVJOXMLTSWPXGBIIDZXZDAIBHRPAKHWJCFHJOZ...

output:

410

result:

ok 1 number(s): "410"

Test #76:

score: 0
Accepted
time: 293ms
memory: 19680kb

input:

1000000000000000 1000000000000000
YQSWVRNQIXGPAOARKSUYPMEEJNBXFNULBTTRXYVAYPJPBZDWGCJHRCWYDIXRCMXEPJGSLMNWPXSMTWYBEBOESQQEIBRXBXFKQASDJOTPFCQEOEOOKUWLLKWMWECVYLLAXNZPJOGRZTPCCJDCQUCOXKDIWMZGCRXROVAMCKQZUSOUETBBDZEQAEZMNADMBMIWRFPAEPGCAIQANGWATSGNWJLKIMJTNUAQPAHFNPOJRMQWHWYHYSRJATCNPROSIEZCNMVHKUAZEF...

output:

106999999999999992

result:

ok 1 number(s): "106999999999999992"

Test #77:

score: 0
Accepted
time: 743ms
memory: 39040kb

input:

1000000000000000 1000000000000000
GOAZLWUAILEUHESJJHLZUKKUNWCYNORLAFENCZXNCXDMTCAKUOZJYORXGYTHBVEMVKTDTGZERYCWXDVKHIRWIUEOIRPWMBYVSUNNWTGUUMEWBJPRFORTOCYQQCNNWNDSOXGBALFTAUMNYHKXAESQJDOGVDGTXZGICHJAWARMUYFVGGJWTOWXLCAPQXEQRSAETGYOQJRCLMPOUQXXXQRACHMDPHNDDNVSFAIBXYJRNMVFWQKKXHKJHPDENUMILVJHLUIYZHDOMG...

output:

168999999999999987

result:

ok 1 number(s): "168999999999999987"

Test #78:

score: 0
Accepted
time: 457ms
memory: 26544kb

input:

1000000000000000 1000000000000000
BBABBBBAAABABAAAAAABAABABBABBAABBBBABBABABAABBBBABBBBAAABABABBBAAAABABABBBAABAAABBABBAAAAABBAABBBAAAABAABABAAABBBBABBBBAAABBABABAAABBAAABAAAABAABBABABABBBAABAAAAAAAAAABBAABABBBBAABAABBBBABABABBBBABBAAAABAAAABABBABBBBAABAABABAAAABAAAAABBBAAAABAAAABAAABABABAAABBAABBBA...

output:

317999999999999994

result:

ok 1 number(s): "317999999999999994"

Test #79:

score: 0
Accepted
time: 746ms
memory: 39020kb

input:

1000000000000000 1000000000000000
BABBAABBBBAAAABAAABBBBAABBBBAAAAAABAAAAABBAAAABABBBBBBBBABBABBAAAAAABBABBAAABBABAAABABAAABBBBABABBAABBBABBBABBAAABBBABAABAABBABBBBABAAABBABBAABBAAAAAAAAAABBBAAAABBBBAAAABBBBAAAAAABABABAAABBABAABBBABBABAABBABBABBAABABABBBAABABBBAABABBABBBAAABABBBBAAABBBABBAABAAABBBAB...

output:

406999999999999962

result:

ok 1 number(s): "406999999999999962"

Test #80:

score: 0
Accepted
time: 38ms
memory: 5472kb

input:

878299321533672 1000000000000000
RYFJIZIEYSNEOCVAVPAQWAEPVIGYBPAHQYMTZYWKKZSLJFUMHZQECINMMYMFOTJLGGRYFDPTXQDZXCOJCZBBLAMXXLTREVHQWDMETEWWUPMXGQTRQEZBDBQVHKERFQPTXOXJIQS
UTEDNRIXUVSGSEGKAMXEUQOZKCGRNCDYBDYRZWKKNGIFTJRCZIYSAMEMLOXILANKCINWVIMMAPDYRO

output:

30809387787606094

result:

ok 1 number(s): "30809387787606094"

Test #81:

score: 0
Accepted
time: 511ms
memory: 32480kb

input:

612314485743516 1000000000000000
JRHQUCRDWFIJJLXXZKHQKLYAWUKOLYZQIRBOVTSRJKPXBTJCDVMZPPFAZQLXRTEDKRNIASXJXDYBZRRLQASCQJSCJUQYEJKOMYMIMUXCELSCTCEFJUZZTJEUSDPGLJWDARSRBSOPPKTUNOCXAEAHFNPBWNIZHRXVFZXEDAYFEAPMWDMMTSRNJGYXXNVWWBRMPEDPNQEHUMHQLHXDQIVBGDYVSHXLZFPHYDECRDIYQTBQQDMRZTQXZCKRCVBXFWUPQIJVEOKYOTT...

output:

124680706517325664

result:

ok 1 number(s): "124680706517325664"

Test #82:

score: 0
Accepted
time: 227ms
memory: 18912kb

input:

892824514164379 1000000000000000
AABAABAAAABBBBBBBABBBBABBABBBBAAAABBBBBBBABBAABAABABBAABBAABBBAAABBABBBBBABBBBAAAABBAABABAABBAAABBAABBBBBAABABBBAABBABAAAABBABABBAABAAABBBBBBABBBAAABBABAAABABAABAAAABAAABAAAABAABBAABBAABABABAABBBAAABAAABBAABAABABABBABBAABBABAAAABBBBBAABABABBBABBAAABAABBBBBBAAABAAABBA...

output:

258244289978766323

result:

ok 1 number(s): "258244289978766323"

Test #83:

score: 0
Accepted
time: 484ms
memory: 27168kb

input:

123867286261370 1000000000000000
BBBBBAAABAAAAAABBAAABBBABBAAAABBAABABBAABAAABABAAAABBBBAABBAABAABBBABBBABBABBBBABAAAABABBBBBBBAAAAABABBAABBBAAAABBBBABBBAAAAAABBABABBAABABBBABBABBAAAABBBBBABBBABABBBBABBBAABBBBBAABABBAABBBBAABBAABBBBBBBAAAAAABAAABABBBAAABAAAABAAABBABABBABABBAAAABBAABBBBABAAAAABABBBAB...

output:

61933643130685000

result:

ok 1 number(s): "61933643130685000"

Test #84:

score: 0
Accepted
time: 3ms
memory: 4612kb

input:

1000000000000000 764115182868089
QANDCKJJPUCSFLIFXEJSQWZOPUFHGTAUOCANEWSEMJHZNRGVFRNEKRXOAEYYFJDNIUYJAMSPZXLCUGWRNWLNFWSUDZIKDHXFAAQWTTMNYAKOXREOJVPUIPMMPBNXXGHZTLOHJOOWXIDWVIZAJENEIXQJDURUQPMBWQKWMHNEOJSNUUTVWXNGMGVHUFWBRCRSHCQEQYXLQQNJVSFFUQKMWSXISUEGGWBKXBFOZPDNCHKRDEPIJGZLIMWWGVZVNUIQWIIEBIVMHCE...

output:

19866994754570314

result:

ok 1 number(s): "19866994754570314"

Test #85:

score: 0
Accepted
time: 518ms
memory: 30108kb

input:

1000000000000000 476183538985259
RICITCBYQQIQBOKLQTTYNAJBQPFNFIYZPVZCSZHKMKLQDFXQIEYJNHBAIZVBGZQVBGILCGDVRMBXCVZOPBBKEDCOEQXTKWZHMIDXQSBUGAJUWNCYAVKWNCSLZRJWSZFHUHKVZOCMRHNKTDCQIVQKUUKXLISWKZRJCYVGNNCMDFBSKKGIPQAYTWFYRKZYTAMSGUQYJEXDBKRRYPXTSSQUBFFKVLSJDTYMOILIZNDKJKIPWWBDOGZFVDKOTHRZBIDLXTTLEPKSOXP...

output:

110618062535906778

result:

ok 1 number(s): "110618062535906778"

Test #86:

score: 0
Accepted
time: 372ms
memory: 21952kb

input:

1000000000000000 150672935307308
ABABABABAAAAAABAAABABBAABBBAABAABAAABBBABAAABBAAABBAAAAAABABAAABBABBBAABAAAABABBBBBBABABBBBBBBBBBBABAAAABABBBBABABAABABBABBABBABAABABBBAAABBBBBBABABBAAABBBBBAABBBAAAABABABBBAAABABABBBBABBBAAABBABABAABBBBABAABABABBABABBBBBAABABAAAABABBBAAABBBABBAAAABBAAABBABBBABBAABAA...

output:

66898783276444752

result:

ok 1 number(s): "66898783276444752"

Test #87:

score: 0
Accepted
time: 499ms
memory: 28476kb

input:

1000000000000000 359773194278922
ABAAABABBBABBAAAABAABAABBBBBBBBBBABBBBAABABBBAAABBBAABABABBBBBBABABAABBBBAAAABABBBBABAABBBAABBBAABBABAABBABAAAAAABBBAAABBBBBABBAABABAABABAAAAAAABBABBBBAAABBBBBAAABAAAABAABABBBABABAAABBBBBABABBAAAAAABAAABABABBBBBBABBBAAAABBABAABBABABABAAAABABAAABBBAABBBBBABABBBABABABA...

output:

179886597139461000

result:

ok 1 number(s): "179886597139461000"

Test #88:

score: 0
Accepted
time: 7ms
memory: 4544kb

input:

21963604011018 838748770205041
WWWVJOFXOGVWUNXTUVKTWNIHFTMXYKNIQHHVOZPTVNTAUHDJLGR
HSNLKRWYYQIIEVVSVNEBVDTKEBBRVYYRXRJLYBDSPTGAUMVHDHCLJFPSPMFODLPFFDWQVCRWAFRICENLHKDZFPDYRDALIZXTBIEDKINNMFGDMDMMYKAQNLSQBHGOUHGDZJQBRHISEBFSJZXWKNDYNZUAAZPQRBZWRGWJONXBIQGLAAUEINIYXBSQYQFHZIYZMYCHIQVFUGXKJWCNRCPVYRZHS...

output:

1120143804561918

result:

ok 1 number(s): "1120143804561918"

Test #89:

score: 0
Accepted
time: 594ms
memory: 32684kb

input:

340048297259706 538214145452218
YCSEKQKZJVRQXZEEEDNPUFKLANZVZKUAZPRGVEQIIJEPOEMQMSLZADQIDDVGCOTXCNEVJGKTETGAJQMFJSRALZYLBRQKPYJUVNWRFKGOZNAXYPSXWTGTGEGHFNAQNOMXDBVLTISEIXYUDKSLHNMDFSBECVLHKXYVVKXDGSAJKYXSAGNLJJCLLZJHCDPWKYVKDFFUQWFIETMXXHRAJOVGLYAPMHHIITGMSMIXZXCZNRCNONESGNRBJJHUIBXXKFEBDBFPKKNCMQPF...

output:

67657871642142499

result:

ok 1 number(s): "67657871642142499"

Test #90:

score: 0
Accepted
time: 98ms
memory: 8572kb

input:

408521356450237 663462232249049
BABAAABAAABAABABABABBABAAAABBBBAAABBABBAAAAABBABABBBBBABABABABAABBABBABAABAABBBABBABBABABABBAAAAAABBABBBBAAAABBAAABAABBABBBBABBBABABBBAAABABBBBBBABAAAABBABABAAABBBAAABABAABAABAABABBBBBAAAAABAABBAABBABABBBBABABBBAB
BABABBBABBBAABABBBBBABBABABAAABAAABBAAABBAAAAAAABBAABB...

output:

84757402247911765

result:

ok 1 number(s): "84757402247911765"

Test #91:

score: 0
Accepted
time: 556ms
memory: 30072kb

input:

223642247520665 476536814565577
BAAABAABABAAAABABBAAAAAABBBABAAAAAABABBABABAABAAAAABBABBAABABABBBBBBAAABBABBAAABBBBABBAABABABBAABAABAAAABBABABBBAAAAAABBBBBBABBBBABBBABABBBBBAAABBAAABAAAAAAABABAAAABAAABABBABABBAAAABABBABAAAAABBABBAAABBABBABBAABBAABAAAABBAAABBBABBAABBAABBBBAABABBABBBAABBABBBAAABAAAAAB...

output:

111821123760332500

result:

ok 1 number(s): "111821123760332500"

Test #92:

score: 0
Accepted
time: 239ms
memory: 17284kb

input:

1000000000000000 1000000000000000
HOPCEQOGKTXZBVKFFTYKFXEPQNEREERCYXKPFALTKSQCKCWLGQBBIHZHPUCPVKLOSSLXKINBYJGGFHSLOJPNFKSNBMPZNVCCFKKYXEVWTYGYHYGSAJYHQDWVZUCGDILMSJNFSZOIDZIQFINPIGQSBXLOLFFLEWJMMJQTQKLQIRNXFHNLKSPECHYACONYPNZKRIBGCSCUVMRIPPUJTRJSZPEAMECYYSNDPUOVXMNVPOORMNHDFXBFYFMLDAWWRKCPEUXKJOBQOS...

output:

107999999999999995

result:

ok 1 number(s): "107999999999999995"

Test #93:

score: 0
Accepted
time: 724ms
memory: 39000kb

input:

1000000000000000 1000000000000000
EGJTTURESKCLJAITKOVNRLOEDHDHVMVHYUBEZFQMLZTGGEFZDQQBYCJRXDWRNHIKOHILWPFJRUFAEPJETTLITCFVVLTHFOXYERIFLCBPICIDQFEIXGJYHRAMTWLWYEFFWSGNXHTIHFWEENBLDDAAYQBKAQPXMVMNELVVVOJRIXAMWFKZVCKHRVMCSADEGFMTHENAQLBIJRKGPVYFZWRJCGRGUNFRHFMXSYXPXSOHWJVQSQJGDZTDOUNAJGXHYETLTALMOPGRIC...

output:

168999999999999977

result:

ok 1 number(s): "168999999999999977"

Test #94:

score: 0
Accepted
time: 357ms
memory: 23704kb

input:

1000000000000000 1000000000000000
BBBABBAABAAAABBBAABAAAABBAABABBBAAAAAAAAAABBBBBAABBBBAABBABABBAAAABABAAABAAABBBBAAAABBABAABAAABAAABBABABAAABBBBABBBAABABBBAABABBBAABBBAAAABBBBBAAAAABBABABAAAABBBABABBBBBABAABBABBBAABBBBABAAABAAAABBAAAABBAAABBBBABABAABABAABABBBBAAABABABAAAABBABBBAAABAAAABABAABBBBABBB...

output:

327999999999999985

result:

ok 1 number(s): "327999999999999985"

Test #95:

score: 0
Accepted
time: 727ms
memory: 39044kb

input:

1000000000000000 1000000000000000
BBAAABABBBBAAABAABABAABBBBAAABBBBBBABAABBBAAAABABBABBBBBABABABAABAAABBABAABABBABBBBAABABBBAAABBBABAAABBAABBBAAABBAABAAABAAAAABBAAABBBAABABABAAAABAAABBBAAAABAABBBBABABBBBAABAAAAAABAAABAABBBBBAAAAABBBABBBBAABBAABBABAAAAAABAAAABBABBABABBBBAAABAABAAABAABBABBABAAAAAAABBA...

output:

412999999999999947

result:

ok 1 number(s): "412999999999999947"

Test #96:

score: 0
Accepted
time: 567ms
memory: 24300kb

input:

1000000000000000 500000000000000
ZCEBSQUYCAEUUFIBYVGDYGLWBPIXKDOHEMMAHZT
AVQFKPHDPALXLEJDRGBYJMHBDBHZFNINCUHSLNOAYNLHAKUNYGRLNVSZQAQTVZNNAJVRXFFSZCTORPZDEZHMHDUCUBLQBOLMGHDKNLOUOZPSPTFKFBHFUPKDOKGNXYURZNSFJSSSHZDSPMHDDABSDVTWXMUOHPIZPUFQEAPSYZQFLCLTBAVRFWDELMVTOAFWTHWXFUZHYRIFLOGVZZCMCWDVFTPYRCMFWXR...

output:

26999999999999998

result:

ok 1 number(s): "26999999999999998"

Test #97:

score: 0
Accepted
time: 218ms
memory: 16240kb

input:

1000000000000000 999999999999264
WHFMTXRNOCDNTEWPXDTKLJKMIXBWVBNNLBTUIZJSVGKFCOGKAXKKHZJWIBKUOMLBQCESQPUINPLYRWJSFMMTRPRIQVKZONNTQFTHVWGMJIFJFAVKVSMQQDOBNPARJSNARUFJNYRMZGGOMOGNRYKZLAWUCIJZNRVUAZJMCJJXQGSZFLEJMYRSMJMXJPYXYZDIEBSAELECTEJKUDNZGAXFHEEFCIQPNIBPHNZLBJZAGBKLDADLHDDDYNBKIHBSXGVVEKFKKMAQNOR...

output:

101999999999952893

result:

ok 1 number(s): "101999999999952893"

Test #98:

score: 0
Accepted
time: 649ms
memory: 38768kb

input:

1000000000000000 999999999999264
ILBEINJQFQFTPJPGCXHXJWJELSLGOXRKQTXRKIXPOWTEPRABUFAZSISXWTGGGMSPHKIAUBYGXAJIWUOWFICPKEAAHQQCUVRXFKTUUXIWEURVFNDWVKYOCANVTWFCMZCOZCIAWTJMEEZIYTBJMGTAHJWRJTCFDWPCNGHDJECMTWYTCUPCTGZFTBORCDPBNGXSOQSADGUBLKPOPKQIDMIZPPDVAZFWVJBOFOLCRKBYZGGVLGEAUNPNQYPYIQMFDLVFZWESPGORMXN...

output:

160999999999935225

result:

ok 1 number(s): "160999999999935225"

Test #99:

score: 0
Accepted
time: 484ms
memory: 39032kb

input:

1000000000000000 1000000000000000
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

output:

0

result:

ok 1 number(s): "0"

Test #100:

score: 0
Accepted
time: 641ms
memory: 39020kb

input:

1000000000000000 1000000000000000
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ...

output:

500000000000000000

result:

ok 1 number(s): "500000000000000000"