Language: C++

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <cmath>
#include <queue>
#include <climits>
#include <set>
#include <map>
#include <stack>
#include <iomanip>
#include <tuple>
#include <cstdio>
#include <numeric>
#include <unordered_set>
#include <unordered_map>
#include <cstdint>
#include <cfenv>
#include <list>
#include<string.h>
#include <iterator>
#define ll long long
#define rep(i, s, n) for (ll i = (ll)(s); i < (ll)(n); i++)
#define rrep(i, s, n) for (ll i = (ll)(s); i > (ll)(n); i--)
#define all(a) (a).begin(), a.end()
#define rall(a) (a).rbegin(),(a).rend()
#define PI 3.14159265359
#define mod 1000000007
#define P pair<ll, ll>
#define V vector<ll>
#define C vector<char>
#define B vector<bool>
#define endl '\n'
const ll MAX = 510000;
const ll MOD =1000000007;
using namespace std;
using graph = vector<vector<ll>>;
struct edge{
    //辺の重みを管理できるような構造体
	//コンストラクタによって簡単に値を入れられるようにしている
	//operatorは辺の重みでソート出来るようにしている
 
	ll from, to;
	ll cost;
	ll capa;
 
	edge(ll s, ll d) : from(s), to(d) { cost = 0; capa = 0; }
	edge(ll s, ll d, ll w) : from(s), to(d), cost(w) { capa = 0; }
	edge(ll s, ll d, ll x, ll y) :from(s), to(d), cost(x), capa(y) {}
 
	bool operator < (const edge& x) const {
		return cost < x.cost;
	}

};
using Graph=vector<vector<edge>>;//重み付きグラフ

//ダイクストラ法
vector<ll> Dijkstra(ll i, vector<vector<edge>> Graph) {
	//i:始点
	//Graph:重み付きグラフ
	ll n =Graph.size();
	vector<ll> d(n, LONG_MAX);
	d[i] = 0;
	priority_queue<
        pair<ll, ll>,//pair型 
        vector<pair<ll, ll>>,//内部コンテナ 
        greater<pair<ll, ll>>//昇順
        > q;
	q.push({0, i});//第一引数:コスト 第二引数:頂点
	while (!q.empty()) {
		pair<ll, ll> p = q.top();
		q.pop();
		int v = p.second;
		if (d[v] < p.first) {
			continue;
		}
		for (auto x : Graph[v]) {
			if (d[x.to] > d[v] + x.cost) {
				d[x.to] = d[v] + x.cost;
				q.push({d[x.to], x.to});
			}
		}
	}
	return d;
}

ll fac[MAX], finv[MAX], inv[MAX];


// テーブルを作る前処理
void cominit()
{
    fac[0] = fac[1] = 1;
    finv[0] = finv[1] = 1;
    inv[1] = 1;
    for (ll i = 2; i < MAX; i++)
    {
        fac[i] = fac[i - 1] * i% MOD;
        inv[i] = MOD - inv[MOD % i] * (MOD / i)% MOD;
        finv[i] = finv[i - 1] * inv[i]% MOD;
    }
}

// mod. m での a の逆元 a^{-1} を計算する
ll modinv(ll a, ll m)
{
    ll b = m, u = 1, v = 0;
    while (b)
    {
        ll t = a / b;
        a -= t * b;
        swap(a, b);
        u -= t * v;
        swap(u, v);
    }
    u %= m;
    if (u < 0)
        u += m;
    return u;
}

// 二項係数計算nCk,n<=10^7,k<=10^7まで
ll com(ll n, ll k)
{
    if (n < k)
        return 0;
    if (n < 0 || k < 0)
        return 0;
    return fac[n] * (finv[k] * finv[n - k]% MOD) % MOD;
}
//二項係数nCk,n<=10^9,k<=10^7まで
ll com2(ll n,ll k){
    ll res,bs=1,bb=1;
    for(ll i=0;i<k;i++){
        bs=(bs*(n-i))%mod;
        bb=(bb*(i+1))%mod;
    }
    res=modinv(bb,mod)%mod;
    res=(res*bs)%mod;
    return res;
}

