Let's call a positive integer good if there is no digit 0 in its decimal representation.

For an array of a good numbers a, one found out that the sum of some two neighboring elements is equal to x (i.e. x = a_i + a_{i + 1} for some i). x had turned out to be a good number as well.

Then the elements of the array a were written out one after another without separators into one string s. For example, if a = [12, 5, 6, 133], then s = 1256133.

You are given a string s and a number x. Your task is to determine the positions in the string that correspond to the adjacent elements of the array that have sum x. If there are several possible answers, you can print any of them.

Input

The first line contains the string s (2 ≤ |s| ≤ 5 ⋅ 10^5).

The second line contains an integer x (2 ≤ x < 10^{200000}).

An additional constraint on the input: the answer always exists, i.e you can always select two adjacent substrings of the string s so that if you convert these substrings to integers, their sum is equal to x.

Output

In the first line, print two integers l_1, r_1, meaning that the first term of the sum (a_i) is in the string s from position l_1 to position r_1.

In the second line, print two integers l_2, r_2, meaning that the second term of the sum (a_{i + 1}) is in the string s from position l_2 to position r_2.

Examples

Input


1256133
17


Output


1 2
3 3


Input


9544715561
525


Output


2 3
4 6


Input


239923
5


Output


1 1
2 2


Input


1218633757639
976272


Output


2 7
8 13

Note

In the first example s[1;2] = 12 and s[3;3] = 5, 12+5=17.

In the second example s[2;3] = 54 and s[4;6] = 471, 54+471=525.

In the third example s[1;1] = 2 and s[2;2] = 3, 2+3=5.

In the fourth example s[2;7] = 218633 and s[8;13] = 757639, 218633+757639=976272.
6724346775336763344646345654634456737536356367343567753377634557564556547345667475473663555555555555555555555555555555555555555555541
55555555555555555555555555555555555555555555
 75341425222343324753425262324443346666666666666666666666666666666666
133333333333333332
 7322541544213454245144115443733264165421346424524421645366666666666666666666666666666666666666666666666666666666
13333333333333333333333333332
 7451524554322352231431411334755253565432236224253242234466666666666666666666666666666666666666666666666666666666
13333333333333333333333333332
 1111111111111111111111111111111111111132222224322222329221
3222222432222232923
 7215312222224424534455131241154521514145531513143222214722541322333553553546524124225553252425663162315333231566666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
13333333333333333333333333333333333333333333333333333332
 75321244441512241155122155753322454526223412551322556666666666666666666666666666666666666666666666666666
133333333333333333333333332
 72221321134523541221543221331513321522225422722214211445335522216532213425144325222355236666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
133333333333333333333333333333333333333333332
 723423221134423152233552724424221245524153243663666666666666666666666666666666666666666666666666
1333333333333333333333332
 72542134554133511726422355551345116666666666666666666666666666666666
133333333333333332
 741521344742521354666666666666666666
1333333332
 7142152212435311313322444154224515315454312333214423554154355554134334815216222353541141433244515432461632556542344322543455425546666423433566666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
13333333333333333333333333333333333333333333333333333333333333333333332
 7123435314341353543221534414154525324212245124451352241723343541544235354322154551415562632421335622555236235266666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
13333333333333333333333333333333333333333333333333333332
 7551344531325354443521233254132313152532342223765235553242535544463224435413241326354334322366666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
13333333333333333333333333333333333333333333332
 1389741136579513931291454542257669814123353188882921233371869112934592515884229891613876299881532549
1869118859
 77
14
 7321135545352243251333425445513242544554143354732124565645325425144442655562424354455524446566666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
13333333333333333333333333333333333333333333332
 725252531112121212735353532112121223666666666666666666666666666666666666
1333333333333333332
 74451523315422515524213224231233555244415442755526234265226155352243243412335662555155436666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
133333333333333333333333333333333333333333332
 7111111214111111552722222221522222256366666666666666666666666666666666666666
13333333333333333332
 7515252522752535363266666666666666666666
13333333332
 72435133535314454515551153143454121434233153245335513342155515735461435454255556155622641434642315442442543463355134432556166666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
133333333333333333333333333333333333333333333333333333333333332
 721523533542244514253454222454252551141552312244432331244233721533543552254625264465223565352561251562323354542431244334166666666666666666666666666666666666666661333333333333333333316666666666666666666666666666666666666666
1333333333333333333333333333333333333333333333333333333333332
 723423215525454544222115724424226625464545223126666666666666666666666666666666666666666666666666
1333333333333333333333332
 7121241524253335342723135263525334534366666666666666666666666666666666666666
13333333333333333332
 1111111111111111111111111111111111111132222222382222222841
3222222238222222285
 7213421422513211131231351222731342253262332224224236233266666666666666666666666666666666666666666666666666666666
13333333333333333333333333332
 7111115552722222565366666666666666666666
13333333332
 7155435311353333135234223554112212513224414324726654632245443424623532365422321352333541542466666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
13333333333333333333333333333333333333333333332
 71111543323213312542532145423325212422232121453313424531534114534445235821225443242143236535432565244263135332321225543244346425452156444552356666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
133333333333333333333333333333333333333333333333333333333333333333333332
 73233433145135133542323554241115544313331743435432561461346433336542422256454133416666666666666666666666666666666666666666666666666666666666666666666666666666666666
133333333333333333333333333333333333333332
 7125352343513324311722545234462442542266666666666666666666666666666666666666
