#include<iostream>
#include<vector>
using namespace std;
const int N=250010;
int n,m;
vector<int> a[N];
void dfs(vector<int> &v,int step)
{
	vector<int> tmp;
	for(int i=0;i<n;i++)
	{
		tmp.clear();
		for(int j=0;j<m;j++)
			if(a[i][j]!=v[j])tmp.push_back(j);
		if(tmp.size()>2)
		{
			if((int)tmp.size()+step>4)return;
		for(int j=0;j<tmp.size();j++)
		{
			int tt=v[tmp[j]];
			v[tmp[j]]=a[i][tmp[j]];
			dfs(v,step+1);
			v[tmp[j]]=tt;
		}
		return;
		}
		
	}
	puts("Yes");
	for(int i=0;i<m;i++)
		cout<<v[i]<<" ";
	exit(0); 
}
int main()
{
	cin>>n>>m;
	for(int i=0;i<n;i++)
		for(int j=0;j<m;j++)
		{
			int x;
			cin>>x;
			a[i].push_back(x);
		}
	int dif=0;
	for(int i=0;i<n;i++)
	{ 	int d=0;
		for(int j=0;j<m;j++)
		{
			if(a[i][j]!=a[0][j])d++;
		}
		dif=max(dif,d);
	}
	if(dif>4)puts("No");
	else if(dif<=2)
	{
		puts("Yes");
		for(auto &it:a[0])cout<<it<<" ";
	}
	else 
	{
		vector<int> t=a[0];
		dfs(t,0);
		puts("No");
	}
 } 