// 二項係数計算nPk
ll per(ll n, ll k)
{
    if (n < k)
        return 0;
    if (n < 0 || k < 0)
        return 0;
    return fac[n] * (finv[n - k] % MOD) % MOD;
}


/* ユークリッドの互除法 最大公約数*/
ll gcd(ll a, ll b)
{
    return b ? gcd(b, a % b) : a;
}

/*最小公倍数*/
ll lcm(ll a, ll b)
{
    return a / gcd(a, b) * b;
}

/*二点間の距離*/
double dist(pair<double, double> a, pair<double, double> b)
{
    return sqrt(pow((a.first - b.first), 2) + pow((a.second - b.second), 2));
}

//繰り返し自乗法
double ism(double aa, ll p)
{
    double ap = aa;
    double ans = 1;
    while (p > 0)
    {
        //cout<<"p="<<p<<",ap="<<ap<<endl;
        if (p & 1)
        { //奇数が真
            ans *= ap;
        }
        p /= 2;
        ap = ap * ap;
    }
    return ans;
}
//繰り返し自乗法(アマリトリバージョン)
ll ismm(ll aa, ll p,ll m)
{
    ll ap = aa;
    ll ans = 1;
    while (p > 0)
    {
        //cout<<"p="<<p<<",ap="<<ap<<endl;
        if (p & 1)
        { //奇数が真
            ans = (ans * ap) % m;
        }
        p /= 2;
        ap = (ap * ap) % m;
    }
    return ans;
}

ll oddXOR(ll a) { return (a+1)/2 % 2; }
ll XOR(ll a) {
    if (a % 2 == 1) return oddXOR(a);
    else return oddXOR(a+1) ^ (a+1);
}

double median(V a){//中央値
    sort(all(a));
    if(a.size()%2==1){
        return a[(a.size()-1)/2];
    }
    else{
        return (a[(a.size()-1)/2]+a[(a.size()-1)/2+1])/2.0;
    }

}


struct UnionFind
{
    vector<ll> par;

    UnionFind(ll n) : par(n, -1) {}

    ll root(ll x)
    {
        if (par[x] < 0)
            return x;
        else
            return par[x] = root(par[x]);
    }

    bool issame(ll x, ll y)
    {
        return root(x) == root(y);
    }

    bool merge(ll x, ll y)
    {
        x = root(x);
        y = root(y);
        if (x == y)
            return false;
        if (par[x] > par[y])
            swap(x, y); // merge techniiue
        par[x] += par[y];
        par[y] = x;
        return true;
    }
    ll size(ll x)
    {
        return -par[root(x)];
    }
};

//10の9乗+7でmodをとる
template <std::uint_fast64_t Modulus> class modint {
  using u64 = std::uint_fast64_t;

public:
  u64 a;

    constexpr modint(const u64 x = 0) noexcept : a(x % Modulus) {}
    constexpr u64 &value() noexcept { return a; }
    constexpr const u64 &value() const noexcept { return a; }

    constexpr modint operator+(const modint rhs) const noexcept {
        return modint(*this) += rhs;
    }
    constexpr modint operator-(const modint rhs) const noexcept {
        return modint(*this) -= rhs;
    }
    constexpr modint operator*(const modint rhs) const noexcept {
        return modint(*this) *= rhs;
    }
    constexpr modint operator/(const modint rhs) const noexcept {
        return modint(*this) /= rhs;
    }


    constexpr modint &operator ++(auto) noexcept {
        ++a;
        if (a >= Modulus) {
            a -= Modulus;
        }
        return *this;
    }
    constexpr modint &operator --(auto) noexcept {
        --a;
        if(a<0){
            a+=Modulus;
        }
        return *this;
    }

    constexpr modint &operator+=(const modint rhs) noexcept {
        a += rhs.a;
        if (a >= Modulus) {
        a -= Modulus;
        }
        return *this;
    }
    constexpr modint &operator-=(const modint rhs) noexcept {
        if (a < rhs.a) {
            a += Modulus;
        }
        a -= rhs.a;
        return *this;
    }
    constexpr modint &operator*=(const modint rhs) noexcept {
        a = a * rhs.a % Modulus;
        return *this;
    }
    constexpr modint &operator/=(modint rhs) noexcept {
        u64 exp = Modulus - 2;
        while (exp) {
            if (exp % 2) {
                *this *= rhs;
            }
            rhs *= rhs;
            exp /= 2;
        }
        return *this;
    }
};


