#include #define int long long using namespace std; template//快读 inline void read(type &x){ x=0; static bool flag(0); char ch=getchar(); while(!isdigit(ch)){ flag=ch=='-'; ch=getchar(); } while(isdigit(ch)){ x=(x<<1)+(x<<3)+(ch^48); ch=getchar(); } flag?x=-x:0; } template//快写 inline void write(type x,bool mode=1){ x<0?x=-x,putchar('-'):0; static short Stack[50],top(0); do{ Stack[++top]=x%10,x/=10; }while(x); while(top){ putchar(Stack[top--]|48); } mode?putchar('\n'):putchar(' '); } const int maxn=1e3+5; int vis[maxn][maxn]; vector a,b; signed main(){ //freopen("path.in","r",stdin); //freopen("path.out","w",stdout); int n; read(n); int num; for(int i=0;;i++){ if((1ll<n){ num=i+1; break; } } int v=num+1ll; int e=(v)*(v-1)/(2ll),d=(1ll<<(num-1))-n; if(d==0){ write(v,0); write(e,1); for(int i=1;i=0;i--){ int p=(1ll<=p){ d-=p; vis[2+i][v]=1; e--; } } write(v,0); write(e,1); for(int i=1ll;i