#include<bits/stdc++.h>
using namespace std;
#define MAXN 300
#define EPS 0.000000001
ifstream fin("gauss.in");
ofstream fout("gauss.out");
double a[MAXN+1][MAXN+2],ans[MAXN+2];
int main() {
int n,m,i,j,l,c,sl;
double v;
fin>>n>>m;
for(i=1; i<=n; i++) {
for(j=1; j<=m+1; j++) {
fin>>a[i][j];
}
}
i=j=1;
while(i<=n&&j<=m) {
l=i;
while(l<=n) {
if(abs(a[l][j])>EPS) {
sl=l;
l=n;
}
l++;
}
if(sl==n+1) {
cout << "nu inteleg cum e asta posibil asa ca fac asta si vad daca nu da 100\n";
} else {
if(sl!=i) {
swap(a[sl],a[i]);
}
v=a[i][j];
for(int c=j; c<=m+1; c++) {
a[i][c]/=v;
}
for(l=i+1; l<=n; l++) {
for(int c=j+1; c<=m+1; c++) {
a[l][c]-=a[i][c]*a[l][j];
}
a[l][j]=0;
}
i++;
j++;
}
}
char finish=0;
i=n;
while(i&&!finish) {
j=1;
while(j<=m+1&&abs(a[i][j])<EPS) {
j++;
}