#include using namespace std; int main(){ using ll=long long; ll n,k; cin>>n>>k; vector a(n),b(n); for (int i=0;i>a[i]; for (int i=0;i>b[i]; vector> div(n); vector> val(n); for (int i=0;i divs; for (int j=1;j*j<=a[i];j++){ if (a[i]%j==0){ divs.push_back(j); if (j*j!=a[i]) divs.push_back(a[i]/j); } } sort(divs.begin(),divs.end()); vector vec; for (int div:divs){ int r=(div-b[i]%div)%div; vec.push_back(r); } for (int i=(int)vec.size()-1;i>=1;i--) vec[i-1]=min(vec[i-1],vec[i]); divs.push_back((int)2e9); vec.push_back((ll)2e10); div[i]=divs; val[i]=vec; } int l=0,r=1e6; while (r-l>1){ int mid=(l+r)/2; ll nk=0; for (int i=0;i