#ifndef _GLIBCXX_BBCMSN
#define _GLIBCXX_BBCMSN 1
#pragma GCC system_header
long long gcd(long long a,long long b){
long long r;
while(a%b!=0) r=a%b,a=b,b=r;
return b;
}
long long lcm(long long a,long long b){
long long n1=b,n2=a,r;
while(a%b!=0) r=a%b,a=b,b=r;
return (n1*n2)/b;
}
long long max(long long a,long long b){
if(a>b) return a;
else if(a<b) return b;
else return -1;
}
long long min(long long a,long long b){
if(a<b) return a;
else if(a>b) return b;
else return -1;
}
#include<stack>
#include<string>
#include<queue>
#include<cstring>
#include<map>
#include<iostream>
#include<bits/stdc++.h>
#endif