QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#182756#1283. Paper-cuttingucup-team004AC ✓118ms105668kbC++207.9kb2023-09-18 15:04:262023-09-18 15:04:27

Judging History

你现在查看的是最新测评结果

  • [2023-09-18 15:04:27]
  • 评测
  • 测评结果:AC
  • 用时:118ms
  • 内存:105668kb
  • [2023-09-18 15:04:26]
  • 提交

answer

#include <bits/stdc++.h>

using i64 = long long;
template<class T>
constexpr T power(T a, i64 b) {
    T res = 1;
    for (; b; b /= 2, a *= a) {
        if (b % 2) {
            res *= a;
        }
    }
    return res;
}

constexpr i64 mul(i64 a, i64 b, i64 p) {
    i64 res = a * b - i64(1.L * a * b / p) * p;
    res %= p;
    if (res < 0) {
        res += p;
    }
    return res;
}
template<i64 P>
struct MLong {
    i64 x;
    constexpr MLong() : x{} {}
    constexpr MLong(i64 x) : x{norm(x % getMod())} {}
    
    static i64 Mod;
    constexpr static i64 getMod() {
        if (P > 0) {
            return P;
        } else {
            return Mod;
        }
    }
    constexpr static void setMod(i64 Mod_) {
        Mod = Mod_;
    }
    constexpr i64 norm(i64 x) const {
        if (x < 0) {
            x += getMod();
        }
        if (x >= getMod()) {
            x -= getMod();
        }
        return x;
    }
    constexpr i64 val() const {
        return x;
    }
    explicit constexpr operator i64() const {
        return x;
    }
    constexpr MLong operator-() const {
        MLong res;
        res.x = norm(getMod() - x);
        return res;
    }
    constexpr MLong inv() const {
        assert(x != 0);
        return power(*this, getMod() - 2);
    }
    constexpr MLong &operator*=(MLong rhs) & {
        x = mul(x, rhs.x, getMod());
        return *this;
    }
    constexpr MLong &operator+=(MLong rhs) & {
        x = norm(x + rhs.x);
        return *this;
    }
    constexpr MLong &operator-=(MLong rhs) & {
        x = norm(x - rhs.x);
        return *this;
    }
    constexpr MLong &operator/=(MLong rhs) & {
        return *this *= rhs.inv();
    }
    friend constexpr MLong operator*(MLong lhs, MLong rhs) {
        MLong res = lhs;
        res *= rhs;
        return res;
    }
    friend constexpr MLong operator+(MLong lhs, MLong rhs) {
        MLong res = lhs;
        res += rhs;
        return res;
    }
    friend constexpr MLong operator-(MLong lhs, MLong rhs) {
        MLong res = lhs;
        res -= rhs;
        return res;
    }
    friend constexpr MLong operator/(MLong lhs, MLong rhs) {
        MLong res = lhs;
        res /= rhs;
        return res;
    }
    friend constexpr std::istream &operator>>(std::istream &is, MLong &a) {
        i64 v;
        is >> v;
        a = MLong(v);
        return is;
    }
    friend constexpr std::ostream &operator<<(std::ostream &os, const MLong &a) {
        return os << a.val();
    }
    friend constexpr bool operator==(MLong lhs, MLong rhs) {
        return lhs.val() == rhs.val();
    }
    friend constexpr bool operator!=(MLong lhs, MLong rhs) {
        return lhs.val() != rhs.val();
    }
};

template<>
i64 MLong<0LL>::Mod = 1;

template<int P>
struct MInt {
    int x;
    constexpr MInt() : x{} {}
    constexpr MInt(i64 x) : x{norm(x % getMod())} {}
    
