import std.algorithm;
import std.array;
import std.conv;
import std.math;
import std.range;
import std.stdio;
import std.string;
import std.typecons;

T read(T)() { return readln.chomp.to!T; }
T[] reads(T)() { return readln.split.to!(T[]); }
alias readint = read!int;
alias readints = reads!int;

bool calc(int a, int b) {
    for (int i = 0; i < (1 << 16); i++) {
        bool[] xs;
        for (int j = 0; j < 16; j++) {
            xs ~= (i & (1 << j)) == 0;
        }
        xs ~= xs[0];
        xs ~= xs[1];

        bool ok = true;
        int x = 0;
        int y = 0;
        for (int j = 0; j < xs.length - 2; j++) {
            if (xs[j]) x++; else y++;

            if (xs[j] == xs[j + 1] && xs[j + 1] == xs[j + 2]) {
                ok = false;
                break;
            }
        }

        if (ok) {
            if (x >= a && y >= b) return true;
            if (x >= b && y >= a) return true;
        }
    }
    return false;
}

void main() {
    auto ab = readints;
    int a = ab[0], b = ab[1];

    auto ans = calc(a, b);
    writeln(ans ? "Yay!" : ":(");
}