//素因数分解の関数
vector<pair<long long, long long> > prime_factorize(long long N) {
    vector<pair<long long, long long> > res;
    for (long long a = 2; a * a <= N; ++a) {
        if (N % a != 0) continue;
        long long ex = 0; // 指数

        // 割れる限り割り続ける
        while (N % a == 0) {
            ++ex;
            N /= a;
        }

        // その結果を push
        res.push_back({a, ex});
    }
// 最後に残った数について
    if (N != 1) res.push_back({N, 1});
    return res;
}

//約数列挙
vector<long long> enum_divisors(long long N) {
    vector<long long> res;
    for (long long i = 1; i * i <= N; ++i) {
        if (N % i == 0) {
            res.push_back(i);
            // 重複しないならば i の相方である N/i も push
            if (N/i != i){
                 res.push_back(N/i);
                 
            } 

        }
    }
    // 小さい順に並び替える
    sort(res.begin(), res.end());
    return res;
}


//桁数
ll Keta(ll x){
    ll cnt=1;
    while(x>=10){
        x/=10;
        cnt++;

    }
    return cnt;
}

bool is_prime(long long N) {
    if (N == 1) return false;
    for (long long i = 2; i * i <= N; ++i) {
        if (N % i == 0) return false;
    }
    return true;
}

//多倍長整数対策
std::ostream &operator<<(std::ostream &dest, __int128_t value) {
  std::ostream::sentry s(dest);
  if (s) {
    __uint128_t tmp = value < 0 ? -value : value;
    char buffer[128];
    char *d = std::end(buffer);
    do {
      --d;
      *d = "0123456789"[tmp % 10];
      tmp /= 10;
    } while (tmp != 0);
    if (value < 0) {
      --d;
      *d = '-';
    }
    int len = std::end(buffer) - d;
    if (dest.rdbuf()->sputn(d, len) != len) {
      dest.setstate(std::ios_base::badbit);
    }
  }
  return dest;
}

__int128 parse(string &s) {
  __int128 ret = 0;
  for (int i = 0; i < s.length(); i++)
    if ('0' <= s[i] && s[i] <= '9')
      ret = 10 * ret + s[i] - '0';
  return ret;
}


//小数点12桁
struct all_init
{
    all_init()
    {
        cout << fixed << setprecision(6);
    }
} All_init;

//Bit
// 1-indexedなので注意。
 struct BIT {
  private:
   vector<int> bit;
   int N;
 
  public:
   BIT(int size) {
     N = size;
     bit.resize(N + 1);
   }
 
   // 一点更新です
   void add(int a, int w) {
     for (int x = a; x <= N; x += x & -x) bit[x] += w;
   }
 
   // 1~Nまでの和を求める。
   int sum(int a) {
     int ret = 0;
     for (int x = a; x > 0; x -= x & -x) ret += bit[x];
     return ret;
   }
 };




int main() {
    ll x;
    cin>>x;
    if(x==1){
        cout<<0<<endl;
    }
    else{
        cout<<1<<endl;
    }
    
}#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <cmath>
#include <queue>
#include <climits>
#include <set>
#include <map>
#include <stack>
#include <iomanip>
#include <tuple>
#include <cstdio>
#include <numeric>
#include <unordered_set>
#include <unordered_map>
#include <cstdint>
#include <cfenv>
#include <list>
#include<string.h>
#include <iterator>
#define ll long long
#define rep(i, s, n) for (ll i = (ll)(s); i < (ll)(n); i++)
#define rrep(i, s, n) for (ll i = (ll)(s); i > (ll)(n); i--)
#define all(a) (a).begin(), a.end()
#define rall(a) (a).rbegin(),(a).rend()
#define PI 3.14159265359
#define mod 1000000007
#define P pair<ll, ll>
#define V vector<ll>
#define C vector<char>
#define B vector<bool>
#define endl '\n'
const ll MAX = 510000;
const ll MOD =1000000007;
using namespace std;
using graph = vector<vector<ll>>;
struct edge{
    //辺の重みを管理できるような構造体
	//コンストラクタによって簡単に値を入れられるようにしている
	//operatorは辺の重みでソート出来るようにしている
 