    static int Mod;
    constexpr static int getMod() {
        if (P > 0) {
            return P;
        } else {
            return Mod;
        }
    }
    constexpr static void setMod(int Mod_) {
        Mod = Mod_;
    }
    constexpr int norm(int x) const {
        if (x < 0) {
            x += getMod();
        }
        if (x >= getMod()) {
            x -= getMod();
        }
        return x;
    }
    constexpr int val() const {
        return x;
    }
    explicit constexpr operator int() const {
        return x;
    }
    constexpr MInt operator-() const {
        MInt res;
        res.x = norm(getMod() - x);
        return res;
    }
    constexpr MInt inv() const {
        assert(x != 0);
        return power(*this, getMod() - 2);
    }
    constexpr MInt &operator*=(MInt rhs) & {
        x = 1LL * x * rhs.x % getMod();
        return *this;
    }
    constexpr MInt &operator+=(MInt rhs) & {
        x = norm(x + rhs.x);
        return *this;
    }
    constexpr MInt &operator-=(MInt rhs) & {
        x = norm(x - rhs.x);
        return *this;
    }
    constexpr MInt &operator/=(MInt rhs) & {
        return *this *= rhs.inv();
    }
    friend constexpr MInt operator*(MInt lhs, MInt rhs) {
        MInt res = lhs;
        res *= rhs;
        return res;
    }
    friend constexpr MInt operator+(MInt lhs, MInt rhs) {
        MInt res = lhs;
        res += rhs;
        return res;
    }
    friend constexpr MInt operator-(MInt lhs, MInt rhs) {
        MInt res = lhs;
        res -= rhs;
        return res;
    }
    friend constexpr MInt operator/(MInt lhs, MInt rhs) {
        MInt res = lhs;
        res /= rhs;
        return res;
    }
    friend constexpr std::istream &operator>>(std::istream &is, MInt &a) {
        i64 v;
        is >> v;
        a = MInt(v);
        return is;
    }
    friend constexpr std::ostream &operator<<(std::ostream &os, const MInt &a) {
        return os << a.val();
    }
    friend constexpr bool operator==(MInt lhs, MInt rhs) {
        return lhs.val() == rhs.val();
    }
    friend constexpr bool operator!=(MInt lhs, MInt rhs) {
        return lhs.val() != rhs.val();
    }
};

template<>
int MInt<0>::Mod = 1;

template<int V, int P>
constexpr MInt<P> CInv = MInt<P>(V).inv();

constexpr i64 P = 1E18 + 9;
using Z = MLong<P>;

constexpr i64 B1 = 114514;
constexpr i64 B2 = 1145141;

std::pair<int, int> solve(std::vector<std::string> a, int n, int m) {
    std::vector<Z> s(n);
    for (int i = 0; i < n; i++) {
        for (auto c : a[i]) {
            s[i] = s[i] * B1 + c;
        }
    }
    
    std::vector<Z> h1(n + 1), h2(n + 1), pw(n + 1);
    pw[0] = 1;
    
    auto get = [&](auto &h, int l, int r) {
        return h[r] - h[l] * pw[r - l];
    };
    for (int i = 0; i < n; i++) {
        h1[i + 1] = h1[i] * B2 + s[i];
        h2[i + 1] = h2[i] * B2 + s[n - 1 - i];
        pw[i + 1] = pw[i] * B2;
    }
    
    int l = 0, r = n;
    
    for (int i = l; 2 * i <= l + r; i++) {
        if (get(h1, l, i) == get(h2, n - (2 * i - l), n - i)) {
            l = i;
        }
    }
    for (int i = r; 2 * i >= l + r; i--) {
        if (get(h1, i, r) == get(h2, n - i, n - (2 * i - r))) {
            r = i;
        }
    }
    
    return {l, r};
}

constexpr int dx[] = {0, 0, -1, 1};
constexpr int dy[] = {-1, 1, 0, 0};

