#include "stdafx.h"
#include <vector>
#include <string>
#include <iostream>
using namespace std;
typedef vector<int> ints;
#define LevelCount 5
int length=1258;
int Sqit(int Count)
{
if (Count==0)
{
return 0;
}
int res=1;
for (int k=0;k<Count;k++)
{
res*=LevelCount;
}
return res;
}
int GetStart(int level)
{
if (level<=0)
{
return 0;
}
return Sqit(level-1)+GetStart(level-1);
}
ints Get(int num)
{
ints res;
int level=num/LevelCount+1;
int ChildStart=GetStart(level+1);
int SelfStart=GetStart(level);
level=((num-SelfStart)*LevelCount+ChildStart);
for (int k=level;k<level+5;k++)
{
res.push_back(k);
}
return res;
}
void GetIps(int index,ints &res)
{
ints km1=Get(index);
for (int k=0;k<km1.size();k++)
{
if (km1[k]<length)
{
res.push_back(km1[k]);
}else
{
return;
}
}
int start=0;
int end=km1.size();
while(1)
{
if (start==end)
{
end=res.size();
}
ints km=Get(res[start]);
for (k=0;k<km.size();k++)
{
if (km[k]<length)
{
res.push_back(km[k]);
}else
{
return;
}
}
start++;
}
}
int main(int argc, char* argv[])
{
int count=0;
while (count!=-1)
{
cin>>length;
ints res;
GetIps(0,res);
for (int i=0;i<res.size();i++)
{
cout<<res[i]<<"、";
if (i%5==0)
{
cout<<endl;
}
}
cout<<"==================================================================="<<endl;
res.clear();
GetIps(1,res);
for (i=0;i<res.size();i++)
{
cout<<res[i]<<"、";
if (i%5==0)
{
cout<<endl;
}
}
cout<<"==================================================================="<<endl;
res.clear();
GetIps(2,res);
for (i=0;i<res.size();i++)
{
cout<<res[i]<<"、";
if (i%5==0)
{
cout<<endl;
}
}
cout<<"==================================================================="<<endl;
res.clear();
GetIps(3,res);
for (i=0;i<res.size();i++)
{
cout<<res[i]<<"、";
if (i%5==0)
{
cout<<endl;
}
}
cout<<"==================================================================="<<endl;
res.clear();
GetIps(4,res);
for (i=0;i<res.size();i++)
{
cout<<res[i]<<"、";
if (i%5==0)
{
cout<<endl;
}
}
}
printf("Hello World!/n");
return 0;
}