#include <iostream>
using namespace std;
const int MAX_LEN = 100;
void sortArray(int v[], int n) {
bool isSorted = false;
while (!isSorted) {
isSorted = true;
for (int i = 0; i < n - 1; ++i) {
if (v[i] > v[i + 1]) {
swap(v[i], v[i + 1]);
isSorted = false;
}
}
}
}
bool isArithmeticProgression(const int v[], const int &n) {
int copyArr[MAX_LEN];
for (int i = 0; i < n; ++i) {
copyArr[i] = v[i];
}
sortArray(copyArr, n);
for (int i = 1; i < n; ++i) {
if (copyArr[i] - copyArr[i - 1] != copyArr[1] - copyArr[0]) {
return false;
}
}
return true;
}
void printMaxValidSeq(const int v[], const int &n) {
int maxSeq = 0, start = 0, end = 1;
for (int i = 1; i < n; ++i) {
int diff = v[i] - v[i - 1];
int currValidSeq = 1;
for (int j = i + 1; j < n; ++j) {
if (v[j] - v[j - 1] == diff) {
++currValidSeq;
} else {
break;
}
}
if (currValidSeq > maxSeq) {
maxSeq = currValidSeq;
start = i - 1;
end = i + currValidSeq;
}
}
for (int i = start; i < end; ++i) {
cout << v[i] << ' ';
}
}
void printResult(int v[], const int &n) {
if (n == 1) {
cout << "NU\n" << v[0];
} else if (isArithmeticProgression(v, n)) {
cout << "DA\n";
sortArray(v, n);
cout << v[1] - v[0];
} else {
cout << "NU\n";
printMaxValidSeq(v, n);
}
}
int main() {
int n, v[MAX_LEN];
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> v[i];
}
printResult(v, n);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE1BWF9MRU4gPSAxMDA7Cgp2b2lkIHNvcnRBcnJheShpbnQgdltdLCBpbnQgbikgewogICAgYm9vbCBpc1NvcnRlZCA9IGZhbHNlOwogICAgd2hpbGUgKCFpc1NvcnRlZCkgewogICAgICAgIGlzU29ydGVkID0gdHJ1ZTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG4gLSAxOyArK2kpIHsKICAgICAgICAgICAgaWYgKHZbaV0gPiB2W2kgKyAxXSkgewogICAgICAgICAgICAgICAgc3dhcCh2W2ldLCB2W2kgKyAxXSk7CiAgICAgICAgICAgICAgICBpc1NvcnRlZCA9IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cgpib29sIGlzQXJpdGhtZXRpY1Byb2dyZXNzaW9uKGNvbnN0IGludCB2W10sIGNvbnN0IGludCAmbikgewogICAgaW50IGNvcHlBcnJbTUFYX0xFTl07CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgIGNvcHlBcnJbaV0gPSB2W2ldOwogICAgfQogICAgc29ydEFycmF5KGNvcHlBcnIsIG4pOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPCBuOyArK2kpIHsKICAgICAgICBpZiAoY29weUFycltpXSAtIGNvcHlBcnJbaSAtIDFdICE9IGNvcHlBcnJbMV0gLSBjb3B5QXJyWzBdKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gdHJ1ZTsKfQoKdm9pZCBwcmludE1heFZhbGlkU2VxKGNvbnN0IGludCB2W10sIGNvbnN0IGludCAmbikgewogICAgaW50IG1heFNlcSA9IDAsIHN0YXJ0ID0gMCwgZW5kID0gMTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbjsgKytpKSB7CiAgICAgICAgaW50IGRpZmYgPSB2W2ldIC0gdltpIC0gMV07CiAgICAgICAgaW50IGN1cnJWYWxpZFNlcSA9IDE7CiAgICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyBqIDwgbjsgKytqKSB7CiAgICAgICAgICAgIGlmICh2W2pdIC0gdltqIC0gMV0gPT0gZGlmZikgewogICAgICAgICAgICAgICAgKytjdXJyVmFsaWRTZXE7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoY3VyclZhbGlkU2VxID4gbWF4U2VxKSB7CiAgICAgICAgICAgIG1heFNlcSA9IGN1cnJWYWxpZFNlcTsKICAgICAgICAgICAgc3RhcnQgPSBpIC0gMTsKICAgICAgICAgICAgZW5kID0gaSArIGN1cnJWYWxpZFNlcTsKICAgICAgICB9CiAgICB9CiAgICBmb3IgKGludCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkgewogICAgICAgIGNvdXQgPDwgdltpXSA8PCAnICc7CiAgICB9Cn0KCnZvaWQgcHJpbnRSZXN1bHQoaW50IHZbXSwgY29uc3QgaW50ICZuKSB7CiAgICBpZiAobiA9PSAxKSB7CiAgICAgICAgY291dCA8PCAiTlVcbiIgPDwgdlswXTsKICAgIH0gZWxzZSBpZiAoaXNBcml0aG1ldGljUHJvZ3Jlc3Npb24odiwgbikpIHsKICAgICAgICBjb3V0IDw8ICJEQVxuIjsKICAgICAgICBzb3J0QXJyYXkodiwgbik7CiAgICAgICAgY291dCA8PCB2WzFdIC0gdlswXTsKICAgIH0gZWxzZSB7CiAgICAgICAgY291dCA8PCAiTlVcbiI7CiAgICAgICAgcHJpbnRNYXhWYWxpZFNlcSh2LCBuKTsKICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBpbnQgbiwgdltNQVhfTEVOXTsKICAgIGNpbiA+PiBuOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICBjaW4gPj4gdltpXTsKICAgIH0KICAgIHByaW50UmVzdWx0KHYsIG4pOwogICAgcmV0dXJuIDA7Cn0K