	ll from, to;
	ll cost;
	ll capa;
 
	edge(ll s, ll d) : from(s), to(d) { cost = 0; capa = 0; }
	edge(ll s, ll d, ll w) : from(s), to(d), cost(w) { capa = 0; }
	edge(ll s, ll d, ll x, ll y) :from(s), to(d), cost(x), capa(y) {}
 
	bool operator < (const edge& x) const {
		return cost < x.cost;
	}

};
using Graph=vector<vector<edge>>;//重み付きグラフ

//ダイクストラ法
vector<ll> Dijkstra(ll i, vector<vector<edge>> Graph) {
	//i:始点
	//Graph:重み付きグラフ
	ll n =Graph.size();
	vector<ll> d(n, LONG_MAX);
	d[i] = 0;
	priority_queue<
        pair<ll, ll>,//pair型 
        vector<pair<ll, ll>>,//内部コンテナ 
        greater<pair<ll, ll>>//昇順
        > q;
	q.push({0, i});//第一引数:コスト 第二引数:頂点
	while (!q.empty()) {
		pair<ll, ll> p = q.top();
		q.pop();
		int v = p.second;
		if (d[v] < p.first) {
			continue;
		}
		for (auto x : Graph[v]) {
			if (d[x.to] > d[v] + x.cost) {
				d[x.to] = d[v] + x.cost;
				q.push({d[x.to], x.to});
			}
		}
	}
	return d;
}

ll fac[MAX], finv[MAX], inv[MAX];


// テーブルを作る前処理
void cominit()
{
    fac[0] = fac[1] = 1;
    finv[0] = finv[1] = 1;
    inv[1] = 1;
    for (ll i = 2; i < MAX; i++)
    {
        fac[i] = fac[i - 1] * i% MOD;
        inv[i] = MOD - inv[MOD % i] * (MOD / i)% MOD;
        finv[i] = finv[i - 1] * inv[i]% MOD;
    }
}

// mod. m での a の逆元 a^{-1} を計算する
ll modinv(ll a, ll m)
{
    ll b = m, u = 1, v = 0;
    while (b)
    {
        ll t = a / b;
        a -= t * b;
        swap(a, b);
        u -= t * v;
        swap(u, v);
    }
    u %= m;
    if (u < 0)
        u += m;
    return u;
}

// 二項係数計算nCk,n<=10^7,k<=10^7まで
ll com(ll n, ll k)
{
    if (n < k)
        return 0;
    if (n < 0 || k < 0)
        return 0;
    return fac[n] * (finv[k] * finv[n - k]% MOD) % MOD;
}
//二項係数nCk,n<=10^9,k<=10^7まで
ll com2(ll n,ll k){
    ll res,bs=1,bb=1;
    for(ll i=0;i<k;i++){
        bs=(bs*(n-i))%mod;
        bb=(bb*(i+1))%mod;
    }
    res=modinv(bb,mod)%mod;
    res=(res*bs)%mod;
    return res;
}

// 二項係数計算nPk
ll per(ll n, ll k)
{
    if (n < k)
        return 0;
    if (n < 0 || k < 0)
        return 0;
    return fac[n] * (finv[n - k] % MOD) % MOD;
}


/* ユークリッドの互除法 最大公約数*/
ll gcd(ll a, ll b)
{
    return b ? gcd(b, a % b) : a;
}

/*最小公倍数*/
ll lcm(ll a, ll b)
{
    return a / gcd(a, b) * b;
}

/*二点間の距離*/
double dist(pair<double, double> a, pair<double, double> b)
{
    return sqrt(pow((a.first - b.first), 2) + pow((a.second - b.second), 2));
}

//繰り返し自乗法
double ism(double aa, ll p)
{
    double ap = aa;
    double ans = 1;
    while (p > 0)
    {
        //cout<<"p="<<p<<",ap="<<ap<<endl;
        if (p & 1)
        { //奇数が真
            ans *= ap;
        }
        p /= 2;
        ap = ap * ap;
    }
    return ans;
}
//繰り返し自乗法(アマリトリバージョン)
ll ismm(ll aa, ll p,ll m)
{
    ll ap = aa;
    ll ans = 1;
    while (p > 0)
    {
        //cout<<"p="<<p<<",ap="<<ap<<endl;
        if (p & 1)
        { //奇数が真
            ans = (ans * ap) % m;
        }
        p /= 2;
        ap = (ap * ap) % m;
    }
    return ans;
}