void solve() {
    int n, m;
    std::cin >> n >> m;
    
    std::vector<std::string> a(n), b(m);
    for (int i = 0; i < n; i++) {
        std::cin >> a[i];
        for (int j = 0; j < m; j++) {
            b[j] += a[i][j];
        }
    }
    
    auto [xl, xr] = solve(a, n, m);
    auto [yl, yr] = solve(b, m, n);
    
    std::vector vis(n, std::vector<bool>(m));
    int ans = 0;
    for (int i = xl; i < xr; i++) {
        for (int j = yl; j < yr; j++) {
            if (!vis[i][j] && a[i][j] == '0') {
                ans++;
                std::queue<std::pair<int, int>> q;
                q.emplace(i, j);
                vis[i][j] = true;
                
                while (!q.empty()) {
                    auto [x, y] = q.front();
                    q.pop();
                    
                    for (int k = 0; k < 4; k++) {
                        int nx = x + dx[k];
                        int ny = y + dy[k];
                        
                        if (xl <= nx && nx < xr && yl <= ny && ny < yr && !vis[nx][ny] && a[nx][ny] == '0') {
                            q.emplace(nx, ny);
                            vis[nx][ny] = true;
                        }
                    }
                }
            }
        }
    }
    std::cout << ans << "\n";
}

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    
    std::cout << std::fixed << std::setprecision(10);
    
    int t;
    std::cin >> t;
    
    while (t--) {
        solve();
    }
    
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3556kb

input:

3
2 5
11001
11001
5 7
1001100
0110011
0101101
0010010
1000000
3 2
11
11
11

output:

1
4
0

result:

ok 3 tokens

Test #2:

score: 0
Accepted
time: 104ms
memory: 3644kb

input:

100000
3 3
010
101
101
4 2
10
10
10
10
4 2
11
00
00
11
7 1
1
0
0
1
1
0
0
6 1
1
0
0
1
1
1
5 2
11
00
00
11
11
10 1
1
0
0
0
0
0
0
0
0
1
9 1
0
0
0
0
0
0
0
0
0
10 1
1
1
1
1
1
1
1
1
1
0
9 1
0
0
0
0
0
0
1
1
0
1 10
0010000100
7 1
0
0
0
0
0
0
0
4 2
00
00
00
00
7 1
0
1
0
0
0
0
1
10 1
1
0
0
0
0
0
0
0
0
1
9 1
1...

output:

3
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
2
2
1
1
1
0
1
0
2
1
1
1
1
2
1
0
2
2
2
1
2
1
2
2
1
0
1
1
1
2
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
1
0
3
2
1
3
1
1
3
1
1
1
2
1
1
1
1
1
3
1
1
2
0
1
1
1
2
2
1
1
1
1
2
2
1
2
2
3
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
2
2
1
1
5
1
1
1
2
1
1
2
2
2
2
2
1
1
1
2
2
2
1
1
2
2
1
3
1
1
2
1
...

result:

ok 100000 tokens

Test #3:

score: 0
Accepted
time: 79ms
memory: 3984kb

input:

10000
65 1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
81 1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
...

output:

17
17
2
4
4
11
2
3
5
4
4
9
8
5
5
6
2
7
5
8
1
3
1
12
3
1
3
9
4
9
1
4
1
5
4
3
9
2
3
4
3
5
7
7
9
10
10
3
4
1
3
13
7
11
11
14
20
4
6
3
5
3
11
5
9
2
4
9
8
10
8
5
6
5
11
7
2
4
3
6
3
4
9
2
7
4
9
5
4
5
1
2
11
2
2
2
15
3
12
3
6
3
3
11
7
4
12
4
17
4
5
5
1
8
25
3
10
4
5
9
1
3
5
2
4
3
13
4
4
8
7
9
9
1
9
3
1
2
8...

result:

ok 10000 tokens

Test #4:

score: 0
Accepted
time: 66ms
memory: 3868kb

input:

1000
977 1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0...

output:

102
167
21
25
74
28
12
62
62
42
22
88
14
77
147
11
47
89
18
48
40
6
44
235
22
130
118
31
19
60
117
42
10
2
99
36
87
9
143
37
73
67
25
12
37
28
13
54
31
90
47
108
12
107
27
18
6
20
3
29
52
89
49
17
30
13
12
41
52
49
19
117
33
10
63
32
65
35
19
16
19
28
64
67
68
34
103
46
31
67
22
41
117
27
113
112
42...

result:

ok 1000 tokens

Test #5:

score: 0
Accepted
time: 63ms
memory: 4820kb

input:

100
8148 1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0...

output:

