#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;
}