13333333333333333332
 722552511241531111354442321415344442554313145373355362125153222236444332242635544365542425636666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666611111111111112345
13333333333333333333333333333333333333333333332
 7215352445451415433545542342722536345555242543465554334366666666666666666666666666666666666666666666666666666666
13333333333333333333333333332
 63451234887584191635778146328716294424124839893546
6996469335
 44
8
 49912217999385523554991221799938552355119789323198525256511
11978932319852525652
 7111551231232252334251215245512545222422334212821166234233225334536131635662255523243234522266666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
13333333333333333333333333333333333333333333332
 8993916542682434571141424849823473251739621791489112772491331576369966321319943333635595635194459724
78613
 711124452213553314344225233225434151523143351534352345431114214332231544215331142722224552224653425354335334235445262624243452635453346542215315333342654215341143666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
1333333333333333333333333333333333333333333333333333333333333333333333333333333332
 712124152425333534311111111111111111723135263525334534322222222222222221666666666666666666666666666666666666666666666666666666666666666666666666
1333333333333333333333333333333333332
 5727944836753191447441188857216798214675797767295497143968172216181828777762464112176717672592669436
16993845184753532657289664818579199818525236939897
 7114542154142244353344334341423243821554325524325546444533534143424366666666666666666666666666666666666666666666666666666666666666666666
13333333333333333333333333333333332

89 132
133 133 35 51
52 68 57 84
85 112 57 84
85 112 38 38
39 57 111 165
166 220 53 78
79 104 89 132
133 176 49 72
73 96 35 51
52 68 19 27
28 36 141 210
211 280 111 165
166 220 93 138
139 184 58 67
68 71 1 1
2 2 93 138
139 184 37 54
55 72 89 132
133 176 39 57
58 76 21 30
31 40 124 185
186 247 121 161
162 222 48 71
72 95 39 57
58 76 38 38
39 57 57 84
85 112 21 30
31 40 93 138
139 184 143 213
214 284 83 123
124 164 39 57
58 76 93 138
139 184 57 84
85 112 28 37
38 47 1 1
2 2 39 58
59 59 93 138
139 184 8 12
13 17 163 243
244 324 73 108
109 144 2 50
51 99 69 102
103 136
#include <bits/stdc++.h>
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast")
using namespace std;
const int N = 5e5 + 5;
const int M = 2e5 + 5;
int LA, LB;
int prime[5], pre[N][5];
int T[M][5], S[N][5];
char A[N], B[M];
void Init() {
  prime[0] = 1000000007;
  prime[1] = 1000000009;
  prime[2] = 1000000021;
  prime[3] = 1000000033;
  prime[4] = 1000010801;
}
inline int GetA(int x, int y, int id, int p) {
  return (S[y][id] - (long long)S[x - 1][id] * pre[y - x + 1][id] % p + p) % p;
}
inline int GetB(int x, int y, int id, int p) {
  return (T[y][id] - (long long)T[x - 1][id] * pre[y - x + 1][id] % p + p) % p;
}
void check(int l, int r, int x, int y) {
  if (l < 1 || l > r || r > LA || x < 1 || x > y || y > LA) {
    return;
  }
  for (int i = 0; i < 5; ++i) {
    int p = prime[i];
    int A = GetA(l, r, i, p), B = GetA(x, y, i, p);
    if ((A + B) % p == T[LB][i]) {
      printf("%d %d\n%d %d", l, r, x, y);
      exit(0);
    }
  }
}
bool equal(int x, int y, int L) {
  for (int id = 0; id < 5; ++id) {
    long long p = prime[id];
    if (GetA(x, x + L - 1, id, p) != GetB(y, y + L - 1, id, p)) {
      return 0;
    }
  }
  return 1;
}
int main() {
  Init();
  scanf("%s %s", A + 1, B + 1);
  LA = strlen(A + 1);
  LB = strlen(B + 1);
  for (int i = 0; i < 5; ++i) {
    int p = prime[i];
    pre[0][i] = 1;
    for (int j = 1; j <= LB; ++j) {
      T[j][i] = ((long long)T[j - 1][i] * 10 + B[j] - '0') % p;
    }
    for (int j = 1; j <= LA; ++j) {
      pre[j][i] = ((long long)pre[j - 1][i] * 10) % p;
      S[j][i] = ((long long)S[j - 1][i] * 10 + A[j] - '0') % p;
    }
  }
  for (int i = LB; i <= LA - LB + 2; ++i) {
    check(i - LB + 1, i - 1, i, i + LB - 2);
  }
  for (int i = 2; i <= LA - LB + 1; ++i) {
    int step = 1, x = 0;
    while (step) {
      if (x + step <= LB && equal(i + x, x + 1, step)) {
        x += step, step <<= 1;
      } else {
        step >>= 1;
      }
    }
    check(i - LB + x, i - 1, i, i + LB - 1);
    check(i - LB + x + 1, i - 1, i, i + LB - 1);
  }
  for (int i = LB + 1; i <= LA; ++i) {
    int step = 1, x = 0;
    while (step) {
      if (x + step <= LB && equal(i - LB + x, x + 1, step)) {
        x += step, step <<= 1;
      } else {
        step >>= 1;
      }
    }
    check(i - LB, i - 1, i, i + LB - x - 1);
    check(i - LB, i - 1, i, i + LB - x - 2);
  }
  return 0;
}