681
33
1156
568
237
528
311
229
1604
547
872
271
794
491
557
322
241
633
807
304
160
435
636
355
604
95
27
962
160
761
24
23
711
294
356
14
472
207
428
2371
539
1007
201
140
158
352
162
188
437
771
1286
1003
67
560
592
1002
408
238
71
74
359
1736
717
630
462
581
790
745
80
656
562
441
737
838
322
32...

result:

ok 100 tokens

Test #6:

score: 0
Accepted
time: 83ms
memory: 13652kb

input:

10
92831 1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1...

output:

5125
5258
4511
3428
198
5218
11694
9294
13007
1583

result:

ok 10 tokens

Test #7:

score: 0
Accepted
time: 84ms
memory: 13960kb

input:

10
53270 1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0...

output:

6730
5017
389
2178
4679
5753
17391
4823
4599
1961

result:

ok 10 tokens

Test #8:

score: 0
Accepted
time: 30ms
memory: 7492kb

input:

1
1000 1000
011010011001011010010110011010011001011001101001011010011001011010010110011010010110100110010110011010011001011010010110011010011001011001101001011010011001011001101001100101101001011001101001011010011001011010010110011010011001011001101001011010011001011010010110011010010110100110010110...

output:

8

result:

ok "8"

Test #9:

score: 0
Accepted
time: 33ms
memory: 7288kb

input:

1
1000 1000
010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001010...

output:

41761

result:

ok "41761"

Test #10:

score: 0
Accepted
time: 53ms
memory: 98180kb

input:

1
1 1000000
011010011001011010010110011010011001011001101001011010011001011010010110011010010110100110010110011010011001011010010110011010011001011001101001011010011001011001101001100101101001011001101001011010011001011010010110011010011001011001101001011010011001011010010110011010010110100110010110...

output:

2

result:

ok "2"

Test #11:

score: 0
Accepted
time: 75ms
memory: 98060kb

input:

1
1 1000000
010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010010100101001001010010100100101001001010010100100101001010...

output:

196419

result:

ok "196419"

Test #12:

score: 0
Accepted
time: 35ms
memory: 51040kb

input:

1
2 500000
0110100110010110100101100110100110010110011010010110100110010110100101100110100101101001100101100110100110010110100101100110100110010110011010010110100110010110011010011001011010010110011010010110100110010110100101100110100110010110011010010110100110010110100101100110100101101001100101100...

output:

4

result:

ok "4"

Test #13:

score: 0
Accepted
time: 50ms
memory: 51120kb

input:

1
2 500000
0100101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010100100101001001010010100100101001001010010100100101001010010010100100101001010010010100100101001010010010100101001001010010010100101001001010010100...

output:

242787

result:

ok "242787"

Test #14:

score: 0
Accepted
time: 23ms
memory: 7484kb

input:

1
1000 1000
001110010110101011110111111111111001000011000011000011000010011001000011000011000011000010011001000011000011000011000010011001000011000011000011000010011001000011000011000011000010011001000011000011000011000010011001000011000011000011000010011001000011000011000011000010011001000011000011...

output:

1964

result:

ok "1964"

Test #15:

score: 0
Accepted
time: 34ms
memory: 7444kb

input:

1
1000 1000
110111101111100011000110100110100000111100101011101010010001000101110101000101011101101111011001011100001011001101101101101101101101101000000101101101101101101101101101101101101101101101101000000101101101101101101101101101101101101101101101101000000101101101101101101101101101101101101101...

output:

31620

result:

ok "31620"

Test #16:

score: 0
Accepted
time: 32ms
memory: 7340kb

input:

1
1000 1000
001101100000000000000001100110000000000000000111100000000000000001100110000000000000000111100000000000000001100110000000000000000111100000000000000001100110000000000000000110111101100000000000000001100110000000000000000111100000000000000001100110000000000000000111100000000000000001100110...

output:

15347

result:

ok "15347"

Test #17:

score: 0
Accepted
time: 31ms
memory: 7332kb

input:

1
1000 1000
100100111100100100111100100000010011110010010011110011111100111100100100111100100000010011110010010011110011001111001001001111001000000100111100100100111100111111001111001001001111001000000100111100100100111100100100110010010011110010010011110010000001001111001001001111001111110011110010...

