P13740 [NWERC 2024] Binary Search

Description

You are given an undirected graph with $n$ vertices and $m$ edges. Each vertex $v$ has a number $a_v$ written on it. This number is either $0$ or $1$. A *walk* is a sequence $v_1v_2 \dots v_k$ of vertices in the graph such that any two consecutive vertices are connected by an edge. We call a binary sequence $$s = s_1s_2 \dots s_k$$ *walkable* if there is a walk $v_1v_2 \dots v_k$ in the graph that satisfies $a_{v_1} a_{v_2} \dots a_{v_k} = s$. In other words, a binary sequence is walkable if it is possible to obtain $s$ by walking in the graph and writing down the binary numbers in the order that they are visited. An example is visualized in Figure B.1. :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/e6ox2iag.png) Figure B.1: Illustration of Sample Input 1. Every binary sequence of length at most 3 is walkable. ::: Your task is to find the length of a shortest binary sequence that is not walkable.

Input Format

The input consists of: - One line with two integers $n$ and $m$ ($1 \leq n \leq 3 \cdot 10^5$, $0 \leq m \leq 3 \cdot 10^5$), the number of vertices and the number of edges. - One line with $n$ integers $a_1,\dots, a_n$ ($a_v \in \{0, 1\}$ for each $v$), where $a_v$ is the number written on vertex $v$. - $m$ lines, each with two integers $u$ and $v$ ($1 \leq u,v \leq n$, $u \neq v$), denoting that the vertices $u$ and $v$ are connected by an edge. It is guaranteed that every pair of vertices is connected by at most one edge.

Output Format

If every binary sequence is walkable, output "$\texttt{infinity}$". Otherwise, output the length of a shortest binary sequence that is not walkable.