#include <bits/stdc++.h>

#define pb push_back
#define mp make_pair
#define st first
#define nd second

using namespace std;

int n, m;
vector<vector<int>> s;

vector<int> a;

bool rek(int done) {
	for(int i = 0; i < n; i++) {
		vector<int> dif;
		for(int j = 0; j < m; j++) {
			if(s[i][j] != a[j]) {
				dif.pb(j);
			}
		}
		if(dif.size() > 5)	return false;
		if(dif.size() < 3)	continue;
		if(dif.size() - (2 - done) > 2)	return false; // nie da sie juz naprawic
		
		if(dif.size() == 3) {
			for(int k = 0; k < 3; k++) {
				int x = a[dif[k]];
				a[dif[k]] = s[i][dif[k]];
				if(rek(done + 1))	return true;
				a[dif[k]] = x;
			}
		} else {
			for(int k = 0; k < 4; k++) {
				for(int l = k + 1; l < 4; l++) {
					int x = a[dif[k]];
					int y = a[dif[l]];
					a[dif[k]] = s[i][dif[k]];
					a[dif[l]] = s[i][dif[l]];
					if(rek(done + 2))	return true;
					a[dif[k]] = x;
					a[dif[l]] = y;
				}
			}
		}
		
		return false;
	}
	
	return true;
}

int main() {
	ios::sync_with_stdio(false), cin.tie(nullptr);
	
	cin >> n >> m;
	s.resize(n, vector<int>(m));
	
	for(auto &row : s) {
		for(int &x : row)
			cin >> x;
	}
	
	a = s[0];
	
	if(rek(0)) {
		cout << "Yes\n";
		for(int x : a)	cout << x << ' ';
		cout << '\n';
	} else {
		cout << "No\n";
	}
}