output:

11049

result:

ok "11049"

Test #18:

score: 0
Accepted
time: 34ms
memory: 7356kb

input:

1
1000 1000
110011111111110011111111110011101101110011111111110011111111110011001100111111111100111111111100111011011100111111111100111111111100110111101100111111111100111111111100111011011100111111111100111111111100110011001111111111001111111111001110110111001111111111001111111111001111001111111111...

output:

29274

result:

ok "29274"

Test #19:

score: 0
Accepted
time: 61ms
memory: 51200kb

input:

1
2 500000
1110011110101110101010111000001111010001010011111011100010010101111111100011100100110000110100000011111011001100110111011100101000001001101001010001100000101101100110011100100010001100001000110001011100111101010100000101010010101100100111110010011100101011001011001000110110001100100110110...

output:

110436

result:

ok "110436"

Test #20:

score: 0
Accepted
time: 49ms
memory: 51328kb

input:

1
2 500000
0010101010101111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111100111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...

output:

74967

result:

ok "74967"

Test #21:

score: 0
Accepted
time: 32ms
memory: 13692kb

input:

1
10 100000
011001110011010111100111000010101101110101100001010100011000100111110100101101011011001000111101001100101100001111101011000111111011001010110101101110111011111011011110010101011010010111010000100001111100111111010100111110011011101001001010000101001100011011010011011100111100011001110011...

output:

4288

result:

ok "4288"

Test #22:

score: 0
Accepted
time: 34ms
memory: 23140kb

input:

1
5 200000
0000011000110110110101000110110111110001000011011110001111111100010101010010111111011010001111001011000111111011101111111110010101011000001111010110001000000010101001100001100100110110101100000010100011110100010001001110100011101100110010111110001111011001010101101110110110011001110111101...

output:

22390

result:

ok "22390"

Test #23:

score: 0
Accepted
time: 32ms
memory: 35888kb

input:

1
3 333333
0011101010011000011110000111111000011110000000011110000111111000011110000000011110000111111000011110000000011110000111111000011110000110110110000111100001111110000111100000000111100001111110000111100000000111100001111110000111100000000111100001111110000111100001100110000111100001111110000...

output:

17650

result:

ok "17650"

Test #24:

score: 0
Accepted
time: 33ms
memory: 8944kb

input:

1
20000 50
01111000010000101101000010110110011011010000101101
10000111101111010010111101001001100100101111010010
10000111101111010010111101001001100100101111010010
10000111101111010010111101001001100100101111010010
01111000010000101101000010110110011011010000101101
1000011110111101001011110100100110...

output:

3184

result:

ok "3184"

Test #25:

score: 0
Accepted
time: 35ms
memory: 9916kb

input:

1
25000 40
0000101100110100001011001101000101011101
0000101100110100001011001101000101011101
1111010011001011110100110010111010100010
1111010011001011110100110010111010100010
0000101100110100001011001101000101011101
0000101100110100001011001101000101011101
0000101100110100001011001101000101011101
11...

output:

23804

result:

ok "23804"

Test #26:

score: 0
Accepted
time: 33ms
memory: 10784kb

input:

1
33333 30
010000011110000001111000000100
010000011110000001111000000100
101111100001111110000111111011
010000011110000001111000000100
101111100001111110000111111011
101111100001111110000111111011
010000011110000001111000000100
101111100001111110000111111011
101111100001111110000111111011
1011111000...

output:

22032

result:

ok "22032"

Test #27:

score: 0
Accepted
time: 29ms
memory: 14312kb

input:

1
100000 10
0000000010
1111111101
1111111101
0000000010
0000000010
1111111101
0000000010
1111111101
1111111101
0000000010
0000000010
0000000010
1111111101
1111111101
0000000010
0000000010
1111111101
1111111101
0000000010
1111111101
1111111101
1111111101
0000000010
1111111101
1111111101
0000000010
11...

output:

29876

result:

ok "29876"

Test #28:

score: 0
Accepted
time: 118ms
memory: 105668kb

input:

1
1000000 1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
...

output:

30793

result:

ok "30793"