ll oddXOR(ll a) { return (a+1)/2 % 2; }
ll XOR(ll a) {
    if (a % 2 == 1) return oddXOR(a);
    else return oddXOR(a+1) ^ (a+1);
}

double median(V a){//中央値
    sort(all(a));
    if(a.size()%2==1){
        return a[(a.size()-1)/2];
    }
    else{
        return (a[(a.size()-1)/2]+a[(a.size()-1)/2+1])/2.0;
    }

}


struct UnionFind
{
    vector<ll> par;

    UnionFind(ll n) : par(n, -1) {}

    ll root(ll x)
    {
        if (par[x] < 0)
            return x;
        else
            return par[x] = root(par[x]);
    }

    bool issame(ll x, ll y)
    {
        return root(x) == root(y);
    }

    bool merge(ll x, ll y)
    {
        x = root(x);
        y = root(y);
        if (x == y)
            return false;
        if (par[x] > par[y])
            swap(x, y); // merge techniiue
        par[x] += par[y];
        par[y] = x;
        return true;
    }
    ll size(ll x)
    {
        return -par[root(x)];
    }
};

//10の9乗+7でmodをとる
template <std::uint_fast64_t Modulus> class modint {
  using u64 = std::uint_fast64_t;

public:
  u64 a;

    constexpr modint(const u64 x = 0) noexcept : a(x % Modulus) {}
    constexpr u64 &value() noexcept { return a; }
    constexpr const u64 &value() const noexcept { return a; }

    constexpr modint operator+(const modint rhs) const noexcept {
        return modint(*this) += rhs;
    }
    constexpr modint operator-(const modint rhs) const noexcept {
        return modint(*this) -= rhs;
    }
    constexpr modint operator*(const modint rhs) const noexcept {
        return modint(*this) *= rhs;
    }
    constexpr modint operator/(const modint rhs) const noexcept {
        return modint(*this) /= rhs;
    }


    constexpr modint &operator ++(auto) noexcept {
        ++a;
        if (a >= Modulus) {
            a -= Modulus;
        }
        return *this;
    }
    constexpr modint &operator --(auto) noexcept {
        --a;
        if(a<0){
            a+=Modulus;
        }
        return *this;
    }

    constexpr modint &operator+=(const modint rhs) noexcept {
        a += rhs.a;
        if (a >= Modulus) {
        a -= Modulus;
        }
        return *this;
    }
    constexpr modint &operator-=(const modint rhs) noexcept {
        if (a < rhs.a) {
            a += Modulus;
        }
        a -= rhs.a;
        return *this;
    }
    constexpr modint &operator*=(const modint rhs) noexcept {
        a = a * rhs.a % Modulus;
        return *this;
    }
    constexpr modint &operator/=(modint rhs) noexcept {
        u64 exp = Modulus - 2;
        while (exp) {
            if (exp % 2) {
                *this *= rhs;
            }
            rhs *= rhs;
            exp /= 2;
        }
        return *this;
    }
};


//素因数分解の関数
vector<pair<long long, long long> > prime_factorize(long long N) {
    vector<pair<long long, long long> > res;
    for (long long a = 2; a * a <= N; ++a) {
        if (N % a != 0) continue;
        long long ex = 0; // 指数

        // 割れる限り割り続ける
        while (N % a == 0) {
            ++ex;
            N /= a;
        }

        // その結果を push
        res.push_back({a, ex});
    }
// 最後に残った数について
    if (N != 1) res.push_back({N, 1});
    return res;
}

//約数列挙
vector<long long> enum_divisors(long long N) {
    vector<long long> res;
    for (long long i = 1; i * i <= N; ++i) {
        if (N % i == 0) {
            res.push_back(i);
            // 重複しないならば i の相方である N/i も push
            if (N/i != i){
                 res.push_back(N/i);
                 
            } 

        }
    }
    // 小さい順に並び替える
    sort(res.begin(), res.end());
    return res;
}


