#include<bits/stdc++.h>
using namespace std;
class BZIP
{
protected:
__int128 bz=0;
public:
BZIP(__int128 x)
{
bz=x;
}
BZIP(vector<bool>x)
{
for(int i=0;i<x.size();i++)
if(x[i])set(i,1);
}
BZIP(string x)
{
for(int i=0;i<x.size();i++)
if(x[i]-48)set(i,1);
}
BZIP()
{
}
__int128 get__int128()
{
return bz;
}
string get_string(int w=128)
{
string g="";
for(int i=0;i<w;i++)
g+=to_string(axist(i));
return g;
}
vector<bool> get_vector(int w=128)
{
vector<bool>g;
for(int i=0;i<w;i++)
g.push_back(axist(i));
return g;
}
bool axist(int x)
{
return bz&(1<<x);
}
void set(int x,bool y=1)
{
if(y)bz|=(1<<x);
else bz&=~(1<<x);
}
bool operator + (int x)
{
return axist(x);
}
BZIP operator & (BZIP x)
{
return BZIP(bz&x.get__int128());
}
BZIP operator | (BZIP x)
{
return BZIP(bz|x.get__int128());
}
BZIP operator ^ (BZIP x)
{
return BZIP(bz^x.get__int128());
}
BZIP operator - (BZIP x)
{
return BZIP(bz^(bz&x.get__int128()));
}
};
signed main()
{
BZIP a("01101010");
cout<<a.get_string(8);
return 0;
}