#include <bits/stdc++.h>
#define all(v) (v).begin(), (v).end()
using namespace std;
const int maxN = 2e5+10;
int n, m;
void print(int mask) {
for (int i=0; i<n; i++) {
cout << char((mask>>i&1)+'0');
}
}
int ask(int mask) {
cout << "? ";
print(mask);
cout << endl;
int res = 0;
for (int i=0; i<m; i++) {
char c;
cin >> c;
res += (c-'0')*(1<<i);
}
return res;
}
random_device rd;
mt19937 gen(rd());
uniform_int_distribution<int> dist(0, 0);
int rand(int l, int r) {
dist.param(uniform_int_distribution<int>::param_type{l, r});
return dist(gen);
}
void solve() {
cin >> n >> m;
map<int, int> prev;
for (int i=0; i<100000; mask++) {
int res = ask(rand(0, (1<<n)-1));
if (prev.count(res)) {
cout << "YES\n";
print(prev[res]);
cout << '\n';
print(mask);
cout << endl;
return;
}
prev[res] = mask;
}
cout << "NO\n";
cout << endl;
}
int main() {
solve();
}