/*
TASK:mate
LANG:C++
*/
#include <iostream.h>
int n;
int PlayerNo(int pn)
{return ((n+pn-1)%n)+1;
}
void showLine(int start,int end,int d,int st)
{for (int i=start;i<=end;i+=st)
 {cout<<i<<'-'<<PlayerNo(i+d);
  if (i<end) cout<<' ';
 }
 cout<<endl;
}
void showDay(int d,int n)
{int i;
 if (!(n&1) && d==n>>1)
 {showLine(1,n>>1,d,1);
  return;
 }
 if (n&1 && d==1)
 {showLine(1,n,1,2);
  return;
 }
 if (d==n)
 {if (n&1) showLine(2,n-1,1,2);
  else showLine((n>>1)+1,n,n>>1,1);
  return;
 }
 showLine(1,n,d,1);
}
int main(void)
{cin>>n;
 cout<<n<<endl;
 for (int d=1;d<=n;d++) showDay(d,n);
 return 0;
}