#define _USE_MATH_DEFINES
#include <algorithm>
#include <cstdio>
#include <functional>
#include <iostream>
#include <cfloat>
#include <climits>
#include <cstring>
#include <cmath>
#include <map>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <time.h>
#include <vector>
using namespace std;

typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> i_i;
typedef pair<ll, int> ll_i;
typedef pair<double, int> d_i;
typedef pair<ll, ll> ll_ll;
typedef pair<double, double> d_d;
struct edge { int u, v; ll w; };

ll MOD = 1000000007;
ll _MOD = 1000000009;
double EPS = 1e-10;

int foo(int S, int i0, int i1, int i2, int i3, int i4, int i5, int i6, string& c) {
	int T = 0;
	T = (T << 1) + ((S >> i6) & 1);
	T = (T << 1) + ((S >> i5) & 1);
	T = (T << 1) + ((S >> i4) & 1);
	T = (T << 1) + ((S >> i3) & 1);
	T = (T << 1) + ((S >> i2) & 1);
	T = (T << 1) + ((S >> i1) & 1);
	T = (T << 1) + ((S >> i0) & 1);
	return c[T] - '0';
}

int main() {
	for (;;) {
		string c; cin >> c;
		if (c == "#") break;
		bool flag = true;
		for (int S = 0; S < (1 << 19); S++) {
			int T = 0, x = foo(S, 4, 6, 7, 9, 11, 12, 14, c);
			T = (T << 1) + foo(S, 9, 11, 12, 14, 16, 17, 18, c);
			T = (T << 1) + foo(S, 7, 9, 10, 12, 14, 15, 17, c);
			T = (T << 1) + foo(S, 6, 8, 9, 11, 13, 14, 16, c);
			T = (T << 1) + foo(S, 4, 6, 7, 9, 11, 12, 14, c);
			T = (T << 1) + foo(S, 2, 4, 5, 7, 9, 10, 12, c);
			T = (T << 1) + foo(S, 1, 3, 4, 6, 8, 9, 11, c);
			T = (T << 1) + foo(S, 0, 1, 2, 4, 6, 7, 9, c);
			int y = c[T] - '0';
			if (x != y) flag = false;
		}
		cout << (flag ? "yes" : "no") << endl;
	}
}