```cpp
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define Max(n) (n*(n-1))/2+1
#define Fast register
#define swap(x,y) x^=y,y^=x,x^=y
#define max(a,b) a>b?a:b
inline char getc()
{
static char buf[1<<14],*p1=buf,*p2=buf;
return (p1==p2)&&(p2=(p1=buf)+fread(buf,1,1<<14,stdin),p1==p2)?EOF:*p1++;
}
inline int read()
{
int data=0,w=1;
char ch=0;
while(ch!='-'&&(ch<'0'||ch>'9'))ch=getc();
if(ch=='-') w=-1,ch=getc();
while(ch>='0'&&ch<='9') data=(data<<3)+(data<<1)+(ch^48),ch=getc();
return data*w;
}
int n,vis[maxn],data[maxn],summ=0,ans[maxn],top=0;
char ch;
inline void dfs(int top)
{
if(top>Max(n))
{
sort(ans+1,ans+1+Max(n));
for(Fast int i=1;i<=Max(n);i++)
printf("%d ",ans[i]);
return;
}
vis[top]=1;
for(Fast int i=1;i<=Max(n);i++)
{
if(!vis[i])
}
}
int main()
{
while((ch=getchar())!=EOF)
{
n=ch^48;
for(Fast int k=1;k<=n;k++)
{
data[k]=read();
sum+=data[k];
if(sum%n>0) {puts("Impossible");return 0;}
}
}
}
```
by Explorer_CYC @ 2018-04-09 13:37:40