//桁数
ll Keta(ll x){
    ll cnt=1;
    while(x>=10){
        x/=10;
        cnt++;

    }
    return cnt;
}

bool is_prime(long long N) {
    if (N == 1) return false;
    for (long long i = 2; i * i <= N; ++i) {
        if (N % i == 0) return false;
    }
    return true;
}

//多倍長整数対策
std::ostream &operator<<(std::ostream &dest, __int128_t value) {
  std::ostream::sentry s(dest);
  if (s) {
    __uint128_t tmp = value < 0 ? -value : value;
    char buffer[128];
    char *d = std::end(buffer);
    do {
      --d;
      *d = "0123456789"[tmp % 10];
      tmp /= 10;
    } while (tmp != 0);
    if (value < 0) {
      --d;
      *d = '-';
    }
    int len = std::end(buffer) - d;
    if (dest.rdbuf()->sputn(d, len) != len) {
      dest.setstate(std::ios_base::badbit);
    }
  }
  return dest;
}

__int128 parse(string &s) {
  __int128 ret = 0;
  for (int i = 0; i < s.length(); i++)
    if ('0' <= s[i] && s[i] <= '9')
      ret = 10 * ret + s[i] - '0';
  return ret;
}


//小数点12桁
struct all_init
{
    all_init()
    {
        cout << fixed << setprecision(6);
    }
} All_init;

//Bit
// 1-indexedなので注意。
 struct BIT {
  private:
   vector<int> bit;
   int N;
 
  public:
   BIT(int size) {
     N = size;
     bit.resize(N + 1);
   }
 
   // 一点更新です
   void add(int a, int w) {
     for (int x = a; x <= N; x += x & -x) bit[x] += w;
   }
 
   // 1~Nまでの和を求める。
   int sum(int a) {
     int ret = 0;
     for (int x = a; x > 0; x -= x & -x) ret += bit[x];
     return ret;
   }
 };




int main() {
    ll x;
    cin>>x;
    if(x==1){
        cout<<0<<endl;
    }
    else{
        cout<<1<<endl;
    }
    
}

Compiler output:
a.cc:476:2: error: stray '#' in program
  476 | }#include <iostream>
      |  ^
