#include <stdio.h>
#define fr(i,a,b) for(i=a;i<b;++i)
#define rf(i,a,b) for(i=b-1;i>=a;--i)
#define N 300
#define e 0.0000001
double a[N][N+1];
double x[N];
int main(){
freopen("gauss.in","r",stdin);
freopen("gauss.out","w",stdout);
int n,m,i,j,k,l,o;
scanf("%i%i",&n,&m);
fr(i,0,n)fr(j,0,m+1)scanf("%lf",a[i]+j);
j=0;
fr(i,0,n){
fr(k,i,n)if(a[k][j]<-e||a[k][j]>e)break;
if(k==n){++j;continue;}
if(k!=i){
fr(l,0,m+1){
double x=a[i][l];
a[i][l]=a[k][l];
a[k][l]=x;
}
}
fr(l,j+1,m+1)a[i][l]/=a[i][j];a[i][j]=1.0;
fr(o,i+1,n){
fr(l,j+1,m+1)a[o][l]-=a[o][j]*a[i][l];
a[o][j]=0.0;
}
++j;
}
rf(i,0,n)fr(j,0,m+1)if(a[i][j]<-e||a[i][j]>e){
if(j==m)return printf("Imposibil\n"),0;
x[j]=a[i][m];
fr(k,j+1,m)x[j]-=x[k]*a[i][k];
break;
}
fr(i,0,m)printf("%.8lf ",x[i]);printf("\n");
return 0;
}