a.cc:288:35: warning: use of 'auto' in parameter declaration only available with '-std=c++20' or '-fconcepts'
  288 |     constexpr modint &operator ++(auto) noexcept {
      |                                   ^~~~
a.cc:295:35: warning: use of 'auto' in parameter declaration only available with '-std=c++20' or '-fconcepts'
  295 |     constexpr modint &operator --(auto) noexcept {
      |                                   ^~~~
a.cc:476:3: error: 'include' does not name a type
  476 | }#include <iostream>
      |   ^~~~~~~
a.cc:510:10: error: redefinition of 'const long long int MOD'
  510 | const ll MOD =1000000007;
      |          ^~~
a.cc:35:10: note: 'const long long int MOD' previously defined here
   35 | const ll MOD =1000000007;
      |          ^~~
a.cc:513:8: error: redefinition of 'struct edge'
  513 | struct edge{
      |        ^~~~
a.cc:38:8: note: previous definition of 'struct edge'
   38 | struct edge{
      |        ^~~~
a.cc:534:12: error: redefinition of 'std::vector<long long int> Dijkstra(long long int, std::vector<std::vector<edge> >)'
  534 | vector<ll> Dijkstra(ll i, vector<vector<edge>> Graph) {
      |            ^~~~~~~~
a.cc:59:12: note: 'std::vector<long long int> Dijkstra(long long int, std::vector<std::vector<edge> >)' previously defined here
   59 | vector<ll> Dijkstra(ll i, vector<vector<edge>> Graph) {
      |            ^~~~~~~~
a.cc:563:4: error: redefinition of 'long long int fac [510000]'
  563 | ll fac[MAX], finv[MAX], inv[MAX];
      |    ^~~
a.cc:88:4: note: 'long long int fac [510000]' previously declared here
   88 | ll fac[MAX], finv[MAX], inv[MAX];
      |    ^~~
a.cc:563:14: error: redefinition of 'long long int finv [510000]'
  563 | ll fac[MAX], finv[MAX], inv[MAX];
      |              ^~~~
a.cc:88:14: note: 'long long int finv [510000]' previously declared here
   88 | ll fac[MAX], finv[MAX], inv[MAX];
      |              ^~~~
a.cc:563:25: error: redefinition of 'long long int inv [510000]'
  563 | ll fac[MAX], finv[MAX], inv[MAX];
      |                         ^~~
a.cc:88:25: note: 'long long int inv [510000]' previously declared here
   88 | ll fac[MAX], finv[MAX], inv[MAX];
      |                         ^~~
a.cc:567:6: error: redefinition of 'void cominit()'
  567 | void cominit()
      |      ^~~~~~~
a.cc:92:6: note: 'void cominit()' previously defined here
   92 | void cominit()
      |      ^~~~~~~
a.cc:581:4: error: redefinition of 'long long int modinv(long long int, long long int)'
  581 | ll modinv(ll a, ll m)
      |    ^~~~~~
a.cc:106:4: note: 'long long int modinv(long long int, long long int)' previously defined here
  106 | ll modinv(ll a, ll m)
      |    ^~~~~~
a.cc:599:4: error: redefinition of 'long long int com(long long int, long long int)'
  599 | ll com(ll n, ll k)
      |    ^~~
a.cc:124:4: note: 'long long int com(long long int, long long int)' previously defined here
  124 | ll com(ll n, ll k)
      |    ^~~
a.cc:608:4: error: redefinition of 'long long int com2(long long int, long long int)'
  608 | ll com2(ll n,ll k){
      |    ^~~~
a.cc:133:4: note: 'long long int com2(long long int, long long int)' previously defined here
  133 | ll com2(ll n,ll k){
      |    ^~~~
a.cc:620:4: error: redefinition of 'long long int per(long long int, long long int)'
  620 | ll per(ll n, ll k)
      |    ^~~
a.cc:145:4: note: 'long long int per(long long int, long long int)' previously defined here
  145 | ll per(ll n, ll k)
      |    ^~~
a.cc:631:4: error: redefinition of 'long long int gcd(long long int, long long int)'
  631 | ll gcd(ll a, ll b)
      |    ^~~
a.cc:156:4: note: 'long long int gcd(long long int, long long int)' previously defined here
  156 | ll gcd(ll a, ll b)
      |    ^~~
a.cc:637:4: error: redefinition of 'long long int lcm(long long int, long long int)'
  637 | ll lcm(ll a, ll b)
      |    ^~~
a.cc:162:4: note: 'long long int lcm(long long int, long long int)' previously defined here
  162 | ll lcm(ll a, ll b)
      |    ^~~
a.cc:643:8: error: redefinition of 'double dist(std::pair<double, double>, std::pair<double, double>)'
  643 | double dist(pair<double, double> a, pair<double, double> b)
      |        ^~~~
a.cc:168:8: note: 'double dist(std::pair<double, double>, std::pair<double, double>)' previously defined here
  168 | double dist(pair<double, double> a, pair<double, double> b)
      |        ^~~~
a.cc:649:8: error: redefinition of 'double ism(double, long long int)'
  649 | double ism(double aa, ll p)
      |        ^~~
a.cc:174:8: note: 'double ism(double, long long int)' previously defined here
  174 | double ism(double aa, ll p)
      |        ^~~
a.cc:666:4: error: redefinition of 'long long int ismm(long long int, long long int, long long int)'
  666 | ll ismm(ll aa, ll p,ll m)
      |    ^~~~
a.cc:191:4: note: 'long long int ismm(long long int, long long int, long long int)' previously defined here
  191 | ll ismm(ll aa, ll p,ll m)
      |    ^~~~
a.cc:683:4: error: redefinition of 'long long int oddXOR(long long int)'
  683 | ll oddXOR(ll a) { return (a+1)/2 % 2; }
      |    ^~~~~~
a.cc:208:4: note: 'long long int oddXOR(long long int)' previously defined here
  208 | ll oddXOR(ll a) { return (a+1)/2 % 2; }
      |    ^~~~~~
a.cc:684:4: error: redefinition of 'long long int XOR(long long int)'
  684 | ll XOR(ll a) {
      |    ^~~
a.cc:209:4: note: 'long long int XOR(long long int)' previously defined here
  209 | ll XOR(ll a) {
      |    ^~~
a.cc:689:8: error: redefinition of 'double median(std::vector<long long int>)'
  689 | double median(V a){//中央値
      |        ^~~~~~
a.cc:214:8: note: 'double median(std::vector<long long int>)' previously defined here
  214 | double median(V a){//中央値
      |        ^~~~~~
a.cc:701:8: error: redefinition of 'struct UnionFind'
  701 | struct UnionFind
      |        ^~~~~~~~~
a.cc:226:8: note: previous definition of 'struct UnionFind'
  226 | struct UnionFind
      |        ^~~~~~~~~
a.cc:739:45: error: redefinition of 'class modint<Modulus>'
  739 | template <std::uint_fast64_t Modulus> class modint {
      |                                             ^~~~~~
a.cc:264:45: note: previous definition of 'class modint<Modulus>'
  264 | template <std::uint_fast64_t Modulus> class modint {
      |                                             ^~~~~~
a.cc:811:37: error: redefinition of 'std::vector<std::pair<long long int, long long int> > prime_factorize(long long int)'
  811 | vector<pair<long long, long long> > prime_factorize(long long N) {
      |                                     ^~~~~~~~~~~~~~~
a.cc:336:37: note: 'std::vector<std::pair<long long int, long long int> > prime_factorize(long long int)' previously defined here
  336 | vector<pair<long long, long long> > prime_factorize(long long N) {
      |                                     ^~~~~~~~~~~~~~~
a.cc:832:19: error: redefinition of 'std::vector<long long int> enum_divisors(long long int)'
  832 | vector<long long> enum_divisors(long long N) {
      |                   ^~~~~~~~~~~~~
a.cc:357:19: note: 'std::vector<long long int> enum_divisors(long long int)' previously defined here
  357 | vector<long long> enum_divisors(long long N) {
      |                   ^~~~~~~~~~~~~
a.cc:852:4: error: redefinition of 'long long int Keta(long long int)'
  852 | ll Keta(ll x){
      |    ^~~~
a.cc:377:4: note: 'long long int Keta(long long int)' previously defined here
  377 | ll Keta(ll x){
      |    ^~~~
a.cc:862:6: error: redefinition of 'bool is_prime(long long int)'
  862 | bool is_prime(long long N) {
      |      ^~~~~~~~
a.cc:387:6: note: 'bool is_prime(long long int)' previously defined here
  387 | bool is_prime(long long N) {
      |      ^~~~~~~~
a.cc:871:15: error: redefinition of 'std::ostream& operator<<(std::ostream&, __int128)'
  871 | std::ostream &operator<<(std::ostream &dest, __int128_t value) {
      |               ^~~~~~~~
a.cc:396:15: note: 'std::ostream& operator<<(std::ostream&, __int128)' previously defined here
  396 | std::ostream &operator<<(std::ostream &dest, __int128_t value) {
      |               ^~~~~~~~
a.cc:894:10: error: redefinition of '__int128 parse(std::string&)'
  894 | __int128 parse(string &s) {
      |          ^~~~~
a.cc:419:10: note: '__int128 parse(std::string&)' previously defined here
  419 | __int128 parse(string &s) {
      |          ^~~~~
a.cc:904:8: error: redefinition of 'struct all_init'
  904 | struct all_init
      |        ^~~~~~~~
a.cc:429:8: note: previous definition of 'struct all_init'
  429 | struct all_init
      |        ^~~~~~~~
a.cc:910:3: error: conflicting declaration 'int All_init'
  910 | } All_init;
      |   ^~~~~~~~
a.cc:435:3: note: previous declaration as 'all_init All_init'
  435 | } All_init;
      |   ^~~~~~~~
a.cc:914:9: error: redefinition of 'struct BIT'
  914 |  struct BIT {
      |         ^~~
a.cc:439:9: note: previous definition of 'struct BIT'
  439 |  struct BIT {
      |         ^~~
a.cc:941:5: error: redefinition of 'int main()'
  941 | int main() {
      |     ^~~~
a.cc:466:5: note: 'int main()' previously defined here
  466 | int main() {
      |